Διαμόρφωση

Πού αποθηκεύει το Antimatter τις ρυθμίσεις του, οι τρεις τρόποι αλλαγής τους (Κονσόλα συστήματος, μεταβλητές περιβάλλοντος, amctl) και πού καταλήγουν τα αρχεία καταγραφής.

Πού βρίσκονται οι ρυθμίσεις

Κάθε ρύθμιση του server έχει ένα όνομα που αποτελείται από μια ενότητα και ένα κλειδί, όπως ServiceSettings.SiteURL ή EmailSettings.SMTPServer. Μαζί σχηματίζουν μία διαμόρφωση, η οποία αποθηκεύεται σε μία από δύο τοποθεσίες:

  • Στη βάση δεδομένων. Το αρχείο compose του χώρου εργασίας ορίζει το AM_CONFIG στην URL σύνδεσης PostgreSQL, οπότε η διαμόρφωση είναι μια γραμμή στη βάση δεδομένων και το container δεν διατηρεί τίποτα στον δίσκο. Πολλαπλοί server που μοιράζονται μία βάση δεδομένων μοιράζονται και τη διαμόρφωσή τους.
  • Σε αρχείο. Χωρίς AM_CONFIG, ο διακομιστής διαβάζει το config/config.json δίπλα στο κατάλογό του bin/ (/antimatter/config/config.json στην εικόνα Docker). Το αρχείο απελευθέρωσης και τα παραγωγικά αρχεία compose του antimatter-docker λειτουργούν έτσι, όπως και τα πακέτα .deb και .rpm, του οποίου το αρχείο είναι /etc/antimatter/config/config.json. Κρατήστε αυτό το αρχείο αναγνώσιμο μόνο από τον χρήστη του διακομιστή: περιέχει κωδικούς πρόσβασης και κλειδιά.

Το AM_CONFIG (ή η σημαία --config της εντολής antimatter) δέχεται είτε διαδρομή αρχείου είτε URL postgres://. Οι ρυθμίσεις που παραλείπετε λαμβάνουν την προεπιλεγμένη τιμή τους.

Για να μετακινήσετε μια υπάρχουσα διαμόρφωση από αρχείο στη βάση δεδομένων, εκτελέστε το παρακάτω στον server και στη συνέχεια ξεκινήστε τον server με το AM_CONFIG ορισμένο στην ίδια URL:

amctl --local config migrate /opt/antimatter/config/config.json \
    "postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"

Μεταβλητές περιβάλλοντος

Κάθε ρύθμιση μπορεί επίσης να δοθεί ως μεταβλητή περιβάλλοντος. Οι μεταβλητές έχουν προτεραιότητα έναντι της αποθηκευμένης διαμόρφωσης, γεγονός που τις καθιστά κατάλληλες για ό,τι ανήκει στη διάδοση: η βάση δεδομένων, το URL του χώρου εργασίας, η αποθήκευση αρχείων, οι θύρες.

Κανόνας ονοματοδοσίας

Γράψτε AM_, στη συνέχεια την ενότητα, και μετά το κλειδί, με κεφαλαία γράμματα και χωρισμένα με κάτω παύλες. Τα λόγια μέσα σε ένα όνομα ενότητας ή κλειδιού δεν χωρίζονται:

ΡύθμισηΜεταβλητή
ServiceSettings.SiteURLAM_SERVICESETTINGS_SITEURL
SqlSettings.DataSourceAM_SQLSETTINGS_DATASOURCE
EmailSettings.SMTPServerAM_EMAILSETTINGS_SMTPSERVER
PrivacySettings.EnableUserBlockingAM_PRIVACYSETTINGS_ENABLEUSERBLOCKING
  • Οι ρυθμίσεις αληθές/ψευδές λαμβάνουν true ή false· τα αριθμητικά είναι απλοί αριθμοί.
  • Οι ρυθμίσεις λίστας λαμβάνουν τις τιμές τους χωρισμένες με κενά, για παράδειγμα AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP".
  • Οι ρυθμίσεις που είναι αντικείμενα λαμβάνουν JSON. Η μόνη τέτοια μεταβλητή για τις εφαρμογές είναι AM_PLUGINSETTINGS_PLUGINS, και αντικαθιστά τις ρυθμίσεις όλων των εφαρμογών ταυτόχρονα: ορίστε τις ρυθμίσεις των εφαρμογών στην Κονσόλα συστήματος ή με amctl αντί γι' αυτό (βλ. παρακάτω).
  • Παλαιότερες εγκαταστάσεις Mattermost χρησιμοποιούν το πρόθεμα MM_, για παράδειγμα MM_SQLSETTINGS_DATASOURCE. Συνεχίζει να λειτουργεί ως παλαιό ψευδώνυμο. Όταν ορίζονται και τα δύο, η μεταβλητή AM_ έχει προτεραιότητα.

Μια ρύθμιση που δίνεται από μεταβλητή είναι κλειδωμένη στην Κονσόλα συστήματος, με την σημείωση «Αυτή η ρύθμιση έχει οριστεί μέσω μεταβλητής περιβάλλοντος. Δεν μπορεί να αλλάξει μέσω της Κονσόλας συστήματος». Δεν γράφεται στην αποθηκευμένη διαμόρφωση: αφαιρέστε τη μεταβλητή και η αποθηκευμένη τιμή θα ισχύσει ξανά.

Με Docker Compose

Προσθέστε μεταβλητές κάτω από environment: της υπηρεσίας antimatter, ή σε ένα compose.override.yaml δίπλα στο compose.yaml (το Compose το διαβάζει αυτόματα και επιβιώνει σε ενημερώσεις του κατεβασμένου αρχείου):

services:
  antimatter:
    environment:
      AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
      AM_EMAILSETTINGS_SMTPPORT: "587"
      AM_LOGSETTINGS_CONSOLELEVEL: INFO

Εφαρμόστε τις αλλαγές με docker compose up -d, το οποίο ξαναδημιουργεί το container.

Μεταβλητές που διαβάζουν οι εφαρμογές

Κάποιες μεταβλητές δεν είναι ρυθμίσεις και δεν έχουν πεδίο στην Κονσόλα συστήματος: AM_CONFIG (η τοποθεσία της διαμόρφωσης), και AM_AI_ENCRYPTION_KEY και AM_AI_ENCRYPTION_PREVIOUS_KEYS, το κλειδί που κρυπτογραφεί τα κλειδιά API των συνδέσεων μοντέλων (βλ. AI).

Μερικές εφαρμογές διαβάζουν τις δικές τους μεταβλητές, ορισμένες στην υπηρεσία antimatter: η εφαρμογή Calls διαβάζει AM_CALLS_* (βλ. Κλήσεις και φωνή), και η εφαρμογή GIFs διαβάζει AM_GIFS_SERVICE_URL, AM_GIFS_API_KEY και AM_GIFS_UPLOAD_KEY (βλ. Ενσωματωμένες εφαρμογές).

Η Κονσόλα συστήματος

Η Κονσόλα συστήματος είναι η περιοχή διαχείρισης της εφαρμογής web, για τους διαχειριστές συστήματος. Για να την ανοίξετε, κάντε κλικ στη φωτογραφία σας στο πάνω μέρος της πλευρικής στήλης της εφαρμογής και επιλέξτε Κονσόλα συστήματος, ή μεταβείτε στο https://chat.example.com/admin_console. Η πλευρική στήλη της έχει ένα πεδίο Εύρεση ρυθμίσεων που αναζητά σε κάθε σελίδα.

The System Console, with its sidebar of sections on the left and the SAML 2.0 settings page on the right.
Η Κονσόλα συστήματος. Η πλευρική στήλη ομαδοποιεί τις σελίδες σε ενότητες όπως Αναφορές, Διαχείριση χρηστών και Περιβάλλον.

Οι ενότητες της είναι:

  • Αναφορές: στατιστικά και τα αρχεία καταγραφής του server.
  • Διαχείριση χρηστών: χρήστες, ομάδες, κοινότητες (αναφέρονται ως Ομάδες), κανάλια, δικαιώματα και εξουσιοδοτημένη διαχείριση.
  • Χαρακτηριστικά συστήματος: προσαρμοσμένα χαρακτηριστικά προφίλ και πρόσβαση βάσει χαρακτηριστικών.
  • Περιβάλλον: web server, βάση δεδομένων, αποθήκευση αρχείων, image proxy, SMTP, push ειδοποιήσεις, περιορισμός ρυθμού, καταγραφή, διάρκειας συνεδριών, παρακολούθηση απόδοσης.
  • Διαμόρφωση Ιστοτόπου: σήμανση, χρήστες και ομάδες, ειδοποιήσεις, αναρτήσεις, κοινή χρήση αρχείων και άλλες συμπεριφορές σε επίπεδο διακομιστή.
  • Πιστοποίηση: εγγραφή, είσοδος με email και κωδικό, MFA, AD/LDAP, SAML 2.0, OAuth 2.0, OpenID Connect και πρόσβαση επισκεπτών.
  • AI: συνδέσεις μοντέλων και οι ενσωματωμένες λειτουργίες AI (επανεγγραφή, συνόψεις, αυτόματη μετάφραση, μετατροπή κειμένου σε ομιλία). Βλ. AI.
  • Προσθήκες: διαχείριση εφαρμογών και ρυθμίσεις κάθε εγκατεστημένης εφαρμογής.
  • Ολοκληρώσεις: webhooks, εντολές καθέτου, λογαριασμοί bot, GIF, μετατροπή κειμένου σε ομιλία, CORS.
  • Συμμόρφωση: διατήρηση δεδομένων, εξαγωγή συμμόρφωσης και παρακολούθηση, ημερολόγιο ελέγχου, προσαρμοσμένοι όροι χρήσης.
  • Πειραματικό: λειτουργίες που ενδέχεται να αλλάξουν.

Σε αυτόν τον οδηγό, μια ρύθμιση αναγράφεται με τη διαδρομή της στην Κονσόλα συστήματος, στη συνέχεια με την ετικέτα της και τέλος με το κλειδί διαμόρφωσής της. Για παράδειγμα, Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Χρήστες και ομάδες › Ενεργοποίηση αγνοήσεων, μπλοκ και αιτημάτων μηνύματος (PrivacySettings.EnableUserBlocking).

Οι περισσότερες αλλαγές ισχύουν αμέσως μόλις πατήσετε Αποθήκευση. Κάποιες (η διεύθυνση ακρόασης, ορισμένες ρυθμίσεις βάσης δεδομένων και μετρητή) απαιτούν επανεκκίνηση, και η σελίδα το αναφέρει.

Συντεχνία ή χώρος εργασίας

Κάθε κοινότητα έχει έναν τύπο, ο οποίος καθορίζει ορισμένες από τις προεπιλογές της:

  • Συντεχνία, για μια δημόσια κοινότητα ή κοινότητα χόμπι: οι κλήσεις είναι απενεργοποιημένες στα κανάλια της (οι χρήστες μιλούν σε φωνητικά κανάλια) και μόνο οι διαχειριστές της, καθώς και οι ρόλοι που διαχειρίζονται κανάλια, μπορούν να τα αρχειοθετήσουν.
  • Χώρος εργασίας, για μια εταιρεία ή έναν οργανισμό: οι κλήσεις είναι ενεργοποιημένες στα κανάλια του και οι διαχειριστές ενός καναλιού (όποιος το δημιούργησε και όσοι ορίστηκαν από αυτόν ως διαχειριστές) μπορούν επίσης να το αρχειοθετήσουν.

Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Χρήστες και ομάδες › Τύπος νέων κοινοτήτων (TeamSettings.DefaultCommunityKind, AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND) καθορίζει τον τύπο των κοινοτήτων που δημιουργούνται από εκεί και πέρα: Συντεχνία (η προεπιλογή) ή Χώρος εργασίας. Η ρύθμιση εξακολουθεί να αποθηκεύει και να διαβάζει τις παλαιότερες τιμές community και workplace. Ένα προεπιλεγμένο διάταξη που επιλέγεται κατά τη δημιουργία μιας κοινότητας καθορίζει τον δικό της τύπο. Οι διαχειριστές κάθε κοινότητας μπορούν να αλλάξουν τον τύπο της αργότερα, στις Ρυθμίσεις ομάδας › Γενικά. Η επιλογή Οι νέες συντεχνίες προσθέτουν όλους σε κάθε κανάλι (TeamSettings.AllChannelsMembershipForNewTeams) είναι η προεπιλογή μόνο για τις νέες συντεχνίες: οι χώροι εργασίας δεν ξεκινούν ποτέ με αυτόν τον τρόπο (δείτε Όλοι σε κάθε κανάλι).

Για μια εταιρεία, ορίστε το σε Χώρος εργασίας πριν δημιουργήσετε την πρώτη κοινότητα ή πριν αναβαθμίσετε έναν υπάρχοντα διακομιστή στην έκδοση 0.9.0: η αναβάθμιση δίνει σε κάθε υπάρχουσα κοινότητα την τιμή που έχει η ρύθμιση εκείνη τη στιγμή (δείτε Αναβάθμιση στην έκδοση 0.9.0).

Μηνύματα που καίγονται κατά την ανάγνωση

Οι χρήστες μπορούν να στείλουν μηνύματα που διαγράφονται λίγο μετά που κάθε αναγνώστης τα ανοίγει (δείτε Μηνύματα ανάγνωσης και διάλυσης). Οι ρυθμίσεις βρίσκονται στην Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Μηνύματα, στην ενότητα Μηνύματα ανάγνωσης και διάλυσης:

ΡύθμισηΚλειδί και μεταβλητήΠροεπιλογή
Ενεργοποίηση μηνυμάτων που καίγονται κατά την ανάγνωσηServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREADενεργοποιημένο
Διάρκεια μηνυμάτων που καίγονται κατά την ανάγνωση: πόσο διαρκεί ένα μήνυμα μόλις ανοιχτεί, όταν ο αποστολέας δεν έχει επιλέξει διάρκειαServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS600 (10 λεπτά)
Μέγιστη διάρκεια που μπορούν να επιλέξουν οι αποστολείς: από 1 ώρα έως 7 ημέρες. Μια μεγαλύτερη επιλογή μειώνεται σε αυτήνServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS86400 (1 ημέρα)
Μέγιστος χρόνος ζωής για μηνύματα «Διαγραφή μετά την ανάγνωση»: ένα μήνυμα διαγράφεται τόσο καιρό μετά την αποστολή του, ακόμα κι αν δεν το έχουν διαβάσει όλοιServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS604800 (7 ημέρες)

Η μέγιστη διάρκεια ελέγχεται ξανά όταν διαβάζεται ένα μήνυμα, οπότε η μείωσή της συντομεύει επίσης τα μηνύματα που έχουν ήδη σταλεί.

Το εργαλείο γραμμής εντολών amctl

Το amctl διαχειρίζεται έναν διακομιστή από τη γραμμή εντολών: χρήστες, κοινότητες, κανάλια, εφαρμογές, ρυθμίσεις, εργασίες και άλλα. Επικοινωνεί με τον διακομιστή με έναν από δύο τρόπους.

Τοπική λειτουργία, στον διακομιστή

Η τοπική λειτουργία επιτρέπει στο amctl να επικοινωνεί με τον διακομιστή μέσω μιας υποδοχής Unix, χωρίς να συνδέεται. Είναι ενεργοποιημένη στην εικόνα Docker και στα πακέτα .deb και .rpm. Σε έναν διακομιστή που εγκαταστάθηκε από ένα αρχείο, ενεργοποιήστε τη με ServiceSettings.EnableLocalMode (AM_SERVICESETTINGS_ENABLELOCALMODE=true). Η υποδοχή είναι από προεπιλογή /var/tmp/antimatter_local.socket (ServiceSettings.LocalModeSocketLocation).

# with Docker Compose
docker compose exec antimatter amctl --local system status
# with a release archive
sudo -u antimatter /opt/antimatter/bin/amctl --local system status
# with the .deb or .rpm package
sudo -u antimatter amctl --local system status
Όποιος μπορεί να χρησιμοποιήσει την υποδοχή, ή να εκτελέσει docker compose exec στον υπολογιστή, έχει πλήρη δικαιώματα διαχειριστή συστήματος.

Απομακρυσμένη, με λογαριασμό

Από οποιονδήποτε υπολογιστή, συνδεθείτε με ένα λογαριασμό διαχειριστή συστήματος (ή ένα προσωπικό token πρόσβασης) και στη συνέχεια εκτελέστε εντολές προς αυτόν τον διακομιστή:

amctl auth login https://chat.example.com --name prod --username admin
amctl system status

Εντολές ρυθμίσεων

ΕντολήΛειτουργία
amctl config get ServiceSettings.SiteURLΕμφανίζει μία ρύθμιση.
amctl config set TeamSettings.EnableOpenServer falseΑλλάζει μία ρύθμιση. Οι λίστες ρυθμίσεων δέχονται μία ή περισσότερες τιμές.
amctl config patch settings.jsonΣυνδυάζει ένα αρχείο JSON με ρυθμίσεις με τις ρυθμίσεις.
amctl config showΕμφανίζει ολόκληρη τη ρύθμιση ως JSON.
amctl config editΑνοίγει τις ρυθμίσεις στον επεξεργαστή σας ($EDITOR).
amctl config resetΕπαναφέρει τις ρυθμίσεις στις προεπιλογές τους.
amctl config reloadΕπαναφορτίζει τις ρυθμίσεις από το σημείο αποθήκευσης, μετά από αλλαγή που έγινε εκτός του διακομιστή.

Οι ρυθμίσεις εφαρμογών βρίσκονται κάτω από PluginSettings.Plugins.<app id>, με κλειδιά σε πεζά. Για παράδειγμα, για να ορίσετε τη διεύθυνση υπηρεσίας και το κλειδί της εφαρμογής GIFs από τον υπολογιστή Docker:

docker compose exec -T antimatter amctl --local config patch /dev/stdin <<'EOF'
{"PluginSettings": {"Plugins": {"com.antimatterchat.gifs": {
  "serviceurl": "http://gifs:8080/v2",
  "apikey": "the GIFS_API_KEY of your .env"
}}}}
EOF

Άλλες χρήσιμες εντολές: amctl user create, amctl user deactivate, amctl team create, amctl plugin list, amctl plugin enable, amctl system supportpacket και amctl logs. Εκτελέστε amctl help <command> για τις επιλογές κάθε εντολής.

Ημερολόγια

Ο διακομιστής γράφει το αρχείο καταγραφής (log) του σε δύο θέσεις, καθεμία με το δικό της επίπεδο (DEBUG, INFO, WARN ή ERROR), που ορίζεται στις Κονσόλα συστήματος › Περιβάλλον › Καταγραφή:

ΠροορισμόςΡυθμίσειςΕπιλέξεις προεπιλογής
Η κονσόλα (τυπική έξοδος)Εξαγωγή καταγραφών στην κονσόλα (LogSettings.EnableConsole), Επίπεδο καταγραφής κονσόλας (LogSettings.ConsoleLevel), Εξαγωγή καταγραφών κονσόλας ως JSON (LogSettings.ConsoleJson)ενεργό, DEBUG, JSON
Ένα αρχείο, antimatter.logΕξαγωγή καταγραφών σε αρχείο (LogSettings.EnableFile), Επίπεδο αρχείου καταγραφής (LogSettings.FileLevel), Κατάλογος αρχείων καταγραφής (LogSettings.FileLocation)ενεργό, INFO, ο κατάλογος logs/ δίπλα στον bin/

Τα αρχεία καταγραφής περιστρέφονται (rotate) στα 100 MB και τα παλιά συμπιέζονται.

Το αρχείο compose του χώρου εργασίας απενεργοποιεί την καταγραφή σε αρχείο (AM_LOGSETTINGS_ENABLEFILE=false), οπότε τα αρχεία καταγραφής υπάρχουν μόνο στην έξοδο του контейνέρ:

docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error

Το επίπεδο κονσόλας είναι από προεπιλογή DEBUG, το οποίο είναι λεπτομερές. Σε έναν πολυάσχολο διακομιστή, ορίστε AM_LOGSETTINGS_CONSOLELEVEL=INFO. Το config.json του αρχείου έκδοσης και των πακέτων το έχει ήδη ορίσει σε INFO. Με ένα αρχείο έκδοσης κάτω από systemd, η έξοδος της κονσόλας πηγαίνει στο ημερολόγιο (journalctl -u antimatter) και το αρχείο στο /opt/antimatter/logs/antimatter.log. Τα πακέτα απενεργοποιούν την καταγραφή σε αρχείο, οπότε τα ημερολόγιά τους βρίσκονται μόνο στο journal.

Τα αρχεία καταγραφής και ελέγχου πρέπει να βρίσκονται εντός της ρίζας καταγραφής: AM_LOG_PATH (το παλαιότερο MM_LOG_PATH λειτουργεί επίσης) αν έχει οριστεί, αλλιώς στον φάκελο logs. Αυτό επιβάλλεται από προεπιλογή: ένας Κατάλογος αρχείων καταγραφής, ένας προηγμένος προορισμός καταγραφής ή μια διαδρομή αρχείου ελέγχου εκτός της ρίζας σταματά τον διακομιστή κατά την εκκίνηση και απορρίπτεται όταν αποθηκεύετε τη διαμόρφωση. Απενεργοποιήστε την επιβολή με AM_FEATUREFLAGS_ENFORCELOGPATHROOT=false. Με το AM_LOG_PATH ορισμένο και το Κατάλογος αρχείων καταγραφής κενό, οι καταγραφές αποθηκεύονται στο AM_LOG_PATH.

Όταν η καταγραφή σε αρχεία είναι ενεργοποιημένη, οι διαχειριστές συστήματος μπορούν επίσης να διαβάσουν το αρχείο καταγραφής στην Κονσόλα συστήματος › Αναφορές › Καταγραφές διακομιστή: ετικέτες επιπέδου με χρωματικούς κωδικούς, γρήγορα φίλτρα ανά επίπεδο, ζωντανή παρακολούθηση και προρυθμισμένες χρονικές περιόδους από 5 λεπτά έως 24 ώρες, ή με τη χρήση του amctl logs.