Memasang Antimatter

Pasang Antimatter dengan fail compose yang sedia ada, daripada pakej .deb atau .rpm keluaran, atau daripada arkib keluaran. Kemudian, cipta akaun pentadbir pertama.

Pasang dengan Docker Compose

Ini adalah cara yang disyorkan. Satu fail compose menjalankan Antimatter, PostgreSQL, storan fail dan perkhidmatan GIF. Anda memerlukan pelayan Linux dengan Docker Engine dan plugin Compose-nya (docker compose), 2 teras CPU dan 4 GB memori atau lebih.

1. Muat turun fail compose

mkdir antimatter && cd antimatter
curl -fsSLO https://antimatter.chat/compose.yaml

2. Cipta fail .env

Fail compose membaca tetapan daripada fail .env dalam direktori yang sama. Ciptakannya dengan rahsia rawak:

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

Tetapkan SITE_URL kepada alamat yang akan diketik oleh pengguna dalam pelayar mereka, contohnya http://192.168.1.20:8065 dalam rangkaian tempatan atau https://chat.example.com dengan domain. Simpan fail .env: pangkalan data dan storan menggunakan kata laluan ini daripada permulaan pertama, kunci API sambungan model AI disulitkan dengan AM_AI_ENCRYPTION_KEY, dan anda memerlukan fail yang sama untuk memulihkan sandaran.

3. Mulakannya

docker compose up -d
docker compose ps

Permulaan pertama mengambil masa satu atau dua minit: PostgreSQL mencipta pangkalan data, perkhidmatan bucket sekali sahaja mencipta baldah storan, perkhidmatan gifs-stickers sekali sahaja mengimport pakej stiker permulaan, dan Antimatter mencipta jadualnya. Ikuti dengan docker compose logs -f antimatter.

Untuk menggunakan nama domain dan HTTPS dari permulaan, lihat Domain dan HTTPS: dengan fail compose, ia hanya dua baris lagi dalam .env dan profil https.

Pemboleh ubah .env

Pemboleh ubahLalaiFungsinya
SITE_URLdiperlukanAlamat awam Antimatter (ServiceSettings.SiteURL).
POSTGRES_PASSWORDdiperlukanKata laluan pengguna pangkalan data antimatter.
S3_SECRET_KEYdiperlukanKunci rahsia storan fail.
GIFS_API_KEYdiperlukanKunci yang digunakan oleh Antimatter untuk memanggil perkhidmatan GIF.
AM_AI_ENCRYPTION_KEYkosongKunci yang menyulitkan kunci API sambungan model AI (openssl rand -base64 32). Kosong: pelayan akan membuat fail kunci dalam volume data. Lihat Kunci penyulitan.
GIFS_UPLOAD_KEYkosongMembolehkan pengguna menambah GIF dan pelekat mereka sendiri daripada pemilih, dan memadamnya. Kosong akan mematikan muat naik.
DOMAINkosongNama domain anda, untuk profil https.
HTTP_PORT8065Port hos pelayan web Antimatter.
CALLS_PORT8443Port UDP dan TCP untuk audio dan video panggilan.
EDGE_SUBNET172.29.71.0/28Subnet rangkaian antara Caddy dan Antimatter. Ubah jika ia bertindih dengan salah satu rangkaian anda.
TZUTCZon masa kontena.
ANTIMATTER_IMAGEghcr.io/antimatterchat/antimatter-next:latestImej Antimatter untuk dijalankan (lihat di bawah).

Apa yang dijalankan

PerkhidmatanImejPeranan
antimatterghcr.io/antimatterchat/antimatter-nextPelayan, aplikasi web dan aplikasi terpadu. Menerbitkan HTTP_PORT dan CALLS_PORT. Direktori datanya ialah volume data.
postgrespostgres:17-alpinePangkalan data, dalam isipadu postgres.
filesrustfs/rustfsPenyimpanan serasi S3 untuk fail yang dimuat naik dan aplikasi yang dipasang, dalam volume files.
bucketamazon/aws-cliMembuat baldah antimatter, kemudian keluar.
gifsghcr.io/antimatterchat/gifs-serverPerkhidmatan GIF dan pelekat, dalam volume gifs.
gifs-stickersghcr.io/antimatterchat/gifs-serverMendatangkan pakej pelekat permulaan buat kali pertama, kemudian keluar.
httpscaddy:2-alpineHanya dengan profil https: HTTPS pada port 80 dan 443.

