Инсталиране на Antimatter
Инсталирайте Antimatter с готовия compose файл, от .deb или .rpm пакет на версия или от архив на версия. После създайте първата администраторска сметка.
Инсталиране с Docker Compose
Това е препоръчителният начин. Един compose файл пуска Antimatter, PostgreSQL, хранилището за файлове и GIF услугата. Нужен ви е Linux сървър с Docker Engine и неговия Compose плъгин (docker compose), 2 ядра на процесора и 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 за връзките с AI модели се шифроват с 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 за връзките с AI модели (openssl rand -base64 32). Празно: сървърът създава файл с ключ в обема data. Вижте Ключ за шифроване. |
GIFS_UPLOAD_KEY | празно | Позволява на хората да добавят свои GIF-ове и стикери от изборника и да ги изтриват. Празната стойност изключва качването. |
DOMAIN | празно | Вашето име на домейн, за https профила. |
HTTP_PORT | 8065 | Порт на хоста за уеб сървъра на 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 | Сървърът, уеб приложението и вградените приложения. Публикува HTTP_PORT и CALLS_PORT. Неговата директория за данни е обемът data. |
postgres | postgres:17-alpine | Базата данни, в postgres обема. |
files | rustfs/rustfs | S3-съвместимо хранилище за качени файлове и инсталирани приложения, в обема files. |
bucket | amazon/aws-cli | Създава коша antimatter, след което излиза. |
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) без достъп до интернет, към която се присъединява само Antimatter. Нито едно от тях не публикува порт.
Контейнерът на Antimatter не запазва нищо на диска: настройките му са в базата данни (AM_CONFIG сочи към нея), а файловете и приложенията му са в услугата за хранилище. Можете да премахнете и да създадете контейнера отново по всяко време. Неговият обем data съдържа само файла с ключа за шифроване на AI, който сървърът създава, когато 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 | Същото, плюс Гласови канали, Анкети, Поща, Календар, Бележки, Бяла дъска, GIF, Задачи и Мемове. Изгражда се всяка нощ. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Нито един от образите на изображенията вече не включва Kanban или Наръчници: инсталирайте ги от собствените им версии в 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 (уеб и API), 8067 (метрики), 8074 (кластер), 8443 UDP и TCP (обаждания).
- Локалният режим (
ServiceSettings.EnableLocalMode) е включен, така чеamctl --localработи вътре в контейнера. Проверката за здравословно състояние изпълняваamctl system status --local. - Вградените приложения са в
/antimatter/prepackaged_pluginsи са подписани с ключа за подписване на приложения на Antimatter. - Инструментите за извличане на текст (
pdftotext,wvText,unrtf,tidy) са включени, така че съдържанието на качените документи може да се търси.
Други compose файлове
Репозиторията antimatter-docker съдържа продуктивна конфигурация в deploy/compose/: nginx със собствени сертификати или Let's Encrypt (certbot), PostgreSQL, опционалната GIF услуга (профил gifs) и именовани обемове за конфигурацията, данните и логовете на сървъра, описани в README. По подразбиране използва стабилния образ и съхранява файловете на локален обем вместо S3 хранилище. Използвайте го, ако предпочитате nginx пред Caddy или вече имате сертификати.
Създаване на първия администратор
Отворете SITE_URL в браузъра си и създайте акаунт. Първият акаунт, създаден на нов сървър, става системен администратор, а след това настройката ви води през създаването на първата ви общност (названието на Antimatter за екип или работно пространство).
Създайте го веднага след първия старт: до тогава всеки, който достигне до сървъра първи, става негов администратор. За да създадете акаунта от командния ред, преди сървърът да бъде достъпен от външната мрежа:
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), или променете паролата след като влезете.
Следващи стъпки, след като сте вътре:
- За компания или организация задайте Вид на новите общности на Работно пространство и променете вида на вече създадена общност в нейните настройки: Гилдия или работно пространство.
- Определете кой може да създава акаунти: Вход и акаунти.
- Конфигурирайте имейла, така че покани и нулирането на пароли да работят: Имейл и push известия.
- Отворете порта за обаждания във вашия файрвол: Обаждания и глас.
- Проверете кои приложения са включени: Вградени приложения.
Изтеглете версия
Без 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 | Архивът на версията, за всяка Linux дистрибуция, настроен ръчно. |
SHA256SUMS | SHA-256 контролната сума на всеки файл от версията. |
Пакетите и архивът съдържат еднакъв софтуер: сървъра (antimatter), командния инструмент (amctl), и двете уеб приложения (станартния и класическия интерфейс), вградените приложения, имейл шаблоните и преводите. Пакетите добавят systemd услуга и файл с настройки, така че всеки е цялостна инсталация: добавяте само PostgreSQL база данни. Няма отделни изтегляния на бинарни файлове: те са в архива, в antimatter/bin/. Те са статични, така че работят на всяка Linux дистрибуция от съответната архитектура.
В имената на пакетите тирето на предварителната версия се превръща в тилда, така че пакетният мениджър подрежда предварителната версия преди окончателната: версия 0.9.0-rc.1 дава antimatter_0.9.0~rc.1-1_amd64.deb и antimatter-0.9.0~rc.1-1.x86_64.rpm. Архивът запазва тирето.
antimatter version изписва версията на изданието като Номер на компилация, а хеша на commit-а, от който е компилирана, като Хеш на компилация. Редът Версия показва версията на линията на 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-битов сървър, съвместим с 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 | Логови файлове, ако включите записване в файл. То е изключено: логовете отиват в журнала. |
/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, или вашия домейн, след като е настроен обратен прокси (вижте Домейн и 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 рестартира сървъра всеки път, когато той спре, и му дава до един час да се стартира, тъй като миграциите на базата данни при нова версия могат да отнемат много време. - Логовете ѝ са в журнала:
journalctl -u antimatter. - Службата е защитена:
/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, Notes, Polls, Todo, Voice Channels и Whiteboard. Приложения, които нямат версия към момента на изграждане на сървъра, не са включени: ls /opt/antimatter/prepackaged_plugins показва какво включва вашата версия. Memes и Todo са включени, но не са активирани: Вградени приложения обяснява как да ги инсталирате и активирате.
Kanban и Наръчници вече не са включени в сървъра или в някой от Docker образите: сървър, който вече има инсталиран някой от тях, запазва тази инсталация при надграждане, а всеки друг може да ги инсталира от собствените им версии, подобно на приложенията по-долу. Другите приложения от Docker образите също не са включени в пакетите или архива: Mail, Calendar, GitHub, GitLab, Jira и Metrics. Инсталирайте всяко едно, включително Kanban и Наръчници, от собствените им версии:
| Приложение | Версии | Идентификатор на приложението |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbooks | antimatter-plugin-playbooks | playbooks |
| antimatter-plugin-mail | com.antimatterchat.mail | |
| Calendar | 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 |
Всяка версия на приложение съдържа неговия пакет (файл .tar.gz), неговия подпис (същото име с добавен .sig) и файл SHA256SUMS. За да инсталирате приложение, разрешете качвания, след което добавете пакета с 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
За да обновите приложение, инсталирано по този начин, добавете новия пакет с plugin add --force: обновяванията на пакетите обновяват само вградените приложения. Можете да премахнете реда AM_PLUGINSETTINGS_ENABLEUPLOADS отново по-късно. Вижте Инсталиране на други приложения за другите начини за инсталиране на приложения.
Подписи на приложения
Пакетите на приложенията са подписани с ключа за подписване на приложения на Antimatter: всеки файл .tar.gz.sig е отделен GPG подпис на съответния пакет. Сървърът проверява тези подписи, преди да инсталира вградено приложение. За да проверите пакет сам:
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, уеб приложенията (client/ и client-fusion/), вградените приложения (prepackaged_plugins/, вижте по-горе), шаблоните за имейл и преводите.
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, или вашия домейн, след като е настроен обратен прокси (вижте Домейн и HTTPS), и създайте първата сметка: тя става системен администратор.
bin/amctl управлява активния сървър от командния ред. На самия сървър работи без вход чрез локален режим: задайте AM_SERVICESETTINGS_ENABLELOCALMODE=true, след което изпълнете sudo -u antimatter /opt/antimatter/bin/amctl --local system status.
За GIF файлове, инсталирайте GIF услугата (вижте по-долу) и задайте AM_GIFS_SERVICE_URL и AM_GIFS_API_KEY, както в стъпка 5 от пакетите.
Пакетите за GIF услугата и push прокси
GIF услугата и push прокси имат собствени издания, с едни и същи правила като за сървъра: .tar.gz архив, .deb и .rpm пакет за amd64 и arm64, и SHA256SUMS файл. Версиите с тире са предварителни издания. Проверете записванията с sha256sum --check --ignore-missing SHA256SUMS, както за сървъра.
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 на същия сървър може да се свърже с него. Ако 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, видео и стикери при импортиране или получаване на файлове, и работи без тях.
Като сървъра, услугата се активира, но не се стартира при инсталация. Стартирайте я, както е показано в стъпка 5 от пакетите. След ъпгрейд, рестартирайте я: sudo systemctl restart gifs-server. Премахването на пакета запазва каталога в /var/lib/gifs-server.
Push прокси
Релизи: 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: Изскачащи известия обяснява откъде идват.
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". После задайте Сървър за изскачащи известия в Antimatter на http://<proxy host>:8066. След ъпгрейд, рестартирайте го: sudo systemctl restart antimatter-push-proxy.
Други команди на сървъра
Освен за стартиране на сървъра (antimatter или antimatter server), бинарният файл има няколко поддръжки команди. Те четат същата конфигурация като сървърът.
| Команда | Какво прави |
|---|---|
antimatter version | Изпечатва версията, номера на изданието, датата на изданието и хаша на изданието. |
antimatter db ping | Проверява дали базата данни е достъпна. |
antimatter db init | Създава конфигурацията в базата данни (с AM_CONFIG, зададен на postgres:// URL). |
antimatter db migrate | Прилага миграциите на базата данни без да стартира сървъра. |
antimatter db version | Изпечатва последната приложена миграция на базата данни. |
antimatter import bulk, antimatter export bulk | Импорт или експорт на данни в пакетен формат (вижте Резервни копия и надграждания). |