Cài đặt Antimatter
Cài đặt Antimatter bằng tệp compose có sẵn, từ gói .deb hoặc .rpm của bản phát hành, hoặc từ tệp lưu trữ của bản phát hành. Sau đó, tạo tài khoản quản trị viên đầu tiên.
Cài đặt bằng Docker Compose
Đây là cách được khuyến nghị. Một tệp compose chạy Antimatter, PostgreSQL, bộ lưu trữ tệp và dịch vụ GIF. Bạn cần một máy chủ Linux có Docker Engine và plugin Compose của nó (docker compose), 2 nhân CPU và 4 GB bộ nhớ trở lên.
1. Tải xuống tệp compose
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. Tạo tệp .env
Tệp compose đọc cài đặt từ tệp .env trong cùng thư mục. Tạo tệp này với các bí mật ngẫu nhiên:
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
Đặt SITE_URL thành địa chỉ mà người dùng sẽ nhập vào trình duyệt, ví dụ http://192.168.1.20:8065 trên mạng nội bộ hoặc https://chat.example.com với tên miền. Giữ lại tệp .env: cơ sở dữ liệu và bộ lưu trữ sử dụng các mật khẩu này từ lần khởi động đầu tiên, các khóa API của kết nối mô hình AI được mã hóa bằng AM_AI_ENCRYPTION_KEY, và bạn cần tệp này để khôi phục bản sao lưu.
3. Khởi động
docker compose up -d
docker compose ps
Lần khởi động đầu tiên mất một hoặc hai phút: PostgreSQL tạo cơ sở dữ liệu, dịch vụ bucket chạy một lần tạo thùng lưu trữ, dịch vụ gifs-stickers chạy một lần nhập bộ sticker khởi đầu, và Antimatter tạo các bảng của nó. Theo dõi quá trình này bằng docker compose logs -f antimatter.
Để sử dụng tên miền và HTTPS ngay từ đầu, xem Tên miền và HTTPS: với tệp compose, chỉ cần thêm hai dòng trong .env và hồ sơ https.
Các biến .env
| Biến | Mặc định | Chức năng |
|---|---|---|
SITE_URL | bắt buộc | Địa chỉ công khai của Antimatter (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | bắt buộc | Mật khẩu của người dùng cơ sở dữ liệu antimatter. |
S3_SECRET_KEY | bắt buộc | Khóa bí mật của bộ lưu trữ tệp. |
GIFS_API_KEY | bắt buộc | Khóa mà Antimatter sử dụng để gọi dịch vụ GIF. |
AM_AI_ENCRYPTION_KEY | trống | Khóa mã hóa các khóa API của kết nối mô hình AI (openssl rand -base64 32). Để trống: máy chủ sẽ tạo tệp khóa trong volume data. Xem Khóa mã hóa. |
GIFS_UPLOAD_KEY | trống | Cho phép người dùng thêm GIF và sticker của riêng họ từ trình chọn và xóa chúng. Để trống sẽ tắt tính năng tải lên. |
DOMAIN | trống | Tên miền của bạn, cho hồ sơ https. |
HTTP_PORT | 8065 | Cổng máy chủ của máy chủ web Antimatter. |
CALLS_PORT | 8443 | Cổng UDP và TCP của âm thanh và video cuộc gọi. |
EDGE_SUBNET | 172.29.71.0/28 | Mạng con của mạng giữa Caddy và Antimatter. Thay đổi nếu nó chồng chéo với một trong các mạng của bạn. |
TZ | UTC | Múi giờ của các container. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Ảnh Antimatter để chạy (xem bên dưới). |
Những gì được chạy
| Dịch vụ | Ảnh | Vai trò |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | Máy chủ, ứng dụng web và các ứng dụng tích hợp. Công bố HTTP_PORT và CALLS_PORT. Thư mục dữ liệu của nó là volume data. |
postgres | postgres:17-alpine | Cơ sở dữ liệu, trong volume postgres. |
files | rustfs/rustfs | Lưu trữ tương thích S3 cho các tệp đã tải lên và các ứng dụng đã cài đặt, trong volume files. |
bucket | amazon/aws-cli | Tạo bucket antimatter, sau đó thoát. |
gifs | ghcr.io/antimatterchat/gifs-server | Dịch vụ GIF và sticker, trong volume gifs. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | Nhập bộ sticker khởi động lần đầu tiên, sau đó thoát. |
https | caddy:2-alpine | Chỉ với profile https: HTTPS trên cổng 80 và 443. |
PostgreSQL, dịch vụ lưu trữ và dịch vụ GIF nằm trên một mạng nội bộ (private) không có quyền truy cập Internet, và chỉ Antimatter tham gia vào mạng này. Không có dịch vụ nào trong số đó công bố (publish) một cổng.
Container Antimatter không lưu trữ gì trên đĩa: cài đặt của nó nằm trong cơ sở dữ liệu (AM_CONFIG trỏ đến đó) và tệp cùng ứng dụng của nó nằm trong dịch vụ lưu trữ. Bạn có thể xóa và tạo lại container bất cứ lúc nào. Volume data của nó chỉ chứa tệp khóa mã hóa AI, được máy chủ tạo khi AM_AI_ENCRYPTION_KEY để trống. Mọi thứ cần sao lưu đều nằm trong các volume postgres, files, gifs và data, cùng với tệp .env của bạn.
Chọn một hình ảnh
Có hai hình ảnh Antimatter được phát hành, cả hai đều dành cho linux/amd64 và linux/arm64, và cả hai đều được xây dựng từ nhánh main của mọi kho lưu trữ:
| Ảnh | Ứng dụng có sẵn | Thẻ (Tags) |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Trợ lý, Cuộc gọi, GitHub, GitLab, Jira, Kanban, Metrics và Playbook. | latest, X.Y.Z cho các bản phát hành, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | Tương tự, kèm thêm Kênh thoại, Bình chọn, Email, Lịch, Ghi chú, Bảng trắng, GIF, Việc cần làm và Meme. Được xây dựng lại mỗi đêm. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
Tệp compose của trang web sử dụng antimatter-next, vì dịch vụ GIF và hầu hết các ứng dụng được mô tả trên trang web này chỉ có trong hình ảnh đó. Để thay đổi hình ảnh, hãy đặt ANTIMATTER_IMAGE trong .env và chạy docker compose up -d.
latest có thể thay đổi dưới chân bạn. Trong môi trường sản xuất, hãy cố định (pin) một thẻ như nightly-20261015 hoặc sha-<commit>, và chỉ thay đổi nó một cách có chủ đích khi bạn nâng cấp. Máy chủ sẽ nâng cấp cơ sở dữ liệu của nó khi khởi động, vì vậy bạn không thể quay lại một hình ảnh cũ hơn, hoặc chuyển từ antimatter-next sang antimatter, mà không khôi phục bản sao lưu được tạo trước đó. Xem Sao lưu và nâng cấp.Bên trong hình ảnh
- Máy chủ nằm trong
/antimatter, với các tệp nhị phânantimattervàamctltrong/antimatter/bin(trênPATH). - Nó chạy dưới người dùng không đặc quyền
antimatter(uid 2000) trên một nền tảng distroless tối thiểu, không có shell. - Cổng: 8065 (web và API), 8067 (metrics), 8074 (cluster), 8443 UDP và TCP (cuộc gọi).
- Chế độ cục bộ (
ServiceSettings.EnableLocalMode) đang bật, do đóamctl --localhoạt động bên trong container. Kiểm tra sức khỏe chạy lệnhamctl system status --local. - Các ứng dụng tích hợp sẵn nằm trong
/antimatter/prepackaged_plugins, được ký bằng khóa ký ứng dụng Antimatter. - Các công cụ trích xuất văn bản (
pdftotext,wvText,unrtf,tidy) được bao gồm, cho phép tìm kiếm nội dung của các tài liệu đã tải lên.
Các tệp compose khác
Kho antimatter-docker có cấu hình cho môi trường sản xuất trong deploy/compose/: nginx với chứng chỉ của bạn hoặc Let's Encrypt (certbot), PostgreSQL, dịch vụ GIF tùy chọn (profile gifs) và các volume có tên cho cấu hình, dữ liệu và nhật ký của máy chủ, được mô tả trong tệp README. Tệp này sử dụng ảnh ổn định (stable) theo mặc định và lưu tệp trên volume cục bộ thay vì lưu trữ S3. Hãy sử dụng nó nếu bạn ưu tiên nginx hơn Caddy, hoặc đã có sẵn chứng chỉ.
Tạo quản trị viên đầu tiên
Mở SITE_URL trong trình duyệt và tạo tài khoản. Tài khoản đầu tiên được tạo trên máy chủ mới sẽ trở thành quản trị viên hệ thống, sau đó quy trình thiết lập sẽ hướng dẫn bạn tạo cộng đồng đầu tiên (tên mà Antimatter dùng để chỉ nhóm hoặc không gian làm việc).
Hãy thực hiện ngay sau lần khởi động đầu tiên: cho đến khi đó, bất kỳ ai tiếp cận máy chủ trước sẽ trở thành quản trị viên của nó. Để tạo tài khoản từ dòng lệnh thay vì qua trình duyệt, trước khi máy chủ có thể được truy cập từ bên ngoài:
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
Sau đó, đăng nhập tại SITE_URL. Bắt đầu lệnh bằng một khoảng trắng để mật khẩu không bị lưu vào lịch sử shell (với HISTCONTROL=ignorespace), hoặc thay đổi mật khẩu sau khi đã đăng nhập.
Các bước tiếp theo sau khi bạn đã vào hệ thống:
- Đối với công ty hoặc tổ chức, đặt Loại cộng đồng mới thành Nơi làm việc, và thay đổi loại của cộng đồng bạn đã tạo trong cài đặt của nó: Nơi làm việc hoặc cộng đồng.
- Quyết định ai có thể tạo tài khoản: Đăng nhập và tài khoản.
- Cấu hình email để lời mời và đặt lại mật khẩu hoạt động: Email và thông báo đẩy.
- Mở cổng cho cuộc gọi trong tường lửa: Cuộc gọi và thoại.
- Kiểm tra ứng dụng nào đang bật: Ứng dụng tích hợp sẵn.
Tải xuống bản phát hành
Không sử dụng Docker, cài đặt Antimatter từ các tệp của bản phát hành trên GitHub: github.com/AntimatterChat/antimatter/releases. Mỗi bản phát hành có một số phiên bản như 0.9.0, và thẻ (tag) của nó là cùng số đó với chữ v ở đầu (v0.9.0).
0.9.0-rc.1, sẽ được đánh dấu Pre-release trên GitHub. Đây là phiên bản thử nghiệm, được phát hành trước bản chính thức.Mỗi bản phát hành bao gồm các tệp sau, dành cho máy chủ amd64 và arm64:
| Tệp | Mô tả |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Gói cài đặt cho Debian, Ubuntu và các hệ điều hành dựa trên chúng. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Gói cài đặt cho Fedora, RHEL và các hệ điều hành tương thích với RHEL. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Tệp lưu trữ (archive) của bản phát hành, dành cho bất kỳ phân phối Linux nào, được cài đặt thủ công. |
SHA256SUMS | Mã kiểm tra SHA-256 của tất cả các tệp trong bản phát hành. |
Các gói và tệp lưu trữ chứa cùng một chương trình: máy chủ (antimatter), công cụ dòng lệnh (amctl), cả hai ứng dụng web (giao diện mặc định và giao diện cổ điển), các ứng dụng tích hợp sẵn, các mẫu email và các bản dịch. Các gói bổ sung một dịch vụ systemd và một tệp cài đặt, do đó mỗi gói là một cài đặt tất cả trong một: bạn chỉ cần thêm cơ sở dữ liệu PostgreSQL. Không có tệp nhị phân tải xuống riêng biệt: các tệp nhị phân nằm trong tệp lưu trữ, tại antimatter/bin/. Chúng là tệp tĩnh (static), do đó có thể chạy trên bất kỳ phân phối Linux nào có kiến trúc tương ứng.
Trong tên gói, dấu gạch ngang của phiên bản trước khi phát hành (prerelease) được thay bằng dấu lượn sóng (~) để trình quản lý gói sắp xếp phiên bản prerelease trước bản chính thức: phiên bản 0.9.0-rc.1 tạo ra antimatter_0.9.0~rc.1-1_amd64.deb và antimatter-0.9.0~rc.1-1.x86_64.rpm. Tệp lưu trữ giữ nguyên dấu gạch ngang.
Lệnh antimatter version in ra phiên bản phát hành dưới dạng Mã phiên bản, kèm theo mã cam kết (commit) mà nó được xây dựng dưới dạng Mã bản biên dịch. Dòng Phiên bản là phiên bản của dòng Mattermost mà Antimatter dựa trên.
Kiểm tra tệp tải xuống
Tải tệp bạn cần và SHA256SUMS vào cùng một thư mục, từ trang phát hành hoặc bằng curl, sau đó kiểm tra tệp:
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
Mỗi tệp bạn đã tải xuống phải được liệt kê kèm OK. Bất kỳ kết quả nào khác có nghĩa là tệp bị hỏng hoặc không đầy đủ: hãy tải lại và không cài đặt nó. SHA256SUMS không được ký: nó phát hiện tệp tải xuống bị hỏng và không chứng minh được gì nhiều hơn so với việc tải xuống qua HTTPS từ GitHub.
Cài đặt gói .deb hoặc .rpm
Gói cài đặt Antimatter như một dịch vụ systemd, chỉ cần một cơ sở dữ liệu để khởi động. Sử dụng nó trên máy chủ 64-bit Debian, Ubuntu, Fedora hoặc tương thích với RHEL có systemd.
Những gì gói cài đặt
| Đường dẫn | Nội dung |
|---|---|
/opt/antimatter | Chương trình: bin/antimatter, bin/amctl, các ứng dụng web (client/, client-fusion/), các ứng dụng được đóng gói (prepackaged_plugins/), các mẫu, bản dịch và phông chữ. Mỗi lần nâng cấp sẽ thay thế chúng. |
/etc/antimatter/antimatter.env | Cài đặt của dịch vụ, dưới dạng các biến AM_: cơ sở dữ liệu, URL của trang web, dịch vụ GIF. Chỉ root có thể đọc. Các bản nâng cấp sẽ giữ nguyên chúng. |
/etc/antimatter/config/config.json | Tệp cấu hình, nơi máy chủ lưu các cài đặt đã thay đổi trong Bảng điều khiển Hệ thống. Tệp này được tạo từ /opt/antimatter/defaults/config.json trong lần cài đặt đầu tiên và không bao giờ bị thay thế sau đó. |
/var/lib/antimatter | Các tệp đã tải lên (data/) và các ứng dụng đã cài đặt (plugins/, client-plugins/). |
/var/log/antimatter | Các tệp nhật ký, nếu bạn bật ghi nhật ký ra tệp. Tính năng này đang tắt: nhật ký sẽ được ghi vào journal. |
/usr/lib/systemd/system/antimatter.service | Dịch vụ. |
/usr/bin/amctl | Một liên kết đến /opt/antimatter/bin/amctl. |
Các thư mục mà máy chủ ghi vào trong /opt/antimatter (config, data, plugins, client/plugins và logs) là các liên kết đến /etc/antimatter, /var/lib/antimatter và /var/log/antimatter. Do đó, một bản nâng cấp, vốn thay thế /opt/antimatter, sẽ không bao giờ chạm đến dữ liệu của bạn. Gói cũng tạo người dùng hệ thống antimatter, người chạy máy chủ và sở hữu các thư mục này.
Gói này phụ thuộc vào ca-certificates. Nó khuyến nghị PostgreSQL (postgresql trên Debian và Ubuntu, postgresql-server trên Fedora và RHEL), media-types (mailcap cho tệp .rpm) và gifs-server, dịch vụ GIF, có bản phát hành riêng (xem phía dưới). apt và dnf sẽ cài đặt các gói khuyến nghị khi tìm thấy chúng. Gói này đề xuất poppler-utils, wv, unrtf và tidy (không có wv cho tệp .rpm): chúng trích xuất văn bản từ các tài liệu đã tải lên, để tìm kiếm có thể tìm thấy các từ bên trong chúng. Hãy tự cài đặt chúng nếu bạn muốn tính năng này.
1. Cài đặt các gói
Tải xuống gói Antimatter và gói dịch vụ GIF cho kiến trúc của bạn, kiểm tra chúng như đã nêu ở trên, và cài đặt cả hai trong một lệnh, để đáp ứng khuyến nghị của gifs-server (nó không có trong kho của các bản phân phối):
# 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
Giữ nguyên ./: nó cho apt và dnf biết rằng cần cài đặt một tệp cục bộ. Để cài đặt không kèm dịch vụ GIF, hãy bỏ qua gói này. Gói này sẽ kích hoạt dịch vụ antimatter nhưng không khởi động nó, và sẽ in ra các bước tiếp theo.
2. Tạo cơ sở dữ liệu
Antimatter cần PostgreSQL 15 hoặc mới hơn, trên máy chủ này hoặc trên máy chủ khác. Kiểm tra phiên bản PostgreSQL của phân phối hệ điều hành bằng lệnh psql --version. Nếu phiên bản cũ hơn, hãy cài đặt phiên bản mới hơn từ kho lưu trữ chính thức của dự án PostgreSQL, hoặc sử dụng cơ sở dữ liệu trên một máy chủ khác. Trên Debian và Ubuntu, gói postgresql sẽ khởi động cơ sở dữ liệu. Trên Fedora và RHEL, hãy tạo và khởi động nó trước:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Sau đó, tạo một người dùng và một cơ sở dữ liệu cho 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 phải chấp nhận các kết nối bằng mật khẩu từ 127.0.0.1: các dòng host trong tệp pg_hba.conf của nó, với phương thức scram-sha-256.
3. Cấu hình cơ sở dữ liệu và URL của trang web
Chỉnh sửa tệp /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Xóa ký tự # ở đầu các dòng bạn sử dụng, và thiết lập cơ sở dữ liệu cùng địa chỉ mà người dùng sẽ truy cập:
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
Bất kỳ cài đặt nào trong cấu hình đều có thể đặt trong tệp này, dưới dạng AM_<SECTION>_<SETTING>: ví dụ, SqlSettings.DataSource sẽ là AM_SQLSETTINGS_DATASOURCE. Một cài đặt được đặt ở đây không thể được thay đổi trong Bảng điều khiển Hệ thống. Xem Cấu hình. Khởi động lại máy chủ sau mỗi lần thay đổi: sudo systemctl restart antimatter.
Dịch vụ cũng thiết lập một số giá trị mặc định, có thể bị ghi đè bởi một dòng trong antimatter.env: ghi nhật ký vào tệp bị tắt (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), và chế độ cục bộ được bật (AM_SERVICESETTINGS_ENABLELOCALMODE=true), để lệnh amctl --local hoạt động trên máy chủ.
4. Khởi động
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
Khi khởi động lần đầu, máy chủ sẽ tạo các bảng dữ liệu, sau đó lắng nghe trên cổng 8065. Mở http://<server>:8065, hoặc tên miền của bạn sau khi đã cấu hình proxy ngược (xem Tên miền và HTTPS), và tạo ngay tài khoản đầu tiên: tài khoản này sẽ trở thành quản trị viên hệ thống. Nếu muốn tạo tài khoản này từ dòng lệnh, hãy sử dụng các lệnh amctl trong mục Tạo quản trị viên đầu tiên, với sudo -u antimatter amctl --local thay cho docker compose exec antimatter amctl --local.
5. Bật GIF
Ứng dụng GIF được tích hợp sẵn và đã bật, và antimatter.env đã trỏ đến dịch vụ GIF trên cùng máy chủ (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Tuy nhiên, nó vẫn cần khóa API của dịch vụ. Gói gifs-server đã tạo một khóa khi cài đặt:
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
Đặt khóa vào antimatter.env dưới dạng AM_GIFS_API_KEY=<key> và khởi động lại Antimatter, hoặc nhập nó vào trường Khóa API trong Bảng điều khiển Hệ thống › Các plugin › GIF. Nếu dịch vụ GIF chạy trên một máy chủ khác, hãy đặt AM_GIFS_SERVICE_URL thành địa chỉ của máy chủ đó. Để cho phép người dùng thêm GIF và sticker của riêng họ, xem GIF.
Dịch vụ
- Nó chạy dưới người dùng
antimatter, trong thư mục/opt/antimatter, và đọc tệp/etc/antimatter/antimatter.env. systemd sẽ khởi động lại máy chủ mỗi khi nó thoát, và cho phép nó tối đa một giờ để khởi động, vì các bước di chuyển cơ sở dữ liệu (database migrations) của một phiên bản mới có thể mất nhiều thời gian. - Nhật ký của nó nằm trong journal:
journalctl -u antimatter. - Nó được tăng cường bảo mật:
/usrvà/etcchỉ đọc đối với máy chủ, ngoại trừ/etc/antimatter/config, và nó không thể truy cập/home,/roothoặc/run/user. Nếu bạn di chuyển bộ nhớ lưu trữ tệp (FileSettings.Directory), hãy chọn một thư mục nằm ngoài các thư mục này và thuộc sở hữu củaantimatter. - Các bản nâng cấp sẽ thay thế tệp dịch vụ. Để thay đổi tệp này, hãy sử dụng
sudo systemctl edit antimatter, điều này sẽ giữ các thay đổi của bạn trong một tệp riêng biệt.
Nâng cấp một gói
- Sao lưu dữ liệu (xem Sao lưu và nâng cấp).
- Tải xuống gói mới và tệp
SHA256SUMS, sau đó kiểm tra chúng. - Dừng máy chủ, cài đặt gói mới đè lên gói cũ, và khởi động lại:
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
Gói không tự động khởi động lại máy chủ. Sau khi nâng cấp, nó sẽ in ra Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: nếu bạn chưa dừng máy chủ trước, hãy khởi động lại ngay lập tức. Quá trình nâng cấp sẽ thay thế /opt/antimatter và tệp dịch vụ, nhưng giữ lại antimatter.env, config.json, /var/lib/antimatter và các tệp nhật ký. Khi khởi động, máy chủ sẽ nâng cấp cơ sở dữ liệu và cài đặt các phiên bản mới hơn của các ứng dụng được tích hợp sẵn.
Nếu một phiên bản mới thay đổi tệp antimatter.env mặc định, apt sẽ hỏi bạn có muốn giữ phiên bản của mình hay không: hãy giữ lại. dnf sẽ giữ phiên bản của bạn và lưu phiên bản mới dưới tên /etc/antimatter/antimatter.env.rpmnew. Quá trình nâng cấp chỉ diễn ra theo hướng tiến lên: không cài đặt phiên bản cũ đè lên phiên bản mới.
Gỡ bỏ một gói
sudo apt remove antimatter hoặc sudo dnf remove antimatter sẽ dừng và vô hiệu hóa dịch vụ, đồng thời gỡ bỏ chương trình. Dữ liệu (/var/lib/antimatter), cấu hình (/etc/antimatter), cơ sở dữ liệu và người dùng antimatter sẽ được giữ lại: hãy tự xóa chúng nếu muốn gỡ bỏ Antimatter hoàn toàn.
Các ứng dụng trong gói và tệp lưu trữ
Các gói và tệp lưu trữ bao gồm bản phát hành mới nhất đã được ký của các ứng dụng này, nằm trong prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels và Whiteboard. Một ứng dụng chưa có bản phát hành nào tại thời điểm xây dựng bản phát hành máy chủ sẽ không được bao gồm: lệnh ls /opt/antimatter/prepackaged_plugins sẽ cho bạn thấy bản phát hành của bạn bao gồm những gì. Memes và Todo được bao gồm nhưng chưa được bật: Ứng dụng tích hợp sẵn giải thích cách cài đặt và bật chúng.
Các ứng dụng khác trong các ảnh Docker không có trong các gói hoặc tệp lưu trữ: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira và Metrics. Hãy cài đặt từng ứng dụng từ các bản phát hành riêng của chúng:
| Ứng dụng | Các bản phát hành | ID ứng dụng |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Playbook | antimatter-plugin-playbooks | playbooks |
| Thư | antimatter-plugin-mail | com.antimatterchat.mail |
| Lịch | 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 |
| Chỉ số đo lường | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Mỗi bản phát hành ứng dụng đều có gói ứng dụng (tệp .tar.gz), chữ ký của nó (cùng tên nhưng thêm .sig) và tệp SHA256SUMS. Để cài đặt một ứng dụng, hãy cho phép tải lên, sau đó thêm gói bằng 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
Để nâng cấp một ứng dụng đã được cài đặt theo cách này, hãy thêm gói mới bằng plugin add --force: nâng cấp gói chỉ nâng cấp các ứng dụng được đóng gói sẵn. Sau đó, bạn có thể xóa dòng AM_PLUGINSETTINGS_ENABLEUPLOADS. Xem Cài đặt các ứng dụng khác để biết các cách cài đặt ứng dụng khác.
Chữ ký ứng dụng
Các gói ứng dụng được ký bằng khóa ký ứng dụng của Antimatter: mỗi tệp .tar.gz.sig là một chữ ký GPG tách rời của gói tương ứng. Máy chủ sẽ kiểm tra các chữ ký này trước khi cài đặt một ứng dụng đóng gói sẵn. Để tự kiểm tra một gói:
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 phải báo cáo một chữ ký hợp lệ từ Antimatter Plugin Signing, với dấu vân tay 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Nó cũng cảnh báo rằng khóa không được chứng nhận bằng chữ ký đáng tin cậy: điều này là bình thường đối với một khóa mà bạn chưa tự ký. Một bản phát hành ứng dụng không có tệp .sig là không được ký, và ghi chú phát hành của nó sẽ nêu rõ điều đó.
Cài đặt từ tệp lưu trữ bản phát hành
Tệp lưu trữ, antimatter-<version>-linux-<arch>.tar.gz (ví dụ antimatter-0.9.0-linux-amd64.tar.gz), phù hợp với các phân phối không có gói .deb hoặc .rpm, hoặc một cấu hình tùy chỉnh của riêng bạn. Nó chứa một thư mục antimatter/ duy nhất với bin/antimatter, bin/amctl, config/config.json, các ứng dụng web (client/ và client-fusion/), các ứng dụng đóng gói sẵn (prepackaged_plugins/, xem phía trên), các mẫu email và các bản dịch.
1. Chuẩn bị PostgreSQL
Antimatter chỉ hỗ trợ PostgreSQL, phiên bản 15 trở lên (các phiên bản cũ hơn sẽ khởi động nhưng ghi lỗi vào nhật ký). Hãy tạo một người dùng và một cơ sở dữ liệu:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Giải nén và cấu hình
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
Chỉ định máy chủ đến cơ sở dữ liệu, thông qua /opt/antimatter/config/config.json (SqlSettings.DataSource) hoặc bằng các biến môi trường, và đặt URL của trang web:
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
Tệp config.json trong tệp lưu trữ là một cấu hình mặc định hoàn chỉnh: các cài đặt bạn thay đổi trong Bảng điều khiển Hệ thống sẽ được lưu lại vào tệp này. Nếu muốn lưu cấu hình trong cơ sở dữ liệu thay vì tệp, hãy xem Cấu hình.
3. Chạy dưới dạng dịch vụ
Một đơn vị systemd, đặt tại /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
Đặt các biến AM_ của bạn vào /etc/antimatter.env (chỉ root có quyền đọc), sau đó:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
Máy chủ sẽ lắng nghe trên cổng 8065. Mở http://<server>:8065, hoặc tên miền của bạn sau khi đã cấu hình bộ định tuyến ngược (xem Tên miền và HTTPS), và tạo tài khoản đầu tiên: tài khoản này sẽ trở thành quản trị viên hệ thống.
bin/amctl cho phép quản lý máy chủ đang chạy từ dòng lệnh. Trên chính máy chủ, nó hoạt động mà không cần đăng nhập thông qua chế độ cục bộ: đặt AM_SERVICESETTINGS_ENABLELOCALMODE=true, sau đó chạy sudo -u antimatter /opt/antimatter/bin/amctl --local system status.
Đối với GIF, hãy cài đặt dịch vụ GIF (xem bên dưới) và đặt AM_GIFS_SERVICE_URL và AM_GIFS_API_KEY như trong bước 5 của các gói.
Các gói dịch vụ GIF và proxy đẩy
Dịch vụ GIF và proxy push có các bản phát hành riêng, tuân theo cùng các quy tắc như máy chủ: một tệp lưu trữ .tar.gz, một gói .deb và một gói .rpm cho amd64 và arm64, cùng một tệp SHA256SUMS. Các phiên bản có dấu gạch ngang là bản phát hành trước. Kiểm tra các tệp tải xuống bằng lệnh sha256sum --check --ignore-missing SHA256SUMS, giống như với máy chủ.
Dịch vụ GIF (gifs-server)
Các bản phát hành: github.com/AntimatterChat/gifs-server/releases. Tệp lưu trữ có tên gifs-server-<version>-linux-<arch>.tar.gz; các gói được đặt tên là gifs-server.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Gói cài đặt:
/usr/bin/gifs-server, và dịch vụgifs-server, chạy dưới người dùnggifs-servervà lưu danh mục của nó trong/var/lib/gifs-server;- dịch vụ
gifs-server-stickers, nhập hoặc cập nhật bộ sticker trong/usr/share/gifs-server/stickerskhi bạn khởi động nó, sau đó dừng lại; - cài đặt của nó,
/etc/gifs-server/gifs-server.env(các biếnAM_GIFS_, được giữ lại khi nâng cấp) và/etc/gifs-server/api-keys, mỗi dòng một khóa API, với một khóa ngẫu nhiên được tạo ra trong lần cài đặt đầu tiên.
Nó lắng nghe trên 127.0.0.1:8080, do đó chỉ Antimatter trên cùng máy chủ mới có thể truy cập. Nếu Antimatter chạy ở nơi khác, hãy đặt AM_GIFS_LISTEN=:8080 trong gifs-server.env và hạn chế truy cập vào cổng bằng tường lửa của bạn. Tệp này liệt kê các cài đặt khác: AM_GIFS_UPLOAD_KEYS (các khóa được phép thêm GIF và sticker, và xóa những thứ đã được thêm bằng chúng), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY và AM_GIFS_LOG_LEVEL. Gói khuyến nghị ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools cho .rpm) và một phông DejaVu: dịch vụ sử dụng chúng để tạo các định dạng GIF, video và sticker khi nhập hoặc nhận tệp, và vẫn chạy được mà không có chúng.
Giống như máy chủ, dịch vụ được bật nhưng không khởi động khi cài đặt. Khởi động nó như đã mô tả trong bước 5 của các gói. Sau khi nâng cấp, hãy khởi động lại: sudo systemctl restart gifs-server. Gỡ bỏ gói sẽ giữ lại danh mục trong /var/lib/gifs-server.
Proxy push
Phiên bản phát hành: github.com/AntimatterChat/push-proxy/releases. Tệp lưu trữ có tên antimatter-push-proxy-<version>-linux-<arch>.tar.gz; các gói được đặt tên là antimatter-push-proxy. Gói này cài đặt /usr/bin/antimatter-push-proxy và dịch vụ antimatter-push-proxy, chạy dưới người dùng antimatter-push-proxy và đọc tệp /etc/antimatter-push-proxy/antimatter-push-proxy.json (được giữ lại khi nâng cấp). Thông tin xác thực của Apple và Firebase được đặt trong /etc/antimatter-push-proxy/certs: Thông báo đẩy giải thích nguồn gốc của chúng.
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
Trong tệp cài đặt, các đường dẫn là tương đối so với /etc/antimatter-push-proxy: ví dụ "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" và "ServiceFileLocation": "./certs/firebase-service-account.json". Sau đó, đặt Máy chủ thông báo đẩy trong Antimatter thành http://<proxy host>:8066. Sau khi nâng cấp, hãy khởi động lại: sudo systemctl restart antimatter-push-proxy.
Các lệnh máy chủ khác
Ngoài lệnh chạy máy chủ (antimatter, hoặc antimatter server), tệp nhị phân còn có một số lệnh bảo trì. Chúng đọc cùng một cấu hình với máy chủ.
| Lệnh | Chức năng |
|---|---|
antimatter version | In ra phiên bản, số hiệu bản dựng, ngày dựng và mã băm của bản dựng. |
antimatter db ping | Kiểm tra xem có thể kết nối đến cơ sở dữ liệu hay không. |
antimatter db init | Tạo cấu hình trong cơ sở dữ liệu (với AM_CONFIG được đặt thành một URL postgres://). |
antimatter db migrate | Áp dụng các di chuyển cơ sở dữ liệu mà không khởi động máy chủ. |
antimatter db version | In ra di chuyển cuối cùng đã được áp dụng vào cơ sở dữ liệu. |
antimatter import bulk, antimatter export bulk | Nhập hoặc xuất dữ liệu ở định dạng hàng loạt (xem Sao lưu và nâng cấp). |