PostgreSQL, penyimpanan dan perkhidmatan GIF berada pada rangkaian dalaman (private) tanpa akses Internet, yang hanya disertai oleh Antimatter. Tiada satu pun daripada mereka menerbitkan port.

Kontena Antimatter tidak menyimpan apa-apa pada cakera: tetapanannya berada dalam pangkalan data (AM_CONFIG menunjuk ke sana) dan fail serta aplikasinya berada dalam perkhidmatan storan. Anda boleh memadam dan mencipta semula kontena pada bila-bila masa. Volume datanya hanya memegang fail kunci penyulitan AI, yang dibuat oleh pelayan apabila AM_AI_ENCRYPTION_KEY kosong. Semua yang perlu disandarkan berada dalam volume postgres, files, gifs dan data, serta .env anda.

Pilih imej

Dua imej Antimatter diterbitkan, kedua-duanya untuk linux/amd64 dan linux/arm64, dan kedua-duanya dibina dari cawangan main setiap repositori:

ImejAplikasi terpalitTag
ghcr.io/antimatterchat/antimatterEjen, Panggilan, GitHub, GitLab, Jira, Kanban, Metrik dan Buku Taktik.latest, X.Y.Z untuk pelepasan, sha-<commit>
ghcr.io/antimatterchat/antimatter-nextSama seperti di atas, ditambah Saluran Suara, Undian, Mel, Kalendar, Nota, Papan Putih, GIF, Senarai tugasan dan Meme. Dibina semula setiap malam.latest, nightly, nightly-<YYYYMMDD>, sha-<commit>

Fail compose laman web menggunakan antimatter-next, kerana perkhidmatan GIF dan kebanyakan aplikasi yang diterangkan pada laman web ini hanya terdapat dalam imej tersebut. Untuk mengubah imej, tetapkan ANTIMATTER_IMAGE dalam .env dan jalankan docker compose up -d.

latest berubah di bawah anda. Dalam pengeluaran, semat tag seperti nightly-20261015 atau sha-<commit>, dan ubah dengan sengaja apabila anda menaik taraf. Pelayan menaik taraf pangkalan datanya apabila ia bermula, jadi anda tidak boleh kembali ke imej yang lebih lama, atau dari antimatter-next ke antimatter, tanpa memulihkan salai yang diambil sebelum itu. Lihat Salai dan peningkatan.

Di dalam imej

  • Pelayan berada di /antimatter, dengan binari antimatter dan amctl di /antimatter/bin (pada PATH).
  • Ia berjalan sebagai pengguna tidak berkeistimewaan antimatter (uid 2000) pada asas distroless minimum, tanpa shell.
  • Port: 8065 (web dan API), 8067 (metrik), 8074 (kluster), 8443 UDP dan TCP (panggilan).
  • Mod lokal (ServiceSettings.EnableLocalMode) dihidupkan, jadi amctl --local berfungsi di dalam kontena. Semakan kesihatan menjalankan amctl system status --local.
  • Aplikasi terpalit berada di /antimatter/prepackaged_plugins, ditandatangani dengan kunci penandatanganan aplikasi Antimatter.
  • Alat pengekstrakan teks (pdftotext, wvText, unrtf, tidy) disertakan, jadi kandungan dokumen yang dimuat naik boleh dicari.

Fail compose lain

Repositori antimatter-docker mempunyai persediaan pengeluaran di deploy/compose/: nginx dengan sijil anda sendiri atau Let's Encrypt (certbot), PostgreSQL, perkhidmatan GIF pilihan (profil gifs) dan isipadu bernama untuk konfigurasi, data dan log pelayan, yang didokumentasikan dalam README-nya. Ia menggunakan imej stabil secara lalai dan menyimpan fail pada isipadu tempatan berbanding storan S3. Guna ini jika anda lebih suka nginx berbanding Caddy, atau sudah mempunyai sijil.

