Εγκατάσταση του Antimatter
Εγκαταστήστε το Antimatter με το έτοιμο αρχείο compose, από το πακέτο .deb ή .rpm μιας απελευθέρωσης, ή από ένα αρχείο απελευθέρωσης. Στη συνέχεια, δημιουργήστε τον πρώτο λογαριασμό διαχειριστή.
Εγκατάσταση με Docker Compose
Αυτός είναι ο συνιστώμενος τρόπος. Ένα αρχείο compose εκτελεί το Antimatter, το PostgreSQL, την αποθήκη αρχείων και την υπηρεσία GIF. Χρειάζεστε έναν διακομιστή Linux με Docker Engine και το πρόσθετο Compose (docker compose), 2 πυρήνες CPU και 4 GB μνήμης ή περισσότερα.
1. Λήψη του αρχείου compose
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. Δημιουργία του αρχείου .env
Το αρχείο compose διαβάζει τις ρυθμίσεις του από ένα αρχείο .env στον ίδιο φάκελο. Δημιουργήστε το με τυχαία μυστικά:
cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)
EOF
chmod 600 .env
Ορίστε το SITE_URL στην διεύθυνση που θα πληκτρολογήσουν οι χρήστες στον περιηγητή τους, για παράδειγμα http://192.168.1.20:8065 σε τοπικό δίκτυο ή https://chat.example.com με τομέα. Διατηρήστε το αρχείο .env: η βάση δεδομένων και η αποθήκευση χρησιμοποιούν αυτά τα κωδικά από την πρώτη εκκίνηση, τα κλειδιά API των συνδέσεων μοντέλων Τεχνητής Νοημοσύνης κρυπτογραφούνται με το AM_AI_ENCRYPTION_KEY, και χρειάζεστε το ίδιο αρχείο για την αποκατάσταση ενός αντιγράφου ασφαλείας.
3. Εκτέλεση
docker compose up -d
docker compose ps
Η πρώτη εκτέλεση διαρκεί ένα ή δύο λεπτά: το PostgreSQL δημιουργεί τη βάση δεδομένων, μια μονοεπίπεδη υπηρεσία bucket δημιουργεί το δοχείο αποθήκευσης, μια μονοεπίπεδη υπηρεσία gifs-stickers εισάγει το αρχικό πακέτο αυτοκόλλητων και το Antimatter δημιουργεί τους πίνακες του. Παρακολουθήστε την με docker compose logs -f antimatter.
Για να χρησιμοποιήσετε ένα όνομα τομέα και HTTPS από την αρχή, δείτε Τομέας και HTTPS: με το αρχείο compose είναι δύο επιπλέον γραμμές στο .env και το προφίλ https.
Οι μεταβλητές του .env
| Μεταβλητή | Προεπιλογή | Λειτουργία |
|---|---|---|
SITE_URL | απαιτείται | Η δημόσια διεύθυνση του Antimatter (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | απαιτείται | Κωδικό πρόσβασης του χρήστη antimatter της βάσης δεδομένων. |
S3_SECRET_KEY | απαιτείται | Μυστικό κλειδί της αποθήκης αρχείων. |
GIFS_API_KEY | απαιτείται | Κλειδί που χρησιμοποιεί το Antimatter για να καλεί την υπηρεσία GIF. |
AM_AI_ENCRYPTION_KEY | κενό | Το κλειδί που κρυπτογραφεί τα κλειδιά API των συνδέσεων μοντέλων Τεχνητής Νοημοσύνης (openssl rand -base64 32). Αν είναι κενό: ο διακομιστής δημιουργεί ένα αρχείο κλειδιού στον όγκο data. Δείτε Το κλειδί κρυπτογράφησης. |
GIFS_UPLOAD_KEY | κενό | Επιτρέπει στους χρήστες να προσθέτουν τα δικά τους GIF και αυτοκόλλητα από τον επιλογέα και να τα διαγράφουν. Αν είναι κενό, τα ανέβασματα απενεργοποιούνται. |
DOMAIN | κενό | Το όνομα τομέα σας, για το προφίλ https. |
HTTP_PORT | 8065 | Θύρα υποδοχής του web διακομιστή του Antimatter. |
CALLS_PORT | 8443 | Θύρα UDP και TCP για ήχο και βίντεο κλήσεων. |
EDGE_SUBNET | 172.29.71.0/28 | Υποδίκτυο του δικτύου μεταξύ Caddy και Antimatter. Αλλάξτε το αν επικαλύπτεται με ένα από τα δίκτυά σας. |
TZ | UTC | Ζώνη ώρας των δοχείων. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Η εικόνα Antimatter που θα εκτελεστεί (βλ. παρακάτω). |
Τι εκτελείται
| Υπηρεσία | Εικόνα | Ρόλος |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | Ο διακομιστής, η εφαρμογή web και οι ενσωματωμένες εφαρμογές. Δημοσιεύει τις θύρες HTTP_PORT και CALLS_PORT. Ο κατάλογος δεδομένων του είναι ο όγκος data. |
postgres | postgres:17-alpine | Η βάση δεδομένων, στον τόμο postgres. |
files | rustfs/rustfs | Αποθηκευτικός χώρος συμβατός με S3 για τα ανεβασμένα αρχεία και τις εγκατεστημένες εφαρμογές, στον τόμο files. |
bucket | amazon/aws-cli | Δημιουργεί το antimatter bucket και στη συνέχεια τερματίζεται. |
gifs | ghcr.io/antimatterchat/gifs-server | Η υπηρεσία GIF και αυτοκόλλητων, στον τόμο gifs. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | Εισάγει το αρχικό πακέτο αυτοκόλλητων την πρώτη φορά και στη συνέχεια τερματίζεται. |
https | caddy:2-alpine | Μόνο με το προφίλ https: HTTPS στις θύρες 80 και 443. |
Το PostgreSQL, ο αποθηκευτικός χώρος και η υπηρεσία GIF βρίσκονται σε ένα εσωτερικό δίκτυο (private) χωρίς πρόσβαση στο Internet, στο οποίο συμμετέχει μόνο το Antimatter. Κανένα από αυτά δεν εκθέτει θύρα.
Ο контейνέρας Antimatter δεν διατηρεί τίποτα στον δίσκο: οι ρυθμίσεις του βρίσκονται στη βάση δεδομένων (το AM_CONFIG δείχνει σε αυτήν) και τα αρχεία και οι εφαρμογές του βρίσκονται στην υπηρεσία αποθήκευσης. Μπορείτε να αφαιρέσετε και να ξαναδημιουργήσετε τον контейνέρα ανά πάσα στιγμή. Ο όγκος data του περιέχει μόνο το αρχείο κλειδιού κρυπτογράφησης της Τεχνητής Νοημοσύνης, το οποίο δημιουργεί ο διακομιστής όταν το AM_AI_ENCRYPTION_KEY είναι κενό. Ό,τι χρειάζεται να αντιγραφεί για ασφάλεια βρίσκεται στους όγκους postgres, files, gifs και data, καθώς και στο αρχείο .env.
Επιλέξτε εικόνα
Δημοσιεύονται δύο εικόνες Antimatter, και οι δύο για linux/amd64 και linux/arm64, και και οι δύο δημιουργούνται από το κλάδο main κάθε αποθετηρίου:
| Εικόνα | Ενσωματωμένες εφαρμογές | Ετικέτες |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Συνομιλία με AI, Κλήσεις, GitHub, GitLab, Jira και Metrics. | latest, X.Y.Z για εκδόσεις, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | Τα ίδια, συν Φωνητικά κανάλια, Ψηφοφορίες, Mail, Ημερολόγιο, Σημειώσεις, Λευκός πίνακας, GIFs, Εκκρεμότητες και Memes. Αναδημιουργείται κάθε βράδυ. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Οι δέσμες εικόνων δεν περιλαμβάνουν πλέον Kanban ή Playbooks: εγκαταστήστε το καθένα από τη δική του έκδοση GitHub (δείτε παρακάτω) αν το χρειάζεστε. Ένας διακομιστής που έχει ήδη εγκαταστήσει το ένα από τα δύο, θα το διατηρήσει μετά από μια αναβάθμιση.
Το αρχείο compose του ιστοτόπου χρησιμοποιεί το antimatter-next, επειδή η υπηρεσία GIF και οι περισσότερες εφαρμογές που περιγράφονται σε αυτόν τον ιστότοπο υπάρχουν μόνο σε αυτήν την εικόνα. Για να αλλάξετε εικόνα, ορίστε ANTIMATTER_IMAGE στο .env και εκτελέστε docker compose up -d.
latest αλλάζει από κάτω σας. Σε παραγωγή, καρφιτσωθείτε σε μια ετικέτα όπως nightly-20261015 ή sha-<commit>, και αλλάξτε την με σκόπιμη απόφαση όταν κάνετε αναβάθμιση. Ο διακομιστής αναβαθμίζει τη βάση δεδομένων του κατά την εκκίνηση, οπότε δεν μπορείτε να επιστρέψετε σε παλαιότερη εικόνα, ή από antimatter-next σε antimatter, χωρίς να επαναφέρετε ένα εφεδρικό αρχείο που λήφθηκε πριν. Δείτε Εφεδρικά και αναβαθμίσεις.Εντός της εικόνας
- Ο διακομιστής βρίσκεται στο
/antimatter, με τα εκτελέσιμαantimatterκαιamctlστο/antimatter/bin(στοPATH). - Εκτελείται ως ο μη προνομιούχος χρήστης
antimatter(uid 2000) σε μια ελάχιστη βάση distroless, χωρίς shell. - Θύρες: 8065 (web και API), 8067 (metrics), 8074 (cluster), 8443 UDP και TCP (κλήσεις).
- Η τοπική λειτουργία (
ServiceSettings.EnableLocalMode) είναι ενεργοποιημένη, οπότε η εντολήamctl --localλειτουργεί εντός του container. Ο έλεγχος υγείας εκτελεί την εντολήamctl system status --local. - Τα ενσωματωμένα apps βρίσκονται στο
/antimatter/prepackaged_pluginsκαι είναι υπογεγραμμένα με το κλειδί υπογραφής apps του Antimatter. - Περιλαμβάνονται εργαλεία εξαγωγής κειμένου (
pdftotext,wvText,unrtf,tidy), ώστε να είναι δυνατή η αναζήτηση στο περιεχόμενο των ανεβασμένων εγγράφων.
Άλλα αρχεία compose
Το αποθετήριο antimatter-docker περιλαμβάνει μια ρύθμιση παραγωγής στο deploy/compose/: nginx με δικές σας πιστοποιητικά ή Let's Encrypt (certbot), PostgreSQL, την προαιρετική υπηρεσία GIF (προφίλ gifs) και ονομασμένα volumes για τη ρύθμιση, τα δεδομένα και τα αρχεία καταγραφής του server, όπως τεκμηριώνεται στο README του. Χρησιμοποιεί από προεπιλογή το σταθερό image και αποθηκεύει τα αρχεία σε τοπικό volume αντί για αποθήκευση S3. Χρησιμοποιήστε το αν προτιμάτε nginx έναντι Caddy ή αν διαθέτετε ήδη πιστοποιητικά.
Δημιουργία του πρώτου διαχειριστή
Ανοίξτε το SITE_URL στον περιηγητή σας και δημιουργήστε έναν λογαριασμό. Ο πρώτος λογαριασμός που δημιουργείται σε έναν καινούργιο server γίνεται διαχειριστής συστήματος, και στη συνέχεια η ρύθμιση σας καθοδηγεί στη δημιουργία της πρώτης κοινότητας (η ονομασία που χρησιμοποιεί το Antimatter για ομάδα ή χώρο εργασίας).
Εκτελέστε το αμέσως μετά την πρώτη εκκίνηση: μέχρι τότε, όποιος φτάσει πρώτος στον server γίνεται ο διαχειριστής του. Για να δημιουργήσετε τον λογαριασμό από τη γραμμή εντολών αντί για τον περιηγητή, πριν ο server γίνει προσβάσιμος από το εξωτερικό:
docker compose exec antimatter amctl --local user create --system-admin --email-verified \
--email admin@example.com --username admin --password 'a-long-password'
docker compose exec antimatter amctl --local team create --name main --display-name "Main"
docker compose exec antimatter amctl --local team users add main admin
Συνδεθείτε στη συνέχεια στο SITE_URL. Ξεκινήστε την εντολή με ένα κενό για να μην καταγραφεί ο κωδικός πρόσβασης στο ιστορικό του shell (με HISTCONTROL=ignorespace), ή αλλάξτε τον κωδικό μετά τη σύνδεση.
Επόμενα βήματα αφού συνδεθείτε:
- Για μια εταιρεία ή έναν οργανισμό, ορίστε τον Τύπο νέων κοινοτήτων σε Χώρος εργασίας και αλλάξτε τον τύπο μιας κοινότητας που έχετε ήδη δημιουργήσει στις ρυθμίσεις της: Guild ή χώρος εργασίας.
- Καθορίστε ποιοι μπορούν να δημιουργούν λογαριασμούς: Σύνδεση και λογαριασμοί.
- Ρυθμίστε το email, ώστε να λειτουργούν οι προσκλήσεις και οι επαναφορές κωδικού: Email και push ειδοποιήσεις.
- Ανοίξτε την θύρα για τις κλήσεις στο firewall σας: Κλήσεις και φωνή.
- Ελέγξτε ποια apps είναι ενεργοποιημένα: Ενσωματωμένα apps.
Λήψη απελευθέρωσης
Χωρίς Docker, εγκαταστήστε το Antimatter από τα αρχεία μιας απελευθέρωσης στο GitHub: github.com/AntimatterChat/antimatter/releases. Κάθε απελευθέρωση έχει έναν αριθμό έκδοσης όπως το 0.9.0, και η ετικέτα της είναι ο ίδιος αριθμός με ένα v μπροστά (v0.9.0).
0.9.0-rc.1, φέρει την ένδειξη Pre-release στο GitHub. Πρόκειται για μια δοκιμαστική έκδοση, που δημοσιεύεται πριν από την τελική.Κάθε έκδοση περιλαμβάνει τα παρακάτω αρχεία, για διακομιστές amd64 και arm64:
| Αρχείο | Περιγραφή |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Το πακέτο για Debian, Ubuntu και τις διανομές που βασίζονται σε αυτές. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Το πακέτο για Fedora, RHEL και τις διανομές συμβατές με RHEL. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Το αρχείο (archive) της έκδοσης, για οποιαδήποτε διανομή Linux, με χειροκίνητη εγκατάσταση. |
SHA256SUMS | Ο έλεγχος SHA-256 για κάθε αρχείο της έκδοσης. |
Τα πακέτα και το αρχείο περιέχουν το ίδιο πρόγραμμα: τον διακομιστή (antimatter), το εργαλείο γραμμής εντολών (amctl), και τις δύο εφαρμογές δικτύου (την προεπιλεγμένη και την κλασική), τις ενσωματωμένες εφαρμογές, τα πρότυπα ηλεκτρονικών μηνυμάτων και τις μεταφράσεις. Τα πακέτα προσθέτουν μια υπηρεσία systemd και ένα αρχείο ρυθμίσεων, οπότε κάθε ένα αποτελεί μια ολοκληρωμένη εγκατάσταση: προσθέτετε μόνο μια βάση δεδομένων PostgreSQL. Δεν υπάρχουν ξεχωρισκά αρχεία εκτελέσιμων: τα εκτελέσιμα βρίσκονται στο αρχείο, στον φάκελο antimatter/bin/. Είναι στατικά (static), οπότε εκτελούνται σε οποιαδήποτε διανομή Linux της αντίστοιχης αρχιτεκτονικής.
Στα ονόματα των πακέτων, η παύλα μιας δοκιμαστικής έκδοσης αντικαθίσταται από τίλδα (tilde), ώστε ο διαχειριστής πακέτων να ταξινομεί τη δοκιμαστική έκδοση πριν από την τελική: η έκδοση 0.9.0-rc.1 δίνει antimatter_0.9.0~rc.1-1_amd64.deb και antimatter-0.9.0~rc.1-1.x86_64.rpm. Το αρχείο (archive) διατηρεί την παύλα.
Η εντολή antimatter version εμφανίζει την έκδοση ως Αριθμός έκδοσης, με το commit από το οποίο χτίστηκε ως Hash έκδοσης. Η γραμμή Έκδοση αναφέρει την έκδοση της σειράς Mattermost στην οποία βασίζεται το Antimatter.
Έλεγχος της λήψης
Λάβετε το αρχείο που χρειάζεστε και το SHA256SUMS στον ίδιο φάκελο, είτε από τη σελίδα της έκδοσης είτε με curl, και στη συνέχεια ελέγξτε το αρχείο:
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/antimatter_<version>-1_amd64.deb
curl -fLO https://github.com/AntimatterChat/antimatter/releases/download/v<version>/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
Κάθε αρχείο που λάβατε πρέπει να αναφέρεται με OK. Κάθε άλλο αποτέλεσμα σημαίνει ότι το αρχείο είναι κατεστραμμένο ή ελλιπές: κατεβάστε το ξανά και μην το εγκαταστήσετε. Το SHA256SUMS δεν είναι υπογεγραμμένο: εντοπίζει κατεστραμμένες λήψεις, αλλά δεν αποδεικνύει κάτι περισσότερο από ό,τι αποδεικνύει η λήψη μέσω HTTPS από το GitHub.
Εγκατάσταση του πακέτου .deb ή .rpm
Το πακέτο εγκαθιστά το Antimatter ως υπηρεσία systemd, η οποία χρειάζεται μόνο μια βάση δεδομένων για να ξεκινήσει. Χρησιμοποιήστε το σε 64-bit διακομιστή Debian, Ubuntu, Fedora ή συμβατό με RHEL, με systemd.
Τι εγκαθιστά το πακέτο
| Διαδρομή | Περιεχόμενο |
|---|---|
/opt/antimatter | Το πρόγραμμα: bin/antimatter, bin/amctl, οι εφαρμογές του δικτύου (client/, client-fusion/), οι προεγκατεστημένες εφαρμογές (prepackaged_plugins/), τα πρότυπα, οι μεταφράσεις και τα γραμματοσειρές. Κάνη αναβάθμιση το αντικαθιστά. |
/etc/antimatter/antimatter.env | Οι ρυθμίσεις της υπηρεσίας, ως μεταβλητές AM_: η βάση δεδομένων, το URL του δικτυακού τόπου, η υπηρεσία GIF. Διαβάζεται μόνο από τον root. Οι αναβαθμίσεις το διατηρούν. |
/etc/antimatter/config/config.json | Το αρχείο ρυθμίσεων, όπου ο διακομιστής αποθηκεύει τις αλλαγές που έγιναν στην Κονσόλα συστήματος. Δημιουργείται από /opt/antimatter/defaults/config.json κατά την πρώτη εγκατάσταση και δεν αντικαθίσταται ποτέ μετά από τότε. |
/var/lib/antimatter | Τα ανεβασμένα αρχεία (data/) και οι εγκατεστημένες εφαρμογές (plugins/, client-plugins/). |
/var/log/antimatter | Τα αρχεία ημερολογίου, αν ενεργοποιήσετε την καταγραφή σε αρχείο. Είναι απενεργοποιημένη: τα αρχεία ημερολογίου πηγαίνουν στο journal. |
/usr/lib/systemd/system/antimatter.service | Η υπηρεσία. |
/usr/bin/amctl | Ένας σύνδεσμος προς /opt/antimatter/bin/amctl. |
Οι κατάλογοι στους οποίους γράφει ο διακομιστής στο /opt/antimatter (config, data, plugins, client/plugins και logs) είναι σύνδεσμοι προς /etc/antimatter, /var/lib/antimatter και /var/log/antimatter. Έτσι, μια αναβάθμιση, η οποία αντικαθιστά το /opt/antimatter, δεν αγγίζει ποτέ τα δεδομένα σας. Το πακέτο δημιουργεί επίσης τον χρήστη του συστήματος antimatter, ο οποίος εκτελεί τον διακομιστή και είναι ιδιοκτήτης αυτών των καταλόγων.
Το πακέτο εξαρτάται από ca-certificates. Προτείνει PostgreSQL (postgresql στο Debian και Ubuntu, postgresql-server στο Fedora και RHEL), media-types (mailcap για το .rpm) και gifs-server, την υπηρεσία GIF, η οποία έχει τη δική της έκδοση (βλ. κάτω). Τα apt και dnf εγκαθιστούν τα προτεινόμενα πακέτα όταν τα βρουν. Προτείνει poppler-utils, wv, unrtf και tidy (χωρίς wv για το .rpm): εξάγουν το κείμενο των ανεβασμένων εγγράφων, ώστε η αναζήτηση να βρίσκει λέξεις μέσα σε αυτά. Εγκαταστήστε τα μόνοι σας αν το θέλετε.
1. Εγκατάσταση των πακέτων
Κατεβάστε το πακέτο Antimatter και το πακέτο της υπηρεσίας GIF για την αρχιτεκτονική σας, ελέγξτε τα όπως φαίνεται παραπάνω και εγκαταστήστε και τα δύο με εντολή, ώστε να ικανοποιηθεί η προτείνουσα gifs-server (δεν υπάρχει στα αποθετήρια των διανομών):
# Debian, Ubuntu
sudo apt install ./antimatter_<version>-1_amd64.deb ./gifs-server_*_amd64.deb
# Fedora, RHEL
sudo dnf install ./antimatter-<version>-1.x86_64.rpm ./gifs-server-*.x86_64.rpm
Κρατήστε το ./: δηλώνει στο apt και dnf να εγκαταστήσουν ένα τοπικό αρχείο. Για να εγκαταστήσετε χωρίς την υπηρεσία GIF, αφήστε το πακέτο της εκτός. Το πακέτο ενεργοποιεί την υπηρεσία antimatter αλλά δεν την εκτελεί, και εμφανίζει τα επόμενα βήματα.
2. Δημιουργία της βάσης δεδομένων
Το Antimatter απαιτεί PostgreSQL 15 ή νεότερη έκδοση, σε αυτόν τον διακομιστή ή σε έναν άλλο. Ελέγξτε την έκδοση του PostgreSQL της διανομής σας με psql --version. Αν είναι παλαιότερη, εγκαταστήστε νεότερη έκδοση από τα αποθετήρια του ίδιου του έργου PostgreSQL, ή χρησιμοποιήστε βάση δεδομένων σε άλλο διακομιστή. Στα Debian και Ubuntu, το πακέτο postgresql εκτελεί τη βάση. Στα Fedora και RHEL, δημιουργήστε και εκτελέστε πρώτα:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Στη συνέχεια, δημιουργήστε έναν χρήστη και μια βάση για το Antimatter:
sudo -u postgres psql -c "CREATE USER antimatter WITH PASSWORD 'a-long-password'"
sudo -u postgres psql -c "CREATE DATABASE antimatter OWNER antimatter"
Το PostgreSQL πρέπει να αποδέχεται συνδέσεις με κωδικό από 127.0.0.1: οι γραμμές host του αρχείου pg_hba.conf, με τη μέθοδο scram-sha-256.
3. Ρύθμιση της βάσης δεδομένων και της διεύθυνσης URL του χώρου
Επεξεργαστείτε το /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Αφαιρέστε το # από τις γραμμές που χρησιμοποιείτε και ορίστε τη βάση δεδομένων και τη διεύθυνση που θα ανοίγουν οι χρήστες:
AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com
Κάθε ρύθμιση της διαμόρφωσης μπορεί να τοποθετηθεί σε αυτό το αρχείο, ως AM_<SECTION>_<SETTING>: για παράδειγμα, το SqlSettings.DataSource είναι AM_SQLSETTINGS_DATASOURCE. Μια ρύθμιση που ορίζεται εδώ δεν μπορεί να αλλάξει στην Κονσόλα συστήματος. Δείτε Διαμόρφωση. Επανεκκινήστε τον διακομιστή μετά από κάθε αλλαγή: sudo systemctl restart antimatter.
Η υπηρεσία ορίζει επίσης ορισμένες προεπιλογές, οι οποίες υπερισχύουν από μια γραμμή στο antimatter.env: η καταγραφή σε αρχεία είναι απενεργοποιημένη (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), και η τοπική λειτουργία είναι ενεργοποιημένη (AM_SERVICESETTINGS_ENABLELOCALMODE=true), ώστε να λειτουργεί το amctl --local στον διακομιστή.
4. Εκτέλεση
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
Κατά την πρώτη εκκίνηση, ο διακομιστής δημιουργεί τους πίνακες της βάσης δεδομένων και στη συνέχεια ακούει στην θύρα 8065. Ανοίξτε το http://<server>:8065, ή το τομέα σας μόλις τεθεί σε λειτουργία ένας reverse proxy (βλ. Τομέας και HTTPS), και δημιουργήστε αμέσως τον πρώτο λογαριασμό: αυτός γίνεται ο διαχειριστής συστήματος. Αν προτιμάτε να τον δημιουργήσετε από τη γραμμή εντολών, χρησιμοποιήστε τις εντολές amctl της ενότητας Δημιουργία του πρώτου διαχειριστή, αντικαθιστώντας το docker compose exec antimatter amctl --local με sudo -u antimatter amctl --local.
5. Ενεργοποίηση GIF
Η εφαρμογή GIF περιλαμβάνεται και είναι ενεργοποιημένη, και το antimatter.env δείχνει ήδη προς την υπηρεσία GIF στον ίδιο διακομιστή (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Χρειάζεται ακόμα το κλειδί API της υπηρεσίας. Το πακέτο gifs-server δημιούργησε ένα κατά την εγκατάστασή του:
sudo systemctl start gifs-server-stickers # imports the sticker pack, about a minute and a half
sudo systemctl start gifs-server
sudo grep -v '^#' /etc/gifs-server/api-keys
Βάλτε το κλειδί στο antimatter.env ως AM_GIFS_API_KEY=<key> και επανεκκινήστε το Antimatter, ή εισάγετέ το ως Κλειδί API στο Κονσόλα συστήματος › Προσθήκες › GIF. Αν η υπηρεσία GIF εκτελείται σε άλλο διακομιστή, ορίστε το AM_GIFS_SERVICE_URL στη διεύθυνσή της. Για να επιτρέψετε στους χρήστες να προσθέτουν τα δικά τους GIF και αυτοκόλλητα, δείτε GIF.
Η υπηρεσία
- Εκτελείται ως ο χρήστης
antimatter, στο/opt/antimatter, και διαβάζει το/etc/antimatter/antimatter.env. Το systemd επανεκκινεί τον διακομιστή κάθε φορά που αυτός τερματίζεται, και του δίνει έως και μία ώρα για να ξεκινήσει, επειδή οι μεταφορές (migrations) της βάσης δεδομένων μιας νέας έκδοσης μπορεί να διαρκούν πολύ. - Τα αρχεία καταγραφής (logs) του βρίσκονται στο journal:
journalctl -u antimatter. - Είναι ενισχυμένη (hardened): τα
/usrκαι/etcείναι μόνο για ανάγνωση για τον διακομιστή, εκτός από το/etc/antimatter/config, και δεν μπορεί να δει τα/home,/rootή/run/user. Αν μετακινήσετε την αποθήκευση αρχείων (FileSettings.Directory), επιλέξτε έναν κατάλογο εκτός αυτών, που να ανήκει στονantimatter. - Οι αναβαθμίσεις αντικαθιστούν το αρχείο της υπηρεσίας. Για να το αλλάξετε, χρησιμοποιήστε
sudo systemctl edit antimatter, το οποίο διατηρεί τις αλλαγές σας σε ένα ξεχωριστό αρχείο.
Αναβάθμιση ενός πακέτου
- Πάρτε ένα αντίγραφο ασφαλείας (βλ. Αντιγραφή ασφαλείας και αναβαθμίσεις).
- Κατεβάστε το νέο πακέτο και το
SHA256SUMS, και ελέγξτε τα. - Διακόψτε τον διακομιστή, εγκαταστήστε το νέο πακέτο πάνω από το παλιό και ξεκινήστε τον ξανά:
sudo systemctl stop antimatter sudo apt install ./antimatter_<new version>-1_amd64.deb # or: sudo dnf install ./antimatter-<new version>-1.x86_64.rpm sudo systemctl start antimatter journalctl -u antimatter -f
Το πακέτο δεν επανεκκινεί τον διακομιστή αυτόματα. Μετά από μια αναβάθμιση, εμφανίζει Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: αν δεν σταμάτησατε πρώτα τον διακομιστή, επανεκκινήστε τον αμέσως. Η αναβάθμιση αντικαθιστά το /opt/antimatter και το αρχείο υπηρεσίας, διατηρώντας το antimatter.env, το config.json, το /var/lib/antimatter και τα αρχεία καταγραφής. Κατά την εκκίνηση, ο διακομιστής αναβαθμίζει τη βάση δεδομένων και εγκαθιστά τις νεότερες εκδόσεις των ενσωματωμένων εφαρμογών.
Εάν μια νέα έκδοση αλλάζει το προεπιλεγμένο antimatter.env, το apt ρωτά αν θέλετε να διατηρήσετε την έκδοσή σας: διατηρήστε την. Το dnf διατηρεί την δική σας και αποθηκεύει τη νέα ως /etc/antimatter/antimatter.env.rpmnew. Οι αναβαθμίσεις γίνονται μόνο προς τα εμπρός: μην εγκαθιστάτε μια παλαιότερη έκδοση πάνω από μια νεότερη.
Αφαίρεση πακέτου
Η εντολή sudo apt remove antimatter ή sudo dnf remove antimatter σταματά και απενεργοποιεί την υπηρεσία και αφαιρεί το πρόγραμμα. Διατηρεί τα δεδομένα (/var/lib/antimatter), τη ρύθμιση (/etc/antimatter), τη βάση δεδομένων και τον χρήστη antimatter: αφαιρέστε τα εσείς για να καταργήσετε πλήρως το Antimatter.
Εφαρμογές στα πακέτα και στο αρχείο
Τα πακέτα και το αρχείο περιλαμβάνουν την πιο πρόσφατη υπογεγραμμένη έκδοση αυτών των εφαρμογών, στον φάκελο prepackaged_plugins/: Συνομιλία με AI, Κλήσεις, GIFs, Memes, Σημειώσεις, Ψηφοφορίες, Εκκρεμότητες, Φωνητικά κανάλια και Λευκός πίνακας. Μια εφαρμογή που δεν είχε κυκλοφορήσει όταν δημιουργήθηκε η έκδοση του διακομιστή παραλείπεται: η εντολή ls /opt/antimatter/prepackaged_plugins δείχνει τι περιλαμβάνει η έκδοσή σας. Οι εφαρμογές Memes και Εκκρεμότητες περιλαμβάνονται αλλά δεν είναι ενεργοποιημένες: η ενότητα Συνοδεύουσες εφαρμογές εξηγεί πώς να τις εγκαταστήσετε και να τις ενεργοποιήσετε.
Τα Kanban και Playbooks δεν συνοδεύουν πλέον τον διακομιστή ούτε καμία από τις εικόνες Docker: ένας διακομιστής που έχει ήδη εγκαταστήσει το ένα από τα δύο, θα το διατηρήσει μετά από μια αναβάθμιση, ενώ οι υπόλοιποι μπορούν να το εγκαταστήσουν από τη δική του έκδοση, όπως τις εφαρμογές παρακάτω. Οι άλλες εφαρμογές των εικόνων Docker δεν περιλαμβάνονται ούτε στα πακέτα ούτε στο αρχείο: Mail, Ημερολόγιο, GitHub, GitLab, Jira και Metrics. Εγκαταστήστε καθεμία από αυτές, συμπεριλαμβανομένων των Kanban και Playbooks, από τις δικές τους εκδόσεις:
| Εφαρμογή | Εκδόσεις | App id |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbooks | antimatter-plugin-playbooks | playbooks |
| antimatter-plugin-mail | com.antimatterchat.mail | |
| Ημερολόγιο | antimatter-plugin-calendar | com.antimatterchat.calendar |
| GitHub | antimatter-plugin-github | github |
| GitLab | antimatter-plugin-gitlab | com.github.manland.mattermost-plugin-gitlab |
| Jira | antimatter-plugin-jira | jira |
| Μετρικές | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Κάθε έκδοση εφαρμογής περιλαμβάνει το bundle της (ένα αρχείο .tar.gz), την υπογραφή του (το ίδιο όνομα με προσθήκη .sig) και ένα αρχείο SHA256SUMS. Για να εγκαταστήσετε μια εφαρμογή, επιτρέψτε τα ανεβάσματα και στη συνέχεια προσθέστε το bundle με amctl:
# 1. In /etc/antimatter/antimatter.env, add this line, then restart Antimatter
AM_PLUGINSETTINGS_ENABLEUPLOADS=true
sudo systemctl restart antimatter
# 2. Download the bundle where the antimatter user can read it, and install it
cd /tmp
curl -fLO https://github.com/AntimatterChat/antimatter-plugin-boards/releases/download/v<version>/<bundle>.tar.gz
sudo -u antimatter amctl --local plugin add <bundle>.tar.gz
sudo -u antimatter amctl --local plugin enable focalboard
Για να αναβαθμίσετε μια εφαρμογή που εγκαταστάθηκε με αυτόν τον τρόπο, προσθέστε το νέο bundle με plugin add --force: οι αναβαθμίσεις πακέτων αναβαθμίζουν μόνο τις προεγκατεστημένες εφαρμογές. Μπορείτε να αφαιρέσετε ξανά τη γραμμή AM_PLUGINSETTINGS_ENABLEUPLOADS αργότερα. Δείτε Εγκατάσταση άλλων εφαρμογών για τους άλλους τρόπους εγκατάστασης εφαρμογών.
Υπογραφές εφαρμογών
Τα bundles των εφαρμογών υπογράφονται με το κλειδί υπογραφής εφαρμογών του Antimatter: κάθε αρχείο .tar.gz.sig είναι μια αποκομμένη υπογραφή GPG του αντίστοιχου bundle. Ο διακομιστής ελέγχει αυτές τις υπογραφές πριν εγκαταστήσει μια προεγκατεστημένη εφαρμογή. Για να ελέγξετε ένα bundle μόνοι σας:
curl -fsSLO https://raw.githubusercontent.com/AntimatterChat/antimatter-docker/main/keys/antimatter-plugin-signing.asc
gpg --import antimatter-plugin-signing.asc
gpg --verify <bundle>.tar.gz.sig <bundle>.tar.gz
Το gpg πρέπει να αναφέρει μια έγκυρη υπογραφή από το Antimatter Plugin Signing, με απόпечатμα 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Προειδοποιεί επίσης ότι το κλειδί δεν έχει πιστοποιηθεί με έγκυρη υπογραφή: αυτό είναι φυσιολογικό για ένα κλειδί που δεν έχετε υπογράψει εσείς. Μια έκδοση εφαρμογής χωρίς αρχεία .sig είναι χωρίς υπογραφή και τα σημειώματα έκδοσης το αναφέρουν.
Εγκατάσταση από αρχείο έκδοσης
Το αρχείο antimatter-<version>-linux-<arch>.tar.gz (για παράδειγμα antimatter-0.9.0-linux-amd64.tar.gz) προορίζεται για διανομές χωρίς πακέτα .deb ή .rpm, ή για μια διάταξη της δικής σας επιλογής. Περιλαμβάνει έναν μόνο κατάλογο antimatter/ με bin/antimatter, bin/amctl, config/config.json, τις web εφαρμογές (client/ και client-fusion/), τις προεγκατεστημένες εφαρμογές (prepackaged_plugins/, δείτε πάνω), τα πρότυπα email και τις μεταφράσεις.
1. Προετοιμασία του PostgreSQL
Το Antimatter υποστηρίζει μόνο PostgreSQL, έκδοση 15 ή νεότερη (οι παλαιότερες εκδόσεις εκκινούν, αλλά με σφάλμα στο αρχείο καταγραφής). Δημιουργήστε έναν χρήστη και μια βάση δεδομένων:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Αποσυμπίεση και ρύθμιση
sudo tar -xzf antimatter-<version>-linux-amd64.tar.gz -C /opt
sudo useradd --system --user-group antimatter
sudo mkdir -p /opt/antimatter/data
sudo chown -R antimatter:antimatter /opt/antimatter
Δείξτε στον διακομιστή τη βάση δεδομένων, είτε στο /opt/antimatter/config/config.json (SqlSettings.DataSource) είτε μέσω μεταβλητών περιβάλλοντος, και ορίστε τη διεύθυνση URL του χώρου εργασίας:
AM_SQLSETTINGS_DRIVERNAME=postgres
AM_SQLSETTINGS_DATASOURCE=postgres://antimatter:a-long-password@localhost:5432/antimatter?sslmode=disable&connect_timeout=10
AM_SERVICESETTINGS_SITEURL=https://chat.example.com
Το config.json του αρχείου είναι μια πλήρης προεπιλεγμένη ρύθμιση: οι αλλαγές που κάνετε στην Κονσόλα συστήματος αποθηκεύονται ξανά σε αυτό. Αν θέλετε να διατηρήσετε τη ρύθμιση στη βάση δεδομένων, δείτε Ρύθμιση.
3. Εκτέλεση ως υπηρεσία
Μονάδα systemd, στο /etc/systemd/system/antimatter.service:
[Unit]
Description=Antimatter
After=network.target postgresql.service
[Service]
Type=notify
User=antimatter
Group=antimatter
WorkingDirectory=/opt/antimatter
ExecStart=/opt/antimatter/bin/antimatter
EnvironmentFile=-/etc/antimatter.env
TimeoutStartSec=3600
Restart=always
RestartSec=10
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
Τοποθετήστε τις μεταβλητές AM_ στο /etc/antimatter.env (αναγνώσιμο μόνο από τον root), και στη συνέχεια:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
Ο διακομιστής ακούει στην θύρα 8065. Ανοίξτε http://<server>:8065, ή το domain σας μόλις τεθεί σε λειτουργία ένα reverse proxy (βλ. Domain και HTTPS), και δημιουργήστε τον πρώτο λογαριασμό: αυτός γίνεται ο διαχειριστής συστήματος.
Το bin/amctl διαχειρίζεται τον ενεργό διακομιστή από τη γραμμή εντολών. Στο ίδιο το σύστημα, λειτουργεί χωρίς σύνδεση μέσω τοπικής λειτουργίας: ορίστε AM_SERVICESETTINGS_ENABLELOCALMODE=true, και στη συνέχεια εκτελέστε sudo -u antimatter /opt/antimatter/bin/amctl --local system status.
Για GIFs, εγκαταστήστε την υπηρεσία GIF (βλ. παρακάτω) και ορίστε AM_GIFS_SERVICE_URL και AM_GIFS_API_KEY όπως στο βήμα 5 των πακέτων.
Τα πακέτα της υπηρεσίας GIF και του proxy push
Η υπηρεσία GIF και το push proxy έχουν τις δικές τους εκδόσεις, με τους ίδιους κανόνες με τον server: ένα αρχείο .tar.gz, ένα πακέτο .deb και ένα .rpm για amd64 και arm64, και ένα αρχείο SHA256SUMS. Οι εκδόσεις με παύλα είναι προεγγραφές (prereleases). Ελέγξτε τις λήψεις με sha256sum --check --ignore-missing SHA256SUMS, όπως και για τον server.
Η υπηρεσία GIF (gifs-server)
Εκδόσεις: github.com/AntimatterChat/gifs-server/releases. Το αρχείο είναι gifs-server-<version>-linux-<arch>.tar.gz· τα πακέτα ονομάζονται gifs-server.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Το πακέτο εγκαθιστά:
- το
/usr/bin/gifs-serverκαι την υπηρεσίαgifs-server, η οποία εκτελείται ως χρήστηςgifs-serverκαι διατηρεί τον κατάλογό της στο/var/lib/gifs-server· - την υπηρεσία
gifs-server-stickers, η οποία εισάγει ή ενημερώνει το πακέτο αυτοκόλλητων στο/usr/share/gifs-server/stickersκατά την εκκίνηση και στη συνέχεια σταματά· - τις ρυθμίσεις της,
/etc/gifs-server/gifs-server.env(μεταβλητέςAM_GIFS_, που διατηρούνται κατά τις αναβαθμίσεις) και/etc/gifs-server/api-keys, με ένα κλειδί API ανά γραμμή, όπου παράγεται ένα τυχαίο κλειδί κατά την πρώτη εγκατάσταση.
Ακούει στην 127.0.0.1:8080, οπότε μόνο το Antimatter στον ίδιο server μπορεί να το προσεγγίσει. Αν το Antimatter εκτελείται αλλού, ορίστε AM_GIFS_LISTEN=:8080 στο gifs-server.env και περιορίστε την πρόσβαση στην θύρα με το firewall σας. Το αρχείο αναφέρει και τις υπόλοιπες ρυθμίσεις: AM_GIFS_UPLOAD_KEYS (τα κλειδιά που επιτρέπεται να προσθέσουν GIF και αυτοκόλλητα, και να διαγράψουν αυτά που προστέθηκαν με αυτά), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY και AM_GIFS_LOG_LEVEL. Το πακέτο συνιστά ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools για το .rpm) και μια γραμματοσειρά DejaVu: η υπηρεσία τα χρησιμοποιεί για να δημιουργήσει τις μορφές GIF, βίντεο και αυτοκόλλητων κατά την εισαγωγή ή την λήψη αρχείων, και λειτουργεί χωρίς αυτά.
Όπως και ο server, η υπηρεσία είναι ενεργοποιημένη αλλά δεν εκκινείται κατά την εγκατάσταση. Εκκινήστε την όπως φαίνεται στο βήμα 5 των πακέτων. Μετά από μια αναβάθμιση, επανεκκινήστε την: sudo systemctl restart gifs-server. Η αφαίρεση του πακέτου διατηρεί τον κατάλογο στο /var/lib/gifs-server.
Το push proxy
Εκδόσεις: github.com/AntimatterChat/push-proxy/releases. Το αρχείο είναι antimatter-push-proxy-<version>-linux-<arch>.tar.gz· τα πακέτα ονομάζονται antimatter-push-proxy. Το πακέτο εγκαθιστά το /usr/bin/antimatter-push-proxy και την υπηρεσία antimatter-push-proxy, η οποία εκτελείται ως ο χρήστης antimatter-push-proxy και διαβάζει το /etc/antimatter-push-proxy/antimatter-push-proxy.json (που διατηρείται κατά τις αναβαθμίσεις). Τα διαπιστευτήρια Apple και Firebase τοποθετούνται στο /etc/antimatter-push-proxy/certs: η ενότητα Push ειδοποιήσεις εξηγεί από πού προέρχονται.
sudo apt install ./antimatter-push-proxy_*_amd64.deb # or: sudo dnf install ./antimatter-push-proxy-*.x86_64.rpm
sudo install -o root -g antimatter-push-proxy -m 0640 \
AuthKey_ABCDE12345.p8 firebase-service-account.json /etc/antimatter-push-proxy/certs/
sudoedit /etc/antimatter-push-proxy/antimatter-push-proxy.json
sudo systemctl start antimatter-push-proxy
journalctl -u antimatter-push-proxy -f
Στο αρχείο ρυθμίσεων, οι διαδρομές είναι σχετικές ως προς το /etc/antimatter-push-proxy: για παράδειγμα "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" και "ServiceFileLocation": "./certs/firebase-service-account.json". Στη συνέχεια, ορίστε το Διακομιστής push ειδοποιήσεων στο Antimatter σε http://<proxy host>:8066. Μετά από μια αναβάθμιση, επανεκκινήστε το: sudo systemctl restart antimatter-push-proxy.
Άλλες εντολές διακομιστή
Πέρα από την εκτέλεση του διακομιστή (antimatter, ή antimatter server), το binary διαθέτει μερικές εντολές συντήρησης. Διαβάζουν την ίδια ρύθμιση με τον διακομιστή.
| Εντολή | Λειτουργία |
|---|---|
antimatter version | Εμφανίζει την έκδοση, τον αριθμό κατασκευής, την ημερομηνία κατασκευής και τον hash κατασκευής. |
antimatter db ping | Ελέγχει ότι η βάση δεδομένων είναι προσβάσιμη. |
antimatter db init | Δημιουργεί τη ρύθμιση στη βάση δεδομένων (με το AM_CONFIG ορισμένο σε ένα URL postgres://). |
antimatter db migrate | Εφαρμόζει τις μεταφορές (migrations) της βάσης δεδομένων χωρίς να εκκινεί τον διακομιστή. |
antimatter db version | Εμφανίζει την τελευταία μεταφορά (migration) που εφαρμόστηκε στη βάση δεδομένων. |
antimatter import bulk, antimatter export bulk | Εισάγει ή εξάγει δεδομένα στη μορφή ομαδικής μεταφοράς (βλ. Αντιγραφή και αναβαθμίσεις). |