Instalowanie Antimatter
Zainstaluj Antimatter za pomocą gotowego pliku compose, z pakietu .deb lub .rpm wydania lub z archiwum wydania. Następnie utwórz konto pierwszego administratora.
Instalacja za pomocą Docker Compose
To zalecana metoda. Jeden plik compose uruchamia Antimatter, PostgreSQL, magazyn plików i usługę GIF. Wymagany jest serwer Linux z Docker Engine i jego wtyczką Compose (docker compose), 2 rdzenie CPU oraz 4 GB pamięci RAM lub więcej.
1. Pobierz plik compose
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. Utwórz plik .env
Plik compose odczytuje swoje ustawienia z pliku .env w tym samym katalogu. Utwórz go z losowymi hasłami:
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
Ustaw SITE_URL na adres, który użytkownicy będą wpisywać w przeglądarce, na przykład http://192.168.1.20:8065 w sieci lokalnej lub https://chat.example.com z domeną. Zachowaj plik .env: baza danych i magazyn używają haseł z tego pliku od pierwszego uruchomienia, klucze API połączeń z modelami AI są szyfrowane za pomocą AM_AI_ENCRYPTION_KEY, a ten sam plik jest potrzebny do przywracania kopii zapasowej.
3. Uruchom
docker compose up -d
docker compose ps
Pierwsze uruchomienie trwa minutę lub dwie: PostgreSQL tworzy bazę danych, jednorazowa usługa bucket tworzy bucket magazynu, jednorazowa usługa gifs-stickers importuje pakiet startowy naklejek, a Antimatter tworzy swoje tabele. Obserwuj postęp za pomocą docker compose logs -f antimatter.
Aby od początku używać nazwy domeny i HTTPS, zobacz Domena i HTTPS: w przypadku pliku compose to dwie dodatkowe linie w .env i profil https.
Zmienne w pliku .env
| Zmienna | Domyślnie | Opis |
|---|---|---|
SITE_URL | wymagane | Publiczny adres Antimatter (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | wymagane | Hasło użytkownika bazy danych antimatter. |
S3_SECRET_KEY | wymagane | Klucz tajny magazynu plików. |
GIFS_API_KEY | wymagane | Klucz, którego Antimatter używa do wywoływania usługi GIF. |
AM_AI_ENCRYPTION_KEY | pusta | Klucz szyfrujący klucze API połączeń z modelami AI (openssl rand -base64 32). Jeśli pole jest puste, serwer utworzy plik z kluczem w wolumenie data. Zobacz Klucz szyfrujący. |
GIFS_UPLOAD_KEY | pusta | Pozwala użytkownikom dodawać własne GIF-y i naklejki z okna wyboru oraz je usuwać. Jeśli pole jest puste, przesyłanie jest wyłączone. |
DOMAIN | pusta | Twoja nazwa domeny, dla profilu https. |
HTTP_PORT | 8065 | Port hosta serwera WWW Antimatter. |
CALLS_PORT | 8443 | Port UDP i TCP dla audio i wideo w rozmowach. |
EDGE_SUBNET | 172.29.71.0/28 | Podsieć sieci między Caddy a Antimatter. Zmień ją, jeśli nakłada się na jedną z Twoich sieci. |
TZ | UTC | Strefa czasowa kontenerów. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Obraz Antimatter do uruchomienia (patrz niżej). |
Co jest uruchamiane
| Usługa | Obraz | Rola |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | Serwer, aplikacja webowa i dołączone aplikacje. Udostępnia porty HTTP_PORT i CALLS_PORT. Jego katalog danych to wolumen data. |
postgres | postgres:17-alpine | Baza danych, w wolumenie postgres. |
files | rustfs/rustfs | Zgodne z S3 magazynowanie plików i zainstalowanych aplikacji, w wolumenie files. |
bucket | amazon/aws-cli | Tworzy bucket antimatter, a następnie kończy pracę. |
gifs | ghcr.io/antimatterchat/gifs-server | Usługa GIF-ów i naklejek, w wolumenie gifs. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | Importuje pakiet startowych naklejek przy pierwszym uruchomieniu, a następnie kończy pracę. |
https | caddy:2-alpine | Tylko w profilu https: HTTPS na portach 80 i 443. |
PostgreSQL, magazynowanie i usługa GIF-ów znajdują się na wewnętrznej sieci (private) bez dostępu do Internetu, do której dołącza tylko Antimatter. Żadna z tych usług nie publikuje portu.
Kontener Antimatter nie przechowuje niczego na dysku: jego ustawienia znajdują się w bazie danych (AM_CONFIG wskazuje na nią), a pliki i aplikacje w usłudze magazynowania. Możesz usunąć i ponownie utworzyć kontener w dowolnym momencie. Jego wolumen data zawiera wyłącznie plik z kluczem szyfrującym AI, który serwer tworzy, gdy AM_AI_ENCRYPTION_KEY jest puste. Wszystko, co należy skopiować do kopii zapasowej, znajduje się w wolumenach postgres, files, gifs i data, a także w pliku .env.
Wybierz obraz
Opublikowano dwa obrazy Antimatter, oba dla linux/amd64 i linux/arm64, a oba zbudowane z gałęzi main każdego repozytorium:
| Obraz | Aplikacje wbudowane | Tagi |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Agenci, Rozmowy, GitHub, GitLab, Jira, Kanban, Metryki i Playbooki. | latest, X.Y.Z dla wydań, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | To samo, plus Kanały głosowe, Ankiety, Poczta, Kalendarz, Notatki, Biała tablica, GIF-y, Do zrobienia i Memy. Przetwarzane co noc. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Plik compose witryny używa antimatter-next, ponieważ usługa GIF-ów i większość aplikacji opisanych na tej witrynie znajduje się tylko w tym obrazie. Aby zmienić obraz, ustaw ANTIMATTER_IMAGE w .env i uruchom docker compose up -d.
latest zmienia się pod Tobą. W środowisku produkcyjnym przypnij tag, np. nightly-20261015 lub sha-<commit>, i zmieniaj go świadomie podczas aktualizacji. Serwer aktualizuje swoją bazę danych przy starcie, więc nie można wrócić do starszego obrazu ani przejść z antimatter-next na antimatter bez przywrócenia kopii zapasowej wykonanej wcześniej. Zobacz Kopie zapasowe i aktualizacje.Wewnątrz obrazu
- Serwer znajduje się w
/antimatter, z binariamiantimatteriamctlw/antimatter/bin(naPATH). - Uruchamia się jako użytkownik nieuprzywilejowany
antimatter(uid 2000) na minimalnej bazie distroless, bez powłoki. - Porty: 8065 (web i API), 8067 (metryki), 8074 (klaster), 8443 UDP i TCP (rozmowy).
- Tryb lokalny (
ServiceSettings.EnableLocalMode) jest włączony, więcamctl --localdziała wewnątrz kontenera. Test stanu uruchamiaamctl system status --local. - Dołączone aplikacje znajdują się w
/antimatter/prepackaged_pluginsi są podpisane kluczem podpisywania aplikacji Antimatter. - Dołączone są narzędzia do ekstrakcji tekstu (
pdftotext,wvText,unrtf,tidy), dzięki czemu można przeszukiwać zawartość przesłanych dokumentów.
Inne pliki compose
Repozytorium antimatter-docker zawiera konfigurację produkcyjną w deploy/compose/: nginx z własnymi certyfikatami lub Let's Encrypt (certbot), PostgreSQL, opcjonalną usługę GIF (profil gifs) oraz nazwane wolumeny dla konfiguracji, danych i logów serwera, opisane w jego README. Domyślnie używa stabilnego obrazu i przechowuje pliki na lokalnym wolumenie zamiast w magazynie S3. Wykorzystaj ją, jeśli wolisz nginx do Caddy lub już posiadasz certyfikaty.
Utwórz pierwszego administratora
Otwórz SITE_URL w przeglądarce i utwórz konto. Pierwsze konto utworzone na nowym serwerze staje się administratorem systemu, a następnie konfiguracja poprowadzi Cię przez proces tworzenia pierwszej społeczności (nazwa Antimatter na zespół lub przestrzeń roboczą).
Zrób to zaraz po pierwszym uruchomieniu: do tego czasu każdy, kto jako pierwszy dotrze do serwera, stanie się jego administratorem. Aby utworzyć konto z wiersza polecenia, zanim serwer będzie dostępny z zewnątrz:
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
Następnie zaloguj się na SITE_URL. Zacznij polecenie od spacji, aby hasło nie trafiło do historii powłoki (przy HISTCONTROL=ignorespace), lub zmień hasło po zalogowaniu.
Następne kroki po zalogowaniu:
- W przypadku firmy lub organizacji ustaw Typ nowych społeczności na Miejsce pracy i zmień typ już utworzonej społeczności w jej ustawieniach: Miejsce pracy lub społeczność.
- Określ, kto może tworzyć konta: Logowanie i konta.
- Skonfiguruj e-mail, aby zaproszenia i resetowanie hasła działały: E-mail i powiadomienia push.
- Otwórz port rozmów w zaporze sieciowej: Rozmowy i głos.
- Sprawdź, które aplikacje są włączone: Dołączone aplikacje.
Pobierz wydanie
Bez Dockera zainstaluj Antimatter z plików wydania na GitHub: github.com/AntimatterChat/antimatter/releases. Każde wydanie ma numer wersji, np. 0.9.0, a jego tag to ta sama liczba z prefiksem v (v0.9.0).
0.9.0-rc.1, jest oznaczone jako Pre-release na GitHubie. Jest to wersja testowa, publikowana przed wydaniem finalnym.Każde wydanie zawiera następujące pliki, dla serwerów amd64 i arm64:
| Plik | Opis |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Pakiet dla systemu Debian, Ubuntu oraz dystrybucji opartych na nich. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Pakiet dla systemu Fedora, RHEL oraz dystrybucji zgodnych z RHEL. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Archiwum z wydaniem, przeznaczone dla dowolnej dystrybucji Linuksa, do ręcznej instalacji. |
SHA256SUMS | Suma kontrolna SHA-256 wszystkich plików w wydaniu. |
Pakiety i archiwum zawierają ten sam program: serwer (antimatter), narzędzie wiersza poleceń (amctl), obie aplikacje webowe (domyślny interfejs i klasyczny), wbudowane aplikacje, szablony e-maili oraz tłumaczenia. Pakiety dodają usługę systemd i plik ustawień, dzięki czemu każda z nich stanowi instalację typu all-in-one: należy jedynie dodać bazę danych PostgreSQL. Nie ma osobnych pobrań binarnych: pliki binarne znajdują się w archiwum, w katalogu antimatter/bin/. Są one statyczne, więc działają na dowolnej dystrybucji Linuksa o odpowiedniej architekturze.
W nazwach pakietów myślnik w wersji przedwstępnej (prerelease) jest zastępowany tyldą, aby menedżer pakietów sortował wersje przedwstępne przed wersjami finalnymi: wersja 0.9.0-rc.1 daje antimatter_0.9.0~rc.1-1_amd64.deb oraz antimatter-0.9.0~rc.1-1.x86_64.rpm. Archiwum zachowuje myślnik.
Polecenie antimatter version wyświetla wersję wydania jako Numer Kompilacji, a commit, z którego została zbudowana, jako Hash Kompilacji. Linia Wersja to wersja linii Mattermost, na której opiera się Antimatter.
Weryfikacja pobrania
Pobierz potrzebny plik oraz SHA256SUMS do tego samego katalogu, ze strony wydania lub za pomocą curl, a następnie zweryfikuj plik:
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
Każdy pobrany plik musi być wymieniony z wynikiem OK. Wynik inny niż ten oznacza, że plik jest uszkodzony lub niekompletny: pobierz go ponownie i nie instaluj. Plik SHA256SUMS nie jest podpisany: wykrywa uszkodzone pobranie, ale nie dowodzi niczego więcej niż pobranie przez HTTPS z GitHuba.
Instalacja pakietu .deb lub .rpm
Pakiet instaluje Antimatter jako usługę systemd, która do uruchomienia wymaga tylko bazy danych. Używaj go na 64-bitowym serwerze z systemem Debian, Ubuntu, Fedora lub zgodnym z RHEL, wyposażonym w systemd.
Zawartość pakietu
| Ścieżka | Zawartość |
|---|---|
/opt/antimatter | Program: bin/antimatter, bin/amctl, aplikacje webowe (client/, client-fusion/), wbudowane aplikacje (prepackaged_plugins/), szablony, tłumaczenia i czcionki. Każda aktualizacja zastępuje ten katalog. |
/etc/antimatter/antimatter.env | Ustawienia usługi jako zmienne AM_: baza danych, adres URL witryny, usługa GIF. Odczyt dostępne tylko dla roota. Aktualizacje zachowują ten katalog. |
/etc/antimatter/config/config.json | Plik konfiguracyjny, w którym serwer zapisuje ustawienia zmienione w Konsoli systemu. Tworzony jest z /opt/antimatter/defaults/config.json przy pierwszej instalacji i nigdy nie jest zastępowany później. |
/var/lib/antimatter | Przesłane pliki (data/) i zainstalowane aplikacje (plugins/, client-plugins/). |
/var/log/antimatter | Pliki dziennika, jeśli włączysz logowanie do pliku. Domyślnie jest wyłączone: logi trafiają do dziennika systemowego. |
/usr/lib/systemd/system/antimatter.service | Usługa. |
/usr/bin/amctl | Łącze do /opt/antimatter/bin/amctl. |
Katalogi, do których serwer zapisuje dane w /opt/antimatter (config, data, plugins, client/plugins i logs), to linki do /etc/antimatter, /var/lib/antimatter i /var/log/antimatter. Dzięki temu aktualizacja, która zastępuje /opt/antimatter, nigdy nie narusza Twoich danych. Plik instalacyjny tworzy również użytkownika systemowego antimatter, który uruchamia serwer i jest właścicielem tych katalogów.
Pakiet zależy od ca-certificates. Rekomenduje PostgreSQL (postgresql na Debianie i Ubuntu, postgresql-server na Fedorze i RHEL), media-types (mailcap dla .rpm) oraz gifs-server, czyli usługę GIF, która ma własną wersję (patrz poniżej). apt i dnf instalują pakiety rekomendowane, jeśli je znajdą. Sugeruje poppler-utils, wv, unrtf i tidy (bez wv dla .rpm): służą do wyodrębniania tekstu z przesłanych dokumentów, dzięki czemu wyszukiwanie znajduje słowa w ich wnętrzu. Zainstaluj je samodzielnie, jeśli chcesz tę funkcję.
1. Instalacja pakietów
Pobierz pakiet Antimatter i pakiet usługi GIF dla swojej architektury, zweryfikuj je zgodnie z powyższym opisem i zainstaluj oba jednym poleceniem, aby spełnić rekomendację gifs-server (nie znajduje się w repozytoriach dystrybucji):
# 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
Zachowaj ./: informuje on apt i dnf, aby zainstalować plik lokalny. Aby zainstalować bez usługi GIF, pomiń jej pakiet. Pakiet włącza usługę antimatter, ale jej nie uruchamia i wyświetla kolejne kroki.
2. Utwórz bazę danych
Antimatter wymaga PostgreSQL 15 lub nowszej wersji, na tym serwerze lub na innym. Sprawdź wersję PostgreSQL swojej dystrybucji za pomocą psql --version. Jeśli jest starsza, zainstaluj nowszą wersję z własnych repozytoriów projektu PostgreSQL lub użyj bazy danych na innym serwerze. Na Debianie i Ubuntu pakiet postgresql uruchamia bazę danych. Na Fedorze i RHEL najpierw ją utwórz i uruchom:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Następnie utwórz użytkownika i bazę danych dla 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 musi akceptować połączenia hasłowe z 127.0.0.1: linie host w pliku pg_hba.conf z metodą scram-sha-256.
3. Ustaw bazę danych i adres URL strony
Edytuj /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Usuń # przed liniami, których używasz, i ustaw bazę danych oraz adres, który użytkownicy będą otwierać:
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
W tym pliku można umieścić dowolne ustawienie konfiguracji w formacie AM_<SECTION>_<SETTING>: na przykład SqlSettings.DataSource to AM_SQLSETTINGS_DATASOURCE. Ustawienia zdefiniowane tutaj nie mogą być zmieniane w Konsoli systemu. Zobacz Konfigurację. Po każdej zmianie uruchom serwer ponownie: sudo systemctl restart antimatter.
Usługa ustawia również kilka wartości domyślnych, które można nadpisać liniami w antimatter.env: logowanie do plików jest wyłączone (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), a tryb lokalny jest włączony (AM_SERVICESETTINGS_ENABLELOCALMODE=true), dzięki czemu amctl --local działa na serwerze.
4. Uruchom
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
Przy pierwszym uruchomieniu serwer tworzy tabele, a następnie nasłuchuje na porcie 8065. Otwórz http://<server>:8065 lub swój domenę, gdy skonfigurujesz proxy odwrotne (patrz Domena i HTTPS), i od razu utwórz pierwsze konto: stanie się ono administratorem systemu. Aby utworzyć je z wiersza poleceń, użyj poleceń amctl z sekcji Utworzenie pierwszego administratora, stosując sudo -u antimatter amctl --local zamiast docker compose exec antimatter amctl --local.
5. Włącz GIFy
Aplikacja GIFy jest dołączona i włączona, a plik antimatter.env już wskazuje na usługę GIF na tym samym serwerze (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Nadal wymaga jednak klucza API tej usługi. Plik gifs-server wygenerował go podczas instalacji:
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
Umieść klucz w pliku antimatter.env jako AM_GIFS_API_KEY=<key> i uruchom ponownie Antimatter, albo wpisz go jako Klucz API w Konsola systemu › Wtyczki › GIFy. Jeśli usługa GIF działa na innym serwerze, ustaw AM_GIFS_SERVICE_URL na jego adres. Aby umożliwić użytkownikom dodawanie własnych GIFów i naklejek, zobacz GIFy.
Usługa
- Działa jako użytkownik
antimatter, w katalogu/opt/antimatteri odczytuje plik/etc/antimatter/antimatter.env. systemd uruchamia serwer ponownie za każdym razem, gdy się zakończy, i daje mu do godziny na start, ponieważ migracje bazy danych nowej wersji mogą trwać długo. - Jej dzienniki znajdują się w journal:
journalctl -u antimatter. - Usługa jest zabezpieczona: katalogi
/usri/etcsą dla serwera tylko do odczytu, z wyjątkiem/etc/antimatter/config, a serwer nie ma dostępu do/home,/rootani/run/user. Jeśli zmienisz miejsce przechowywania plików (FileSettings.Directory), wybierz katalog spoza tych wymienionych, należący do użytkownikaantimatter. - Aktualizacje zastępują plik usługi. Aby go zmienić, użyj
sudo systemctl edit antimatter, co pozwoli zachować Twoje zmiany w osobnym pliku.
Aktualizacja pakietu
- Utwórz kopię zapasową (patrz Kopie zapasowe i aktualizacje).
- Pobierz nowy pakiet oraz plik
SHA256SUMSi zweryfikuj je. - Zatrzymaj serwer, zainstaluj nowy pakiet nad starym i uruchom go ponownie:
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
Pakiet nie restartuje serwera samodzielnie. Po aktualizacji wyświetla komunikat Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: jeśli najpierw nie zatrzymałeś serwera, zrestartuj go od razu. Aktualizacja zastępuje /opt/antimatter oraz plik usługi, a zachowuje antimatter.env, config.json, /var/lib/antimatter oraz dzienniki. Po uruchomieniu serwer aktualizuje bazę danych i instaluje nowsze wersje dołączonych aplikacji.
Jeśli nowa wersja zmienia domyślny plik antimatter.env, apt pyta, czy zachować Twoją wersję: zachowaj ją. dnf zachowuje Twoją wersję i zapisuje nową jako /etc/antimatter/antimatter.env.rpmnew. Aktualizacje są wykonywane tylko do przodu: nie instaluj starszej wersji nad nowszą.
Usunięcie pakietu
sudo apt remove antimatter lub sudo dnf remove antimatter zatrzymuje i dezaktywuje usługę oraz usuwa program. Zachowuje dane (/var/lib/antimatter), konfigurację (/etc/antimatter), bazę danych oraz użytkownika antimatter: usuń je samodzielnie, aby całkowicie usunąć Antimatter.
Aplikacje w pakietach i archiwum
Pakiety i archiwum zawierają najnowsze podpisane wydania tych aplikacji, w katalogu prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels i Whiteboard. Aplikacja, która nie miała jeszcze wydania w momencie tworzenia wydania serwera, jest pomijana: ls /opt/antimatter/prepackaged_plugins pokazuje, co zawiera Twoje wydanie. Memes i Todo są dołączone, ale nie włączone: Bundled apps wyjaśnia, jak je zainstalować i włączyć.
Pozostałe aplikacje z obrazów Docker nie znajdują się w pakietach ani w archiwum: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira i Metrics. Zainstaluj każdą z nich z jej własnych wydań:
| Aplikacja | Wydania | Identyfikator aplikacji |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbooki | antimatter-plugin-playbooks | playbooks |
| Poczta | antimatter-plugin-mail | com.antimatterchat.mail |
| Kalendarz | 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 |
| Metryki | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Każda wersja aplikacji zawiera pakiet aplikacji (plik .tar.gz), jej podpis (plik o tej samej nazwie z dodanym .sig) oraz plik SHA256SUMS. Aby zainstalować aplikację, zezwól na przesyłanie plików, a następnie dodaj pakiet za pomocą 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
Aby zaktualizować aplikację zainstalowaną w ten sposób, dodaj nowy pakiet za pomocą plugin add --force: aktualizacja pakietu aktualizuje tylko dołączone aplikacje. Możesz następnie ponownie usunąć linię AM_PLUGINSETTINGS_ENABLEUPLOADS. Więcej informacji o innych sposobach instalacji aplikacji znajdziesz w sekcji Instalowanie innych aplikacji.
Podpisy aplikacji
Pakiety aplikacji są podpisane kluczem podpisywania aplikacji Antimatter: każdy plik .tar.gz.sig jest odłączonym podpisem GPG dla danego pakietu. Serwer sprawdza te podpisy przed zainstalowaniem dołączonej aplikacji. Aby samodzielnie zweryfikować pakiet:
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
Narzędzie gpg musi zgłosić poprawny podpis od Antimatter Plugin Signing, z odciskiem 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Ostrzeże również, że klucz nie jest certyfikowany za pomocą zaufanego podpisu: jest to normalne dla klucza, którego sam nie podpisałeś. Wersja aplikacji bez plików .sig jest niepodpisana, a jej notatki wydania to wskazują.
Instalacja z archiwum wydania
Archiwum, antimatter-<version>-linux-<arch>.tar.gz (na przykład antimatter-0.9.0-linux-amd64.tar.gz), nadaje się do dystrybucji bez pakietów .deb lub .rpm, lub do własnej struktury. Zawiera pojedynczy katalog antimatter/ z bin/antimatter, bin/amctl, config/config.json, aplikacjami webowymi (client/ i client-fusion/), dołączonymi aplikacjami (prepackaged_plugins/, patrz powyżej), szablonami e-maili oraz tłumaczeniami.
1. Przygotuj PostgreSQL
Antimatter obsługuje wyłącznie PostgreSQL w wersji 15 lub nowszej (starsze wersje uruchamiają się, ale z błędem w logu). Utwórz użytkownika i bazę danych:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Rozpakuj i skonfiguruj
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
Wskaż serwerowi bazę danych, w pliku /opt/antimatter/config/config.json (SqlSettings.DataSource) lub za pomocą zmiennych środowiskowych, oraz ustaw adres URL witryny:
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
Plik config.json z archiwum to kompletna domyślna konfiguracja: zmiany wprowadzone w Konsoli systemu są zapisywane z powrotem w tym pliku. Aby przechowywać konfigurację w bazie danych, zobacz Konfiguracja.
3. Uruchom jako usługę
Jednostka systemd, w pliku /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
Umieść zmienne AM_ w pliku /etc/antimatter.env (czytelnym tylko przez roota), a następnie:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
Serwer nasłuchuje na porcie 8065. Otwórz http://<server>:8065 lub swój domenę, gdy skonfigurujesz proxy odwrotne (zobacz Domena i HTTPS), i utwórz pierwsze konto: stanie się ono administratorem systemu.
Plik bin/amctl zarządza działającym serwerem z wiersza poleceń. Na samym serwerze działa bez logowania w trybie lokalnym: ustaw AM_SERVICESETTINGS_ENABLELOCALMODE=true, a następnie uruchom sudo -u antimatter /opt/antimatter/bin/amctl --local system status.
W przypadku GIF-ów zainstaluj usługę GIF (patrz poniżej) i ustaw AM_GIFS_SERVICE_URL oraz AM_GIFS_API_KEY zgodnie z krok 5 pakietów.
Pakiety usługi GIF i proxy push
Usługa GIF i proxy push mają własne wydania, z tymi samymi zasadami co serwer: archiwum .tar.gz, pakiet .deb i .rpm dla amd64 i arm64 oraz plik SHA256SUMS. Wersje z myślnikiem to wydania przedwstępne. Sprawdź pobrane pliki poleceniem sha256sum --check --ignore-missing SHA256SUMS, tak jak w przypadku serwera.
Usługa GIF (gifs-server)
Wydania: github.com/AntimatterChat/gifs-server/releases. Archiwum ma nazwę gifs-server-<version>-linux-<arch>.tar.gz, a pakiety nazywają się gifs-server.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Pakiet instaluje:
/usr/bin/gifs-serveroraz usługęgifs-server, która działa jako użytkownikgifs-serveri przechowuje swój katalog w/var/lib/gifs-server;- usługę
gifs-server-stickers, która przy starcie importuje lub aktualizuje pakiet naklejek w/usr/share/gifs-server/stickers, a następnie się zatrzymuje; - pliki ustawień:
/etc/gifs-server/gifs-server.env(zmienneAM_GIFS_, zachowywane przy aktualizacjach) oraz/etc/gifs-server/api-keys(jeden klucz API na wiersz, z losowo wygenerowanym kluczem przy pierwszej instalacji).
Usługa nasłuchuje na adresie 127.0.0.1:8080, więc może do niej uzyskać dostęp tylko Antimatter działający na tym samym serwerze. Jeśli Antimatter działa gdzie indziej, ustaw AM_GIFS_LISTEN=:8080 w pliku gifs-server.env i ogranicz dostęp do portu za pomocą zapory sieciowej. Plik zawiera listę pozostałych ustawień: AM_GIFS_UPLOAD_KEYS (klucze uprawnione do dodawania GIF-ów i naklejek oraz usuwania tych dodanych za ich pomocą), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY i AM_GIFS_LOG_LEVEL. Pakiet zaleca zainstalowanie ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools dla pakietu .rpm) oraz czcionki DejaVu: usługa używa ich do tworzenia formatów GIF, wideo i naklejek przy imporcie lub odbieraniu plików, a może działać bez nich.
Podobnie jak serwer, usługa jest włączana, ale nie uruchamiana przy instalacji. Uruchom ją zgodnie z instrukcją w kroku 5 sekcji o pakietach. Po aktualizacji zrestartuj ją: sudo systemctl restart gifs-server. Odinstalowanie pakietu pozostawia katalog w /var/lib/gifs-server.
Proxy push
Wydania: github.com/AntimatterChat/push-proxy/releases. Archiwum ma nazwę antimatter-push-proxy-<version>-linux-<arch>.tar.gz, a pakiety nazywają się antimatter-push-proxy. Pakiet instaluje /usr/bin/antimatter-push-proxy oraz usługę antimatter-push-proxy, która działa jako użytkownik antimatter-push-proxy i odczytuje /etc/antimatter-push-proxy/antimatter-push-proxy.json (plik jest zachowywany podczas aktualizacji). Poświadczenia Apple i Firebase umieszcza się w /etc/antimatter-push-proxy/certs: Powiadomienia Push wyjaśnia, skąd je pobrać.
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
W pliku ustawień ścieżki są względne w stosunku do /etc/antimatter-push-proxy: na przykład "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" oraz "ServiceFileLocation": "./certs/firebase-service-account.json". Następnie ustaw Serwer powiadomień Push w Antimatter na http://<proxy host>:8066. Po aktualizacji uruchom go ponownie: sudo systemctl restart antimatter-push-proxy.
Inne polecenia serwera
Oprócz uruchamiania serwera (antimatter lub antimatter server), binarny plik ma kilka poleceń konserwacyjnych. Czytają one tę samą konfigurację co serwer.
| Polecenie | Opis |
|---|---|
antimatter version | Wyświetla wersję, numer kompilacji, datę kompilacji i hash kompilacji. |
antimatter db ping | Sprawdza, czy baza danych jest dostępna. |
antimatter db init | Tworzy konfigurację w bazie danych (z ustawioną zmienną AM_CONFIG na adres URL postgres://). |
antimatter db migrate | Stosuje migracje bazy danych bez uruchamiania serwera. |
antimatter db version | Wyświetla ostatnią zastosowaną migrację bazy danych. |
antimatter import bulk, antimatter export bulk | Importuje lub eksportuje dane w formacie zbiorczym (zobacz Kopie zapasowe i aktualizacje). |