Cipta pentadbir pertama

Buka SITE_URL dalam pelayar anda dan cipta akaun. Akaun pertama yang dicipta pada pelayan baharu menjadi pentadbir sistem, dan persediaan kemudian membimbing anda melalui penciptaan komuniti pertama anda (nama Antimatter untuk pasukan atau ruang kerja).

Lakukannya segera selepas permulaan pertama: sehingga ketika itu, sesiapa sahaja yang mencapai pelayan terlebih dahulu akan menjadi pentadbirnya. Untuk mencipta akaun dari baris arahan sebaliknya, sebelum pelayan boleh dicapai 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

Kemudian log masuk di SITE_URL. Mula arahan dengan ruang untuk mengekalkan kata laluan keluar dari sejarah shell anda (dengan HISTCONTROL=ignorespace), atau ubah kata laluan setelah log masuk.

Langkah seterusnya setelah anda masuk:

  1. Untuk syarikat atau organisasi, tetapkan Jenis komuniti baharu kepada Tempat kerja, dan ubah jenis komuniti yang telah anda cipta dalam tetapanannya: Tempat kerja atau komuniti.
  2. Tentukan siapa yang boleh mencipta akaun: Log masuk dan akaun.
  3. Konfigurasikan e-mel, supaya jemputan dan tetapan semula kata laluan berfungsi: E-mel dan pemberitahuan push.
  4. Buka port panggilan dalam tembok api anda: Panggilan dan suara.
  5. Semak aplikasi mana yang dihidupkan: Aplikasi terpalit.

Muat turun keluaran

Tanpa Docker, pasang Antimatter daripada fail keluaran di GitHub: github.com/AntimatterChat/antimatter/releases. Setiap keluaran mempunyai nombor versi seperti 0.9.0, dan tagnya ialah nombor yang sama dengan v di hadapannya (v0.9.0).

Antimatter masih dalam beta: penerbitannya berada dalam siri 0.9.0. Penerbitan yang mempunyai sufiks selepas tanda sengkang dalam versinya, seperti 0.9.0-rc.1, dilabel Pre-release di GitHub. Ia ialah versi ujian, diterbitkan sebelum penerbitan akhir.

Setiap penerbitan mempunyai fail-fail ini, untuk pelayan amd64 dan arm64:

FailApakah ia
antimatter_<version>-1_amd64.deb, antimatter_<version>-1_arm64.debPakej untuk Debian, Ubuntu dan taburan yang berasaskan taburan-taburan tersebut.
antimatter-<version>-1.x86_64.rpm, antimatter-<version>-1.aarch64.rpmPakej untuk Fedora, RHEL dan taburan yang serasi dengan RHEL.
antimatter-<version>-linux-amd64.tar.gz, antimatter-<version>-linux-arm64.tar.gzArkib penerbitan, untuk mana-mana taburan Linux, diset secara manual.
SHA256SUMSSemakan SHA-256 bagi setiap fail dalam penerbitan.

Pakej dan arkib mengandungi program yang sama: pelayan (antimatter), alat baris arahan (amctl), kedua-dua aplikasi web (antaramuka lalai dan yang klasik), aplikasi terpadu, templat e-mel dan terjemahan. Pakej menambah perkhidmatan systemd dan fail tetapan, jadi setiap satu ialah pemasangan serba lengkap: anda hanya perlu menambah pangkalan data PostgreSQL. Tiada muat turun binari berasingan: binari berada dalam arkib, di antimatter/bin/. Ia statik, jadi ia boleh dijalankan pada mana-mana taburan Linux bagi seni bina tersebut.

Dalam nama pakej, tanda sengkang bagi versi pra-penerbitan menjadi tilde, supaya pengurusan pakej menyusun pra-penerbitan sebelum penerbitan akhir: 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. Arkib mengekalkan tanda sengkang.

antimatter version memaparkan versi penerbitan sebagai Nombor Binaan, dengan commit yang dibina daripadanya sebagai Hash Binaan. Baris Versi ialah versi baris Mattermost yang menjadi asas Antimatter.

Semak muat turun

Muat turun fail yang anda perlukan dan SHA256SUMS ke dalam direktori yang sama, daripada halaman penerbitan atau dengan curl, kemudian semak fail 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 fail yang anda muat turun mesti disenaraikan dengan OK. Sebarang keputusan lain bermakna fail tersebut rosak atau tidak lengkap: muat turunnya semula, dan jangan pasang. SHA256SUMS tidak ditandatangani: ia mengesan muat turun yang rosak, dan tidak membuktikan apa-apa lebih daripada muat turun HTTPS daripada GitHub.

Pasang pakej .deb atau .rpm

Pakej memasang Antimatter sebagai perkhidmatan systemd, yang hanya memerlukan pangkalan data untuk bermula. Guna pada pelayan 64-bit Debian, Ubuntu, Fedora atau serasi RHEL dengan systemd.

Apa yang dipasang oleh pakej

LaluanKandungan
/opt/antimatterProgram: bin/antimatter, bin/amctl, aplikasi web (client/, client-fusion/), aplikasi terbalut (prepackaged_plugins/), templat, terjemahan dan fon. Setiap peningkatan akan menggantikannya.
/etc/antimatter/antimatter.envTetapan perkhidmatan, sebagai pemboleh ubah AM_: pangkalan data, URL laman web, perkhidmatan GIF. Hanya boleh dibaca oleh root. Peningkatan akan menyimpannya.
/etc/antimatter/config/config.jsonFail konfigurasi, di mana pelayan menyimpan tetapan yang diubah dalam Konsol Sistem. Ia dicipta daripada /opt/antimatter/defaults/config.json semasa pemasangan pertama, dan tidak akan digantikan selepas itu.
/var/lib/antimatterFail yang dimuat naik (data/) dan aplikasi yang dipasang (plugins/, client-plugins/).
/var/log/antimatterFail log, jika anda menghidupkan log fail. Ia dimatikan: log akan dihantar ke jurnal.
/usr/lib/systemd/system/antimatter.servicePerkhidmatan.
/usr/bin/amctlPautan ke /opt/antimatter/bin/amctl.

Direktori yang ditulis oleh pelayan dalam /opt/antimatter (config, data, plugins, client/plugins dan logs) adalah pautan ke /etc/antimatter, /var/lib/antimatter dan /var/log/antimatter. Oleh itu, peningkatan yang menggantikan /opt/antimatter tidak akan menyentuh data anda. Pakej ini juga mencipta pengguna sistem antimatter, yang menjalankan pelayan dan memiliki direktori ini.

Pakej ini bergantung pada ca-certificates. Ia mengesyorkan PostgreSQL (postgresql pada Debian dan Ubuntu, postgresql-server pada Fedora dan RHEL), media-types (mailcap untuk .rpm) dan gifs-server, perkhidmatan GIF, yang mempunyai penerbitannya sendiri (lihat di bawah). apt dan dnf akan memasang pakej yang disyorkan jika ditemui. Ia mencadangkan poppler-utils, wv, unrtf dan tidy (tiada wv untuk .rpm): ia mengekstrak teks daripada dokumen yang dimuat naik, supaya carian dapat menemui perkataan di dalamnya. Pasang sendiri jika anda mahukan ini.

1. Pasang pakej

Muat turun pakej Antimatter dan pakej perkhidmatan GIF untuk seni bina anda, semak seperti yang ditunjukkan di atas, dan pasang kedua-duanya dalam satu arahan, supaya cadangan gifs-server dipenuhi (ia tidak terdapat dalam repositori taburan):

# 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

Simpan ./: ia memberitahu apt dan dnf untuk memasang fail tempatan. Untuk memasang tanpa perkhidmatan GIF, tinggalkan pakejnya. Pakej ini membolehkan perkhidmatan antimatter tetapi tidak memulakannya, dan memaparkan langkah seterusnya.

2. Cipta pangkalan data

Antimatter memerlukan PostgreSQL 15 atau yang lebih baharu, sama ada pada pelayan ini atau pelayan lain. Semak versi PostgreSQL edisi anda dengan psql --version. Jika ia lebih lama, pasang versi yang lebih baharu dari repositori projek PostgreSQL sendiri, atau gunakan pangkalan data pada pelayan lain. Pada Debian dan Ubuntu, pakej postgresql memulakan pangkalan data. Pada Fedora dan RHEL, cipta dan mulakannya terlebih dahulu:

sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql

Kemudian cipta pengguna dan pangkalan data 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 mesti menerima sambungan kata laluan dari 127.0.0.1: baris host dalam fail pg_hba.confnya, dengan kaedah scram-sha-256.

3. Tetapkan pangkalan data dan URL laman web

Sunting /etc/antimatter/antimatter.env (sudoedit /etc/antimatter/antimatter.env). Buang # di hadapan baris yang anda gunakan, dan tetapkan pangkalan data 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

Mana-mana tetapan konfigurasi boleh diletakkan dalam fail ini sebagai AM_<SECTION>_<SETTING>: sebagai contoh, SqlSettings.DataSource ialah AM_SQLSETTINGS_DATASOURCE. Tetapan yang ditetapkan di sini tidak boleh diubah dalam Konsol Sistem. Lihat Konfigurasi. Mula semula pelayan selepas setiap perubahan: sudo systemctl restart antimatter.

Perkhidmatan ini juga menetapkan beberapa nilai lalai, yang boleh ditimpa oleh baris dalam antimatter.env: pelayaran ke fail adalah dimatikan (AM_LOGSETTINGS_ENABLEFILE=false, AM_NOTIFICATIONLOGSETTINGS_ENABLEFILE=false), dan mod tempatan adalah dihidupkan (AM_SERVICESETTINGS_ENABLELOCALMODE=true), supaya amctl --local berfungsi pada pelayan.

4. Mula

sudo systemctl start antimatter
journalctl -u antimatter -f
sudo -u antimatter amctl --local system status

Pada permulaan pertama, pelayan akan mencipta jadualnya, kemudian mendengar pada port 8065. Buka http://<server>:8065, atau domain anda setelah proksi songsang dipasang (lihat Domain dan HTTPS), dan terus cipta akaun pertama: ia akan menjadi pentadbir sistem. Untuk menciptanya dari baris arahan sebaliknya, gunakan arahan amctl daripada Cipta pentadbir pertama, dengan sudo -u antimatter amctl --local menggantikan docker compose exec antimatter amctl --local.

5. Hidupkan GIF

Aplikasi GIF disertakan dan dihidupkan, dan antimatter.env sudah menunjukkannya ke perkhidmatan GIF pada pelayan yang sama (AM_GIFS_SERVICE_URL=http://127.0.0.1:8080/v2). Ia masih memerlukan kunci API perkhidmatan tersebut. Pakej gifs-server telah menjana satu semasa pemasangannya:

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

Letakkan kunci dalam antimatter.env sebagai AM_GIFS_API_KEY=<key> dan mulakan semula Antimatter, atau masukkan sebagai Kunci API dalam Konsol Sistem › Plugin › GIF. Jika perkhidmatan GIF berjalan pada pelayan lain, tetapkan AM_GIFS_SERVICE_URL ke alamatnya. Untuk membolehkan pengguna menambah GIF dan pelekat mereka sendiri, lihat GIF.

Perkhidmatan

  • Ia berjalan sebagai pengguna antimatter, dalam /opt/antimatter, dan membaca /etc/antimatter/antimatter.env. systemd akan memulakan semula pelayan setiap kali ia tamat, dan memberikannya sehingga satu jam untuk bermula, kerana migrasi pangkalan data versi baharu boleh mengambil masa yang lama.
  • Lognya terdapat dalam jurnal: journalctl -u antimatter.
  • Ia diperkukuh: /usr dan /etc adalah sahaja untuk pelayan, kecuali /etc/antimatter/config, dan ia tidak dapat melihat /home, /root atau /run/user. Jika anda memindahkan stor fail (FileSettings.Directory), pilih direktori di luar ini, dimiliki oleh antimatter.
  • Tahap naik akan menggantikan fail perkhidmatan. Untuk mengubahnya, gunakan sudo systemctl edit antimatter, yang menyimpan perubahan anda dalam fail berasingan.

Tahap naik pakej

  1. Ambil sandaran (lihat Sandaran dan tahap naik).
  2. Muat turun pakej baharu dan SHA256SUMS, dan semak mereka.
  3. Hentikan pelayan, pasang pakej baharu di atas yang lama, dan mulakannya semula:
    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

Pakej ini tidak memulakan semula pelayan secara automatik. Selepa peningkatan, ia akan memaparkan Antimatter was upgraded; restart it to run the new version: sudo systemctl restart antimatter: jika anda tidak berhenti pelayan terlebih dahulu, mulakan semula pelayan tersebut serta-merta. Peningkatan ini akan menggantikan /opt/antimatter dan fail perkhidmatan, serta mengekalkan antimatter.env, config.json, /var/lib/antimatter dan log. Apabila pelayan dimulakan, ia akan meningkatkan pangkalan data dan memasang versi baharu aplikasi yang disertakan.

Jika versi baharu mengubah lalai antimatter.env, apt akan bertanya sama ada anda mahu mengekalkan versi anda: kekalkan versi anda. dnf akan mengekalkan versi anda dan menyimpan versi baharu sebagai /etc/antimatter/antimatter.env.rpmnew. Peningkatan hanya berlaku ke hadapan: jangan pasang versi lama ke atas versi baharu.

Buang pakej

sudo apt remove antimatter atau sudo dnf remove antimatter akan menghentikan dan melumpuhkan perkhidmatan, serta membuang program. Ia akan mengekalkan data (/var/lib/antimatter), konfigurasi (/etc/antimatter), pangkalan data dan pengguna antimatter: buang sendiri untuk membuang Antimatter sepenuhnya.

Aplikasi dalam pakej dan arkib

Pakej dan arkib ini termasuk versi lepasan bertanda terbaharu bagi aplikasi ini, dalam prepackaged_plugins/: Agents, Calls, GIFs, Memes, Notes, Polls, Todo, Voice Channels dan Whiteboard. Aplikasi yang belum mempunyai versi lepasan apabila versi pelayan dibina tidak disertakan: ls /opt/antimatter/prepackaged_plugins menunjukkan apa yang disertakan dalam versi anda. Memes dan Todo disertakan tetapi tidak diaktifkan: Aplikasi terikat menerangkan cara untuk memasang dan mengaktifkannya.

Aplikasi lain dalam imej Docker tidak disertakan dalam pakej atau arkib: Kanban, Playbooks, Mail, Calendar, GitHub, GitLab, Jira dan Metrics. Pasang setiap satu daripada versi lepasan masing-masing:

AplikasiVersi Lepasid aplikasi
Kanbanantimatter-plugin-boardsfocalboard
Buku Taktikantimatter-plugin-playbooksplaybooks
Melantimatter-plugin-mailcom.antimatterchat.mail
Kalendarantimatter-plugin-calendarcom.antimatterchat.calendar
GitHubantimatter-plugin-githubgithub
GitLabantimatter-plugin-gitlabcom.github.manland.mattermost-plugin-gitlab
Jiraantimatter-plugin-jirajira
MetrikAntimatter-plugin-metricscom.mattermost.mattermost-plugin-metrics

Setiap keluaran aplikasi mempunyai bundle aplikasi (fail .tar.gz), tandatangan (nama yang sama dengan .sig ditambah) dan fail SHA256SUMS. Untuk memasang aplikasi, benarkan muat naik, kemudian tambah 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 mengemas kini aplikasi yang dipasang dengan cara ini, tambah bundle baharu dengan plugin add --force: kemaskini pakej hanya mengemas kini aplikasi yang dibundel. Anda boleh membuang baris AM_PLUGINSETTINGS_ENABLEUPLOADS sekali lagi selepas itu. Lihat Memasang aplikasi lain untuk cara lain untuk memasang aplikasi.

Tandatangan aplikasi

Bundle aplikasi ditandatangani dengan kunci penandatanganan aplikasi Antimatter: setiap fail .tar.gz.sig ialah tandatangan GPG berasingan bagi bundle tersebut. Pelayan memeriksa tandatangan ini sebelum ia memasang aplikasi yang dibundel. Untuk memeriksa bundle anda 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 mesti melaporkan tandatangan yang baik daripada Antimatter Plugin Signing, dengan cap jari 06C8 1032 4677 0F08 BBA7 78B9 E69B 05C3 92A6 9A45. Ia juga memberi amaran bahawa kunci tidak disahkan dengan tandatangan yang dipercayai: itu adalah normal untuk kunci yang anda tidak tandatangan sendiri. Keluaran aplikasi tanpa fail .sig adalah tidak bertandatangan, dan nota keluarannya menyatakan demikian.

Pasang dari arkib keluaran

Arkib, antimatter-<version>-linux-<arch>.tar.gz (contohnya antimatter-0.9.0-linux-amd64.tar.gz), sesuai untuk edisi tanpa pakej .deb atau .rpm, atau susunan anda sendiri. Ia mengandungi 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 e-mel dan terjemahan.

1. Sediakan PostgreSQL

Antimatter hanya menyokong PostgreSQL, versi 15 atau lebih baharu (versi yang lebih lama akan bermula, dengan ralat dalam log). Cipta pengguna dan pangkalan data:

sudo -u postgres psql <<'EOF'
CREATE USER antimatter WITH PASSWORD 'a-long-password';
CREATE DATABASE antimatter OWNER antimatter;
EOF

2. Buka 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

Tunjuk pelayan ke pangkalan data, sama ada dalam /opt/antimatter/config/config.json (SqlSettings.DataSource) atau dengan pemboleh ubah persekitaran, dan tetapkan URL laman 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

config.json arkib ialah konfigurasi lalai yang lengkap: tetapan yang anda ubah dalam Konsol Sistem disimpan semula ke dalamnya. Untuk mengekalkan konfigurasi dalam pangkalan data sebaliknya, lihat Konfigurasi.

3. Jalankan sebagai perkhidmatan

Unit systemd, dalam /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 pemboleh ubah AM_ anda dalam /etc/antimatter.env (boleh dibaca oleh root sahaja), kemudian:

sudo systemctl daemon-reload
sudo systemctl enable --now antimatter
journalctl -u antimatter -f

Pelayan mendengar pada port 8065. Buka http://<server>:8065, atau domain anda setelah proksi songsang dipasang (lihat Domain dan HTTPS), dan cipta akaun pertama: ia menjadi pentadbir sistem.

bin/amctl mengurus pelayan yang sedang berjalan dari baris arahan. Pada pelayan itu sendiri, ia berfungsi tanpa log masuk melalui mod tempatan: tetapkan AM_SERVICESETTINGS_ENABLELOCALMODE=true, kemudian jalankan sudo -u antimatter /opt/antimatter/bin/amctl --local system status.

Untuk GIF, pasang perkhidmatan GIF (lihat di bawah) dan tetapkan AM_GIFS_SERVICE_URL dan AM_GIFS_API_KEY seperti dalam langkah 5 pakej.

Pakej perkhidmatan GIF dan proksi tolak

Perkhidmatan GIF dan proksi tolak mempunyai penerbitan mereka sendiri, dengan peraturan yang sama seperti pelayan: arkib .tar.gz, pakej .deb dan .rpm untuk amd64 dan arm64, serta fail SHA256SUMS. Versi dengan sengkang ialah pra-penerbitan. Semak muat turun dengan sha256sum --check --ignore-missing SHA256SUMS, seperti untuk pelayan.

Perkhidmatan GIF (gifs-server)

Penerbitan: github.com/AntimatterChat/gifs-server/releases. Arkib ialah gifs-server-<version>-linux-<arch>.tar.gz; pakej dinamakan gifs-server.

sudo apt install ./gifs-server_*_amd64.deb      # Debian, Ubuntu
sudo dnf install ./gifs-server-*.x86_64.rpm     # Fedora, RHEL

Pakej memasang:

  • /usr/bin/gifs-server, dan perkhidmatan gifs-server, yang berjalan sebagai pengguna gifs-server dan menyimpan katalognya di /var/lib/gifs-server;
  • perkhidmatan gifs-server-stickers, yang mengimport atau mengemas kini set pelekat di /usr/share/gifs-server/stickers apabila anda memulakannya, kemudian berhenti;
  • tetapannya, /etc/gifs-server/gifs-server.env (pemboleh ubah AM_GIFS_, dikekalkan semasa kemaskini), dan /etc/gifs-server/api-keys, satu kunci API per baris, dengan kunci rawak dijana pada pemasangan pertama.

Ia mendengar di 127.0.0.1:8080, jadi hanya Antimatter pada pelayan yang sama dapat mengaksesnya. Jika Antimatter berjalan di tempat lain, tetapkan AM_GIFS_LISTEN=:8080 dalam gifs-server.env dan hadkan akses ke port dengan tembok api anda. Fail ini menyenaraikan tetapan lain: AM_GIFS_UPLOAD_KEYS (kunci yang dibenarkan untuk menambah GIF dan pelekat, serta untuk memadam yang ditambah dengan mereka), AM_GIFS_PUBLIC_URL, AM_GIFS_TRUST_PROXY dan AM_GIFS_LOG_LEVEL. Pakej mengesyorkan ffmpeg, gifsicle, librsvg2-bin (librsvg2-tools untuk .rpm) dan fon DejaVu: perkhidmatan menggunakannya untuk membuat format GIF, video dan pelekat apabila ia mengimport atau menerima fail, dan berjalan tanpa mereka.

Seperti pelayan, perkhidmatan ini didayakan tetapi tidak dimulakan pada pemasangan. Mulakannya seperti yang ditunjukkan dalam langkah 5 pakej. Selepas kemaskini, mulakan semula: sudo systemctl restart gifs-server. Memadam pakej mengekalkan katalog di /var/lib/gifs-server.

Proksi tolak

Pelepasan: github.com/AntimatterChat/push-proxy/releases. Arkib ialah antimatter-push-proxy-<version>-linux-<arch>.tar.gz; pakej dinamakan antimatter-push-proxy. Pakej memasang /usr/bin/antimatter-push-proxy dan perkhidmatan antimatter-push-proxy, yang dijalankan sebagai pengguna antimatter-push-proxy dan membaca /etc/antimatter-push-proxy/antimatter-push-proxy.json (dipertahankan semasa peningkatan). Kelayakan Apple dan Firebase diletakkan dalam /etc/antimatter-push-proxy/certs: Pemberitahuan Dorong menerangkan sumbernya.

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

Dalam fail tetapan, laluan adalah relatif kepada /etc/antimatter-push-proxy: sebagai contoh "AppleAuthKeyFile": "./certs/AuthKey_ABCDE12345.p8" dan "ServiceFileLocation": "./certs/firebase-service-account.json". Kemudian tetapkan Pelayan Pemberitahuan Dorong dalam Antimatter kepada http://<proxy host>:8066. Selepas peningkatan, mulakan semula: sudo systemctl restart antimatter-push-proxy.

Proksi dorong mendengar pada port 8066 di setiap alamat dan tidak memeriksa siapa yang memanggilnya. Simpan port ini dalam rangkaian peribadi, atau di belakang proksi songsang yang mengehadkan akses.

Arahan pelayan lain

Selain menjalankan pelayan (antimatter, atau antimatter server), binari ini mempunyai beberapa arahan penyelenggaraan. Ia membaca konfigurasi yang sama seperti pelayan.

ArahanFungsinya
antimatter versionMencetak versi, nombor binaan, tarikh binaan dan hash binaan.
antimatter db pingMengecek bahawa pangkalan data boleh dicapai.
antimatter db initMencipta konfigurasi dalam pangkalan data (dengan AM_CONFIG ditetapkan ke URL postgres://).
antimatter db migrateMenerapkan migrasi pangkalan data tanpa memulakan pelayan.
antimatter db versionMencetak migrasi terakhir yang diterapkan pada pangkalan data.
antimatter import bulk, antimatter export bulkMengimport atau mengekspor data dalam format pukal (lihat Sandaran dan naik taraf).