Διαμόρφωση
Πού αποθηκεύει το 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.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_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. Η πλευρική στήλη της έχει ένα πεδίο Εύρεση ρυθμίσεων που αναζητά σε κάθε σελίδα.

Οι ενότητες της είναι:
- Αναφορές: στατιστικά και τα αρχεία καταγραφής του 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) είναι η προεπιλογή μόνο για τις νέες συντεχνίες: οι χώροι εργασίας δεν ξεκινούν ποτέ με αυτόν τον τρόπο (δείτε Όλοι σε κάθε κανάλι).
Μηνύματα που καίγονται κατά την ανάγνωση
Οι χρήστες μπορούν να στείλουν μηνύματα που διαγράφονται λίγο μετά που κάθε αναγνώστης τα ανοίγει (δείτε Μηνύματα ανάγνωσης και διάλυσης). Οι ρυθμίσεις βρίσκονται στην Κονσόλα συστήματος › Διαμόρφωση Ιστοτόπου › Μηνύματα, στην ενότητα Μηνύματα ανάγνωσης και διάλυσης:
| Ρύθμιση | Κλειδί και μεταβλητή | Προεπιλογή |
|---|---|---|
| Ενεργοποίηση μηνυμάτων που καίγονται κατά την ανάγνωση | ServiceSettings.EnableBurnOnRead, AM_SERVICESETTINGS_ENABLEBURNONREAD | ενεργοποιημένο |
| Διάρκεια μηνυμάτων που καίγονται κατά την ανάγνωση: πόσο διαρκεί ένα μήνυμα μόλις ανοιχτεί, όταν ο αποστολέας δεν έχει επιλέξει διάρκεια | ServiceSettings.BurnOnReadDurationSeconds, AM_SERVICESETTINGS_BURNONREADDURATIONSECONDS | 600 (10 λεπτά) |
| Μέγιστη διάρκεια που μπορούν να επιλέξουν οι αποστολείς: από 1 ώρα έως 7 ημέρες. Μια μεγαλύτερη επιλογή μειώνεται σε αυτήν | ServiceSettings.BurnOnReadMaximumDurationSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMDURATIONSECONDS | 86400 (1 ημέρα) |
| Μέγιστος χρόνος ζωής για μηνύματα «Διαγραφή μετά την ανάγνωση»: ένα μήνυμα διαγράφεται τόσο καιρό μετά την αποστολή του, ακόμα κι αν δεν το έχουν διαβάσει όλοι | ServiceSettings.BurnOnReadMaximumTimeToLiveSeconds, AM_SERVICESETTINGS_BURNONREADMAXIMUMTIMETOLIVESECONDS | 604800 (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.