Menginstal Antimatter
Instal Antimatter dengan file compose yang sudah tersedia, dari paket .deb atau .rpm dari rilis, atau dari arsip rilis. Kemudian buat akun administrator pertama.
Instal dengan Docker Compose
Ini adalah cara yang direkomendasikan. Satu file compose menjalankan Antimatter, PostgreSQL, penyimpanan file, dan layanan GIF. Anda membutuhkan server Linux dengan Docker Engine dan plugin Compose-nya (docker compose), 2 inti CPU, dan 4 GB memori atau lebih.
1. Unduh file compose
mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml
2. Buat file .env
File compose membaca pengaturannya dari file .env di direktori yang sama. Buat file tersebut dengan rahasia acak:
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
Atur SITE_URL ke alamat yang akan diketik pengguna di browser, misalnya http://192.168.1.20:8065 untuk jaringan lokal atau https://chat.example.com dengan domain. Simpan file .env: database dan penyimpanan menggunakan kata sandi dari file ini sejak awal, kunci API untuk koneksi model AI dienkripsi dengan AM_AI_ENCRYPTION_KEY, dan Anda membutuhkan file yang sama untuk memulihkan cadangan.
3. Jalankan
docker compose up -d
docker compose ps
Peluncuran pertama memakan waktu satu atau dua menit: PostgreSQL membuat database, layanan sekali jalan bucket membuat bucket penyimpanan, layanan sekali jalan gifs-stickers mengimpor paket stiker awal, dan Antimatter membuat tabelnya. Pantau dengan docker compose logs -f antimatter.
Untuk menggunakan nama domain dan HTTPS sejak awal, lihat Domain dan HTTPS: dengan file compose, ini hanya dua baris lagi di .env dan profil https.
Variabel .env
| Variabel | Bawaan | Fungsinya |
|---|---|---|
SITE_URL | wajib | Alamat publik Antimatter (ServiceSettings.SiteURL). |
POSTGRES_PASSWORD | wajib | Kata sandi pengguna database antimatter. |
S3_SECRET_KEY | wajib | Kunci rahasia penyimpanan file. |
GIFS_API_KEY | wajib | Kunci yang digunakan Antimatter untuk memanggil layanan GIF. |
AM_AI_ENCRYPTION_KEY | kosong | Kunci yang mengenkripsi kunci API untuk koneksi model AI (openssl rand -base64 32). Kosong: server membuat file kunci di volume data. Lihat Kunci enkripsi. |
GIFS_UPLOAD_KEY | kosong | Memungkinkan pengguna menambahkan GIF dan stiker mereka sendiri dari pemilih, serta menghapusnya. Kosong menonaktifkan unggahan. |
DOMAIN | kosong | Nama domain Anda, untuk profil https. |
HTTP_PORT | 8065 | Port host server web Antimatter. |
CALLS_PORT | 8443 | Port UDP dan TCP untuk audio dan video panggilan. |
EDGE_SUBNET | 172.29.71.0/28 | Subnet jaringan antara Caddy dan Antimatter. Ubah jika tumpang tindih dengan salah satu jaringan Anda. |
TZ | UTC | Zona waktu kontainer. |
ANTIMATTER_IMAGE | ghcr.io/antimatterchat/antimatter-next:latest | Gambar Antimatter yang akan dijalankan (lihat di bawah). |
Yang berjalan
| Layanan | Gambar | Peran |
|---|---|---|
antimatter | ghcr.io/antimatterchat/antimatter-next | Server, aplikasi web, dan aplikasi bawaan. Mempublikasikan HTTP_PORT dan CALLS_PORT. Direktori datanya adalah volume data. |
postgres | postgres:17-alpine | Database, di volume postgres. |
files | rustfs/rustfs | Penyimpanan kompatibel S3 untuk file yang diunggah dan aplikasi yang terpasang, di volume files. |
bucket | amazon/aws-cli | Membuat bucket antimatter, lalu keluar. |
gifs | ghcr.io/antimatterchat/gifs-server | Layanan GIF dan stiker, di volume gifs. |
gifs-stickers | ghcr.io/antimatterchat/gifs-server | Mengimpor paket stiker awal saat pertama kali, lalu keluar. |
https | caddy:2-alpine | Hanya dengan profil https: HTTPS pada port 80 dan 443. |
PostgreSQL, penyimpanan, dan layanan GIF berada di jaringan internal (private) tanpa akses Internet, yang hanya diikuti oleh Antimatter. Tidak ada satu pun yang menerbitkan port.
Kontainer Antimatter tidak menyimpan apa pun di disk: pengaturannya ada di database (AM_CONFIG menunjuk ke sana) dan file serta aplikasinya ada di layanan penyimpanan. Anda dapat menghapus dan membuat ulang kontainer kapan saja. Volume data hanya menyimpan file kunci enkripsi AI, yang dibuat server ketika AM_AI_ENCRYPTION_KEY kosong. Semua yang perlu dicadangkan ada di volume postgres, files, gifs, dan data, serta file .env Anda.
Pilih gambar
Dua gambar Antimatter dipublikasikan, keduanya untuk linux/amd64 dan linux/arm64, dan keduanya dibangun dari cabang main setiap repositori:
| Gambar | Aplikasi bawaan | Tag |
|---|---|---|
ghcr.io/antimatterchat/antimatter | Agen, Panggilan, GitHub, GitLab, Jira, Kanban, Metrik, dan Buku Taktik. | latest, X.Y.Z untuk rilis, sha-<commit> |
ghcr.io/antimatterchat/antimatter-next | Sama seperti di atas, ditambah Kanal Suara, Jajak Pendapat, Email, Kalender, Catatan, Papan Putih, GIF, To-do, dan Meme. Dibangun ulang setiap malam. | latest, nightly, nightly-<YYYYMMDD>, sha-<commit> |
File compose situs menggunakan antimatter-next, karena layanan GIF dan sebagian besar aplikasi yang dijelaskan di situs ini hanya ada di gambar tersebut. Untuk mengubah gambar, atur ANTIMATTER_IMAGE di .env dan jalankan docker compose up -d.
latest berubah di bawah Anda. Di produksi, kunci tag seperti nightly-20261015 atau sha-<commit>, dan ubah dengan sengaja saat Anda melakukan peningkatan. Server meningkatkan database-nya saat dimulai, sehingga Anda tidak bisa kembali ke gambar yang lebih lama, atau dari antimatter-next ke antimatter, tanpa memulihkan cadangan yang diambil sebelumnya. Lihat Cadangan dan peningkatan.Di dalam gambar
- Server berada di
/antimatter, dengan binerantimatterdanamctldi/antimatter/bin(diPATH). - Berjalan sebagai pengguna non-privileg
antimatter(uid 2000) di atas basis distroless minimal, tanpa shell. - Port: 8065 (web dan API), 8067 (metrik), 8074 (klaster), 8443 UDP dan TCP (panggilan).
- Mode lokal (
ServiceSettings.EnableLocalMode) aktif, sehinggaamctl --localdapat digunakan di dalam kontainer. Pemeriksaan kesehatan menjalankanamctl system status --local. - Aplikasi bawaan berada di
/antimatter/prepackaged_plugins, ditandatangani dengan kunci penandatanganan aplikasi Antimatter. - Alat ekstraksi teks (
pdftotext,wvText,unrtf,tidy) disertakan, sehingga konten dokumen yang diunggah dapat dicari.
Berkas compose lainnya
Repositori antimatter-docker memiliki konfigurasi produksi di deploy/compose/: nginx dengan sertifikat Anda sendiri atau Let's Encrypt (certbot), PostgreSQL, layanan GIF opsional (profil gifs), dan volume bernama untuk konfigurasi, data, dan log server, yang didokumentasikan dalam README-nya. Secara default menggunakan image stabil dan menyimpan file di volume lokal alih-alih penyimpanan S3. Gunakan ini jika Anda lebih memilih nginx daripada Caddy, atau jika Anda sudah memiliki sertifikat.
Buat administrator pertama
Buka SITE_URL di browser Anda dan buat akun. Akun pertama yang dibuat di server baru akan menjadi administrator sistem, dan proses pengaturan kemudian akan memandu Anda untuk membuat komunitas pertama (istilah Antimatter untuk tim atau ruang kerja).
Lakukan ini segera setelah server pertama kali dijalankan: sampai saat itu, siapa pun yang mengakses server terlebih dahulu akan menjadi administratornya. Untuk membuat akun dari baris perintah alih-alih melalui antarmuka web, lakukan ini sebelum server dapat diakses dari luar:
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
Lalu masuk di SITE_URL. Mulai perintah dengan spasi agar kata sandi tidak tersimpan di riwayat shell Anda (dengan HISTCONTROL=ignorespace), atau ubah kata sandi setelah berhasil masuk.
Langkah selanjutnya setelah Anda masuk:
- Untuk perusahaan atau organisasi, atur Jenis komunitas baru ke Tempat kerja, dan ubah jenis komunitas yang sudah Anda buat di pengaturannya: Tempat kerja atau komunitas.
- Tentukan siapa yang dapat membuat akun: Masuk dan akun.
- Konfigurasikan email agar undangan dan pengatur ulang kata sandi berfungsi: Email dan notifikasi push.
- Buka port panggilan di firewall Anda: Panggilan dan suara.
- Periksa aplikasi mana yang aktif: Aplikasi bawaan.
Unduh rilis
Tanpa Docker, instal Antimatter dari file rilis di GitHub: github.com/AntimatterChat/antimatter/releases. Setiap rilis memiliki nomor versi seperti 0.9.0, dan tag-nya adalah nomor yang sama dengan awalan v (v0.9.0).
0.9.0-rc.1, ditandai Pre-release di GitHub. Ini adalah versi uji, yang diterbitkan sebelum rilis final.Setiap rilis memiliki file-file berikut, untuk server amd64 dan arm64:
| File | Keterangan |
|---|---|
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.deb | Paket untuk Debian, Ubuntu, dan distribusi yang berbasis di atasnya. |
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpm | Paket untuk Fedora, RHEL, dan distribusi yang kompatibel dengan RHEL. |
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gz | Arsip rilis, untuk distribusi Linux apa pun, yang diinstal secara manual. |
SHA256SUMS | Checksum SHA-256 untuk setiap file dalam rilis. |
Paket dan arsip berisi program yang sama: server (antimatter), alat baris perintah (amctl), kedua aplikasi web (antarmuka default dan klasik), aplikasi bawaan, templat email, dan terjemahan. Paket menambahkan layanan systemd dan file pengaturan, sehingga masing-masing merupakan instalasi all-in-one: Anda hanya perlu menambahkan database PostgreSQL. Tidak ada unduhan biner terpisah: biner-biner tersebut ada di dalam arsip, di antimatter/bin/. Karena bersifat statis, biner-biner ini dapat berjalan di distribusi Linux apa pun dengan arsitektur yang sesuai.
Dalam nama paket, tanda hubung pada versi prarilis diganti dengan tilde, agar manajer paket mengurutkan versi prarilis sebelum rilis final: versi 0.9.0-rc.1 menghasilkan antimatter_0.9.0~rc.1-1_amd64.deb dan antimatter-0.9.0~rc.1-1.x86_64.rpm. Arsip tetap menggunakan tanda hubung.
antimatter version menampilkan versi rilis sebagai Nomor Build, dengan commit tempat build tersebut dibuat sebagai Hash Build. Baris Versi menunjukkan versi lini Mattermost yang menjadi dasar Antimatter.
Periksa Unduhan
Unduh file yang Anda butuhkan dan SHA256SUMS ke direktori yang sama, dari halaman rilis atau dengan curl, lalu periksa file tersebut:
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
Setiap file yang Anda unduh harus tercantum dengan status OK. Hasil lainnya berarti file tersebut rusak atau tidak lengkap: unduh ulang dan jangan instal. SHA256SUMS tidak ditandatangani: ini mendeteksi unduhan yang rusak, dan tidak membuktikan lebih dari apa yang dibuktikan oleh unduhan HTTPS dari GitHub.
Instal Paket .deb atau .rpm
Paket menginstal Antimatter sebagai layanan systemd, yang hanya membutuhkan database untuk mulai berjalan. Gunakan ini di server 64-bit Debian, Ubuntu, Fedora, atau yang kompatibel dengan RHEL yang menggunakan systemd.
Yang Diinstal oleh Paket
| Jalur | Isi |
|---|---|
/opt/antimatter | Program: bin/antimatter, bin/amctl, aplikasi web (client/, client-fusion/), aplikasi bawaan (prepackaged_plugins/), templat, terjemahan, dan font. Setiap pembaruan akan menggantinya. |
/etc/antimatter/antimatter.env | Pengaturan layanan, sebagai variabel AM_: database, URL situs, dan layanan GIF. Hanya dapat dibaca oleh root. Pembaruan akan menyimpannya. |
/etc/antimatter/config/config.json | Berkas konfigurasi, tempat server menyimpan pengaturan yang diubah di Konsol Sistem. Berkas ini dibuat dari /opt/antimatter/defaults/config.json saat instalasi pertama, dan tidak pernah diganti setelah itu. |
/var/lib/antimatter | Berkas yang diunggah (data/) dan aplikasi yang terpasang (plugins/, client-plugins/). |
/var/log/antimatter | Berkas log, jika Anda mengaktifkan pencatatan ke berkas. Pengaturannya nonaktif: log dikirim ke jurnal. |
/usr/lib/systemd/system/antimatter.service | Layanan. |
/usr/bin/amctl | Tautan ke /opt/antimatter/bin/amctl. |
Direktori yang ditulis oleh server di /opt/antimatter (config, data, plugins, client/plugins, dan logs) adalah tautan ke /etc/antimatter, /var/lib/antimatter, dan /var/log/antimatter. Jadi, pembaruan yang mengganti /opt/antimatter tidak akan pernah menyentuh data Anda. Paket ini juga membuat pengguna sistem antimatter, yang menjalankan server dan memiliki direktori-direktori tersebut.
Paket ini bergantung pada ca-certificates. Paket ini merekomendasikan PostgreSQL (postgresql di Debian dan Ubuntu, postgresql-server di Fedora dan RHEL), media-types (mailcap untuk .rpm), dan gifs-server, layanan GIF yang memiliki rilis tersendiri (lihat di bawah). apt dan dnf akan menginstal paket yang direkomendasikan jika ketemu. Paket ini juga menyarankan poppler-utils, wv, unrtf, dan tidy (tanpa wv untuk .rpm): alat-alat ini mengekstrak teks dari dokumen yang diunggah, sehingga pencarian dapat menemukan kata-kata di dalamnya. Instal sendiri jika Anda menginginkannya.
1. Instal paket
Unduh paket Antimatter dan paket layanan GIF untuk arsitektur Anda, periksa seperti yang ditunjukkan di atas, dan instal keduanya dalam satu perintah, sehingga rekomendasi gifs-server terpenuhi (paket ini tidak ada di repositori distribusi):
# 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
Pertahankan ./: ini memberi tahu apt dan dnf untuk menginstal file lokal. Untuk menginstal tanpa layanan GIF, tinggalkan paketnya. Paket ini mengaktifkan layanan antimatter tetapi tidak memulainya, dan menampilkan langkah-langkah berikutnya.
2. Buat database
Antimatter membutuhkan PostgreSQL 15 atau lebih baru, di server ini atau server lain. Periksa versi PostgreSQL distribusi Anda dengan psql --version. Jika lebih lama, instal versi yang lebih baru dari repositori resmi proyek PostgreSQL, atau gunakan database di server lain. Di Debian dan Ubuntu, paket postgresql memulai database. Di Fedora dan RHEL, buat dan mulakan terlebih dahulu:
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
Lalu buat pengguna dan database untuk 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 harus menerima koneksi kata sandi dari 127.0.0.1: baris host di file pg_hba.conf dengan metode scram-sha-256.
3. Atur database dan URL situs
Edit /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Hapus # di depan baris yang Anda gunakan, dan atur database serta alamat yang akan dibuka oleh pengguna:
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
Setiap pengaturan konfigurasi dapat diletakkan di file ini sebagai AM_<SECTION>_<SETTING>: misalnya, SqlSettings.DataSource adalah AM_SQLSETTINGS_DATASOURCE. Pengaturan yang ditetapkan di sini tidak dapat diubah di Konsol Sistem. Lihat Konfigurasi. Mulai ulang server setelah setiap perubahan: sudo systemctl restart antimatter.
Layanan ini juga menetapkan beberapa nilai bawaan, yang dapat ditimpa oleh baris di antimatter.env: pencatatan ke file dimatikan (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), dan mode lokal diaktifkan (AM_SERVICESETTINGS_ENABLELOCALMODE=true), sehingga amctl --local berfungsi di server.
4. Jalankan
sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status
Saat pertama kali dijalankan, server membuat tabelnya, lalu mendengarkan di port 8065. Buka http://<server>:8065, atau domain Anda setelah reverse proxy dipasang (lihat Domain dan HTTPS), dan segera buat akun pertama: akun ini akan menjadi administrator sistem. Untuk membuatnya dari baris perintah, gunakan perintah amctl dari Buat administrator pertama, dengan sudo -u antimatter amctl --local menggantikan docker compose exec antimatter amctl --local.
5. Aktifkan GIF
Aplikasi GIF sudah disertakan dan aktif, serta antimatter.env sudah menunjukkannya ke layanan GIF di server yang sama (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Namun, masih diperlukan kunci API layanan tersebut. Paket gifs-server telah membuatnya saat instalasi:
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
Masukkan kunci tersebut ke antimatter.env sebagai AM_GIFS_API_KEY=<key> dan mulai ulang Antimatter, atau masukkan sebagai Kunci API di Konsol Sistem › Plugin › GIF. Jika layanan GIF berjalan di server lain, atur AM_GIFS_SERVICE_URL ke alamatnya. Untuk memungkinkan orang menambahkan GIF dan stiker mereka sendiri, lihat GIF.
Layanan
- Layanan ini berjalan sebagai pengguna
antimatter, di/opt/antimatter, dan membaca/etc/antimatter/antimatter.env. systemd akan memulai ulang server setiap kali server keluar, dan memberikannya waktu hingga satu jam untuk memulai, karena migrasi database versi baru bisa memakan waktu lama. - Log-nya ada di jurnal:
journalctl -u antimatter. - Layanan ini diperkuat:
/usrdan/etchanya dapat dibaca oleh server, kecuali/etc/antimatter/config, dan server tidak dapat melihat/home,/root, atau/run/user. Jika Anda memindahkan penyimpanan file (FileSettings.Directory), pilih direktori di luar direktori tersebut, yang dimiliki olehantimatter. - Peningkatan akan menggantikan file layanan. Untuk mengubahnya, gunakan
sudo systemctl edit antimatter, yang akan menyimpan perubahan Anda di file terpisah.
Tingkatkan paket
- Ambil cadangan (lihat Cadangan dan peningkatan).
- Unduh paket baru dan
SHA256SUMS, lalu periksa keduanya. - Hentikan server, instal paket baru di atas paket lama, lalu mulai lagi:
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
Paket ini tidak memulai ulang server secara otomatis. Setelah peningkatan, paket menampilkan Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: jika Anda tidak menghentikan server terlebih dahulu, segera mulai ulang. Peningkatan ini menggantikan /opt/antimatter dan file layanan, tetapi mempertahankan antimatter.env, config.json, /var/lib/antimatter, dan log. Saat server dimulai, server akan meningkatkan basis data dan menginstal versi terbaru dari aplikasi bawaan.
Jika versi baru mengubah antimatter.env bawaan, apt akan bertanya apakah Anda ingin mempertahankan versi Anda: pertahankan. dnf mempertahankan versi Anda dan menyimpan yang baru sebagai /etc/antimatter/antimatter.env.rpmnew. Peningkatan hanya ke depan: jangan instal versi yang lebih lama di atas versi yang lebih baru.
Hapus paket
sudo apt remove antimatter atau sudo dnf remove antimatter akan menghentikan dan menonaktifkan layanan, serta menghapus program. Data (/var/lib/antimatter), konfigurasi (/etc/antimatter), basis data, dan pengguna antimatter tetap dipertahankan: hapus sendiri untuk menghapus Antimatter sepenuhnya.
Aplikasi dalam paket dan arsip
Paket dan arsip ini mencakup rilis terbaru yang ditandatangani dari aplikasi berikut, di prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels, dan Whiteboard. Aplikasi yang belum memiliki rilis saat rilis server dibuat tidak disertakan: ls /opt/antimatter/prepackaged_plugins menunjukkan apa yang disertakan dalam rilis Anda. Memes dan Todo disertakan tetapi tidak diaktifkan: Aplikasi bawaan menjelaskan cara menginstal dan mengaktifkannya.
Aplikasi lain dari image Docker tidak ada dalam paket atau arsip: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira, dan Metrics. Instal masing-masing dari rilis mereka sendiri:
| Aplikasi | Rilis | ID aplikasi |
|---|---|---|
| Kanban | antimatter-plugin-boards | focalboard |
| Buku Taktik | antimatter-plugin-playbooks | playbooks |
| Surel | antimatter-plugin-mail | com.antimatterchat.mail |
| Kalender | 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 |
| Metrik | Antimatter-plugin-metrics | com.mattermost.mattermost-plugin-metrics |
Setiap rilis aplikasi memiliki bundle aplikasi (berkas .tar.gz), tanda tangannya (nama yang sama dengan .sig ditambahkan), dan berkas SHA256SUMS. Untuk menginstal aplikasi, izinkan unggahan, lalu tambahkan bundle dengan 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
Untuk memperbarui aplikasi yang diinstal dengan cara ini, tambahkan bundle baru dengan plugin add --force: pembaruan paket hanya memperbarui aplikasi yang dibundel. Anda dapat menghapus baris AM_PLUGINSETTINGS_ENABLEUPLOADS lagi setelahnya. Lihat Menginstal aplikasi lain untuk cara lain menginstal aplikasi.
Tanda tangan aplikasi
Bundle aplikasi ditandatangani dengan kunci penandatanganan aplikasi Antimatter: setiap berkas .tar.gz.sig adalah tanda tangan GPG terpisah dari bundle-nya. Server memeriksa tanda tangan ini sebelum menginstal aplikasi yang dibundel. Untuk memeriksa bundle sendiri:
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 harus melaporkan tanda tangan yang baik dari Antimatter Plugin Signing, dengan sidik jari 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Ini juga memperingatkan bahwa kunci tidak disertifikasi dengan tanda tangan yang dapat dipercaya: itu normal untuk kunci yang belum Anda tandatangani sendiri. Rilis aplikasi tanpa berkas .sig tidak ditandatangani, dan catatan rilisnya menyebutkan hal tersebut.
Instal dari arsip rilis
Arsip, antimatter-<version>-linux-<arch>.tar.gz (misalnya antimatter-0.9.0-linux-amd64.tar.gz), cocok untuk distribusi tanpa paket .deb atau .rpm, atau tata letak Anda sendiri. Ini berisi satu direktori antimatter/ dengan bin/antimatter, bin/amctl, config/config.json, aplikasi web (client/ dan client-fusion/), aplikasi yang dibundel (prepackaged_plugins/, lihat di atas), templat email, dan terjemahan.
1. Siapkan PostgreSQL
Antimatter hanya mendukung PostgreSQL versi 15 atau lebih baru (versi yang lebih lama akan gagal dimulai dan menampilkan error di log). Buat pengguna dan basis data:
sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF
2. Ekstrak dan konfigurasi
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
Arahkan server ke basis data, baik melalui /opt/antimatter/config/config.json (SqlSettings.DataSource) maupun dengan variabel lingkungan, lalu atur URL situs:
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
Berkas config.json dalam arsip adalah konfigurasi bawaan yang lengkap: pengaturan yang Anda ubah di Konsol Sistem akan disimpan kembali ke berkas tersebut. Untuk menyimpan konfigurasi di basis data, lihat Konfigurasi.
3. Jalankan sebagai layanan
Unit systemd, di /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
Letakkan variabel AM_ Anda di /etc/antimatter.env (hanya dapat dibaca oleh root), lalu:
sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f
Server mendengarkan pada port 8065. Buka http://<server>:8065, atau domain Anda setelah reverse proxy dipasang (lihat Domain dan HTTPS), lalu buat akun pertama: akun ini akan menjadi administrator sistem.
bin/amctl mengelola server yang sedang berjalan dari baris perintah. Di server itu sendiri, alat ini berfungsi tanpa masuk melalui mode lokal: atur AM_SERVICESETTINGS_ENABLELOCALMODE=true, lalu jalankan sudo -u antimatter /opt/antimatter/bin/amctl --local system status.
Untuk GIF, instal layanan GIF (lihat di bawah) dan setel AM_GIFS_SERVICE_URL dan AM_GIFS_API_KEY seperti pada langkah 5 dari paket.
Paket layanan GIF dan proxy push
Layanan GIF dan proxy push memiliki rilis mereka sendiri, dengan aturan yang sama seperti server: arsip .tar.gz, paket .deb dan .rpm untuk amd64 dan arm64, serta file SHA256SUMS. Versi dengan tanda hubung adalah rilis praproduksi. Periksa unduhan dengan sha256sum --check --ignore-missing SHA256SUMS, seperti untuk server.
Layanan GIF (gifs-server)
Rilis: github.com/AntimatterChat/gifs-server/releases. Arsipnya adalah gifs-server-<version>-linux-<arch>.tar.gz; paketnya bernama gifs-server.
sudo apt install ./gifs-server_*_amd64.deb # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm # Fedora, RHEL
Paket menginstal:
/usr/bin/gifs-server, dan layanangifs-server, yang berjalan sebagai penggunagifs-serverdan menyimpan katalognya di/var/lib/gifs-server;- layanan
gifs-server-stickers, yang mengimpor atau memperbarui paket stiker di/usr/share/gifs-server/stickerssaat Anda memulainya, lalu berhenti; - pengaturannya,
/etc/gifs-server/gifs-server.env(variabelAM_GIFS_, dipertahankan saat peningkatan), dan/etc/gifs-server/api-keys, satu kunci API per baris, dengan kunci acak yang dibuat saat instalasi pertama.
Layanan ini mendengarkan di 127.0.0.1:8080, sehingga hanya Antimatter di server yang sama yang dapat mengaksesnya. Jika Antimatter berjalan di tempat lain, atur AM_GIFS_LISTEN=:8080 di gifs-server.env dan batasi akses ke port tersebut dengan firewall Anda. File ini mencantumkan pengaturan lainnya: AM_GIFS_UPLOAD_KEYS (kunci yang diizinkan untuk menambahkan GIF dan stiker, serta menghapus yang ditambahkan dengan kunci tersebut), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY, dan AM_GIFS_LOG_LEVEL. Paket ini merekomendasikan ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools untuk .rpm), dan font DejaVu: layanan ini menggunakannya untuk membuat format GIF, video, dan stiker saat mengimpor atau menerima file, dan tetap berjalan tanpa mereka.
Seperti server, layanan ini diaktifkan tetapi tidak dimulai saat instalasi. Mulailah seperti yang ditunjukkan di langkah 5 dari paket. Setelah peningkatan, mulai ulang: sudo systemctl restart gifs-server. Menghapus paket akan mempertahankan katalog di /var/lib/gifs-server.
Proxy push
Rilis: github.com/AntimatterChat/push-proxy/releases. Arsipnya adalah antimatter-push-proxy-<version>-linux-<arch>.tar.gz; paketnya bernama antimatter-push-proxy. Paket ini menginstal /usr/bin/antimatter-push-proxy dan layanan antimatter-push-proxy, yang berjalan sebagai pengguna antimatter-push-proxy dan membaca /etc/antimatter-push-proxy/antimatter-push-proxy.json (tetap ada saat upgrade). Kredensial Apple dan Firebase diletakkan di /etc/antimatter-push-proxy/certs: Notifikasi push menjelaskan asal kredensial tersebut.
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
Di file pengaturan, jalur bersifat relatif terhadap /etc/antimatter-push-proxy: misalnya "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" dan "ServiceFileLocation": "./certs/firebase-service-account.json". Lalu atur Server Notifikasi Push di Antimatter menjadi http://<proxy host>:8066. Setelah upgrade, jalankan ulang: sudo systemctl restart antimatter-push-proxy.
Perintah server lainnya
Selain menjalankan server (antimatter, atau antimatter server), biner ini memiliki beberapa perintah pemeliharaan. Perintah-perintah ini membaca konfigurasi yang sama dengan server.
| Perintah | Fungsinya |
|---|---|
antimatter version | Menampilkan versi, nomor build, tanggal build, dan hash build. |
antimatter db ping | Memeriksa apakah basis data dapat dijangkau. |
antimatter db init | Membuat konfigurasi di basis data (dengan AM_CONFIG diatur ke URL postgres://). |
antimatter db migrate | Menerapkan migrasi basis data tanpa memulai server. |
antimatter db version | Menampilkan migrasi terakhir yang diterapkan ke basis data. |
antimatter import bulk, antimatter export bulk | Mengimpor atau mengekspor data dalam format massal (lihat Cadangan dan peningkatan). |