Sandaran dan peningkatan
Apa yang perlu disandar, cara memulihkannya pada hos baharu, cara meningkatkan, dan cara mengalihkan pelayan Mattermost atau komuniti tunggal ke Antimatter.
Apa yang perlu disandar
| Apa | Dengan fail compose laman web | Dengan arkib keluaran | Dengan pakej .deb atau .rpm |
|---|---|---|---|
| Pangkalan data: mesej, pengguna, komuniti, Saluran dan, dengan fail compose laman web, konfigurasi | volum antimatter_postgres, melalui pg_dump | pangkalan data PostgreSQL anda | pangkalan data PostgreSQL anda |
| Fail yang dimuat naik, imej, dan aplikasi yang dipasang | volum antimatter_files (stor S3) | FileSettings.Directory, ./data/ secara lalai | /var/lib/antimatter |
| Fail konfigurasi | (dalam pangkalan data) | config/config.json | /etc/antimatter/config/config.json |
| GIF dan pelekat | volum antimatter_gifs | buku data perkhidmatan GIF | /var/lib/gifs-server |
| Rahsia | .env (dan compose.override.yaml) | fail persekitaran anda | /etc/antimatter/antimatter.env, /etc/gifs-server |
| Kunci penyulitan AI, yang menyulitkan kunci sambungan model | AM_AI_ENCRYPTION_KEY dalam .env (disyorkan), atau fail ai-encryption.key dalam isipadu antimatter_data | AM_AI_ENCRYPTION_KEY, atau data/ai-encryption.key | AM_AI_ENCRYPTION_KEY dalam antimatter.env, atau /var/lib/antimatter/data/ai-encryption.key |
Tanpa kunci penyulitan AI, pelayan yang dipulihkan tidak dapat membaca kunci API sambungan modelnya, dan setiap satu perlu di taip semula. Simpan salinan kunci berasingan daripada sandaran pangkalan data, supaya satu sandaran yang dicuri tidak mengandungi kedua-duanya. Lihat Kunci penyulitan.
Pangkalan data dan fail adalah saling berkait: sandarkan pada masa yang sama, dan simpan salinan di luar pelayan. Nama volum bermula dengan nama projek compose, antimatter (docker volume ls menyenaraikannya).
Sandar
Dari direktori compose.yaml. Menghentikan Antimatter terlebih dahulu memberikan salinan yang konsisten sepenuhnya; sandaran yang diambil semasa ia berjalan biasanya tidak menjadi masalah, tetapi fail yang dimuat naik semasa sandaran mungkin tidak ada di dalamnya.
stamp=$(date +%Y%m%d-%H%M%S)
mkdir -p backups
docker compose stop antimatter
# Database
docker compose exec -T postgres pg_dump -U antimatter -d antimatter -Fc \
> "backups/antimatter-db-$stamp.dump"
# File storage, GIF service and the data directory (the AI key file)
for v in files gifs data; do
docker run --rm -v "antimatter_$v:/data:ro" -v "$PWD/backups:/backup" \
alpine tar -czf "/backup/antimatter-$v-$stamp.tar.gz" -C /data .
done
docker compose start antimatter
# Secrets
cp .env "backups/env-$stamp"
Jika anda belum menetapkan AM_AI_ENCRYPTION_KEY, fail kunci pelayan berada dalam isipadu data, yang disimpan oleh gelung di atas bersama fail-fail. Lebih baik, letakkan kandungannya dalam .env seperti yang diterangkan dalam Kunci penyulitan, dan simpan salinannya berasingan daripada sandaran pangkalan data.
Jalankan dari cron untuk sandaran harian, dan salin direktori backups/ ke mesin lain. Simpan salinan .env seaman pelayan: ia menyimpan kata lalunya.
Untuk menyalin fail yang dimuat naik objek demi objek (contohnya ke stor S3 lain), gunakan alat baris arahan AWS perkhidmatan bucket:
docker compose run --rm -v "$PWD/backups/files:/backup" bucket \
"aws --endpoint-url http://files:9000 s3 sync s3://antimatter /backup"
Dengan arkib keluaran, sandarkan pangkalan data dengan pg_dump -Fc, dan direktori data/ dan config/ dengan alat biasa anda (data/ mengandungi fail kunci AI). Dengan pakej, sandarkan pangkalan data dengan cara yang sama, dan /etc/antimatter, /var/lib/antimatter, /etc/gifs-server dan /var/lib/gifs-server.
Pulihkan pada hos baharu
Letakkan compose.yaml, .env yang disimpan dan sandaran dalam direktori baharu, kemudian:
stamp=20261016-030000 # the backup to restore
docker compose create # creates the volumes, starts nothing
docker compose up -d postgres
docker compose exec -T postgres pg_restore -U antimatter -d antimatter --no-owner \
< "backups/antimatter-db-$stamp.dump"
for v in files gifs data; do
docker run --rm -v "antimatter_$v:/data" -v "$PWD/backups:/backup" \
alpine tar -xzf "/backup/antimatter-$v-$stamp.tar.gz" -C /data
done
docker compose up -d
Gunakan .env yang sama: storan dan pangkalan data mesti mengekalkan kata laluan yang ada, dan sambungan model memerlukan kunci penyulitan AI yang sama. Jika hos baharu mempunyai alamat lain, kemas kini SITE_URL (dan DOMAIN).
Uji sandaran anda dengan memulihkannya pada mesin lain dari semasa ke semasa.
Tingkatkan
data: fail kunci AI berada dalam bekas. Sebelum anda menggunakan compose.yaml baharu, dan jika .env tiada AM_AI_ENCRYPTION_KEY, simpan kunci yang dibuat oleh pelayan: echo "AM_AI_ENCRYPTION_KEY=$(docker compose exec -T antimatter cat /antimatter/data/ai-encryption.key)" >> .env. Jika arahan tidak menemui fail, tiada sambungan model yang menyimpan kunci lagi.- Ambil sandaran.
- Tukar tag imej dalam
.env(ANTIMATTER_IMAGE), jika anda menetapkan satu, seperti yang disyorkan. - Tarik dan mulakan semula:
docker compose pull docker compose up -d docker compose logs -f antimatter
Semasa mula, pelayan menaik taraf skema pangkalan data (pantau dalam log; pelayan besar boleh mengambil beberapa minit) dan memasang versi baharu aplikasi terikat dari imej. Dengan arkib keluaran: hentikan pelayan, gantikan semua kandungan kecuali config/, data/, logs/, plugins/ dan client/plugins/ dengan kandungan arkib baharu, dan mulakan semula. Dengan pakej .deb atau .rpm, pasang pakej baharu seperti yang diterangkan dalam Naik taraf pakej.
antimatter-next kembali ke antimatter.Versi
Pelayan Antimatter melaporkan versi baris Mattermost yang menjadi asasnya (semasa 12.0.0). Keluaran di GitHub, dengan arkib dan pakejnya, mempunyai nombor versi sendiri, dalam siri 0.9.0 semasa beta: antimatter version memaparkannya sebagai Nombor Binaan. Imej dibina semula dari cabang main: antimatter-next setiap malam (tag nightly-<YYYYMMDD>), dan kedua-dua imej pada setiap perubahan (tag sha-<commit>). Tetapkan salah satu tag ini, naik taraf secara sengaja, dan simpan nota tag sebelumnya supaya anda tahu set mana yang sepadan dengan sandaran.
Versi utama PostgreSQL
Fail compose menggunakan postgres:17-alpine. Antimatter memerlukan PostgreSQL 15 atau baharu. Versi utama baharu PostgreSQL tidak dapat membaca direktori data versi sebelumnya: untuk berpindah ke versi baharu, keluarkan (dump) pangkalan data, mulakan versi baharu pada isipadu (volume) baharu dan pulihkan dump ke dalamnya.
Naik taraf ke 0.9.0
Mula pertama versi 0.9.0 (atau imej yang dibina dari 17 Oktober 2026 ke atas) membuat beberapa perubahan satu masa kepada data. Setiap satu dijalankan sekali, dan direkodkan dalam pangkalan data. Ia membawa apa yang ditinggalkan pada lalai lama kepada lalai baharu, dan membiarkan apa yang dipilih oleh pentadbir. Pantau dalam log.
AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND=workplace. Naik taraf memberikan setiap komuniti jenis yang ditetapkan oleh tetapan ini pada masa itu, dan panggilan adalah lalai dalam saluran komuniti jenis Komuniti. Lihat Tempat kerja atau komuniti.| Apa | Perubahan |
|---|---|
| Jenis komuniti | Setiap komuniti mendapat jenis, Komuniti atau Tempat kerja: nilai Jenis komuniti baharu (TeamSettings.DefaultCommunityKind) pada mula pertama. Jenis yang telah ditetapkan dikekalkan. Pentadbir komuniti boleh mengubah jenis komuniti mereka kemudian, dalam Tetapan pasukan › Saluran › Jenis komuniti. |
| Siapa yang mengarkib saluran | Ahli saluran tidak lagi mengarkib saluran yang mereka sertai: pentadbir komuniti yang melakukannya. Di tempat kerja, pentadbir saluran (siapa pun yang menciptanya, dan mereka yang dilantik sebagai pentadbir) juga akan mengarkibnya. Ini mengubah peranan skema sistem; skema kebenaran yang dibuat oleh pentadbir sistem untuk beberapa komuniti kekal seperti sedia ada. |
| Peranan Moderator dalam pratetapan susun atur | Peranan Moderators yang diterima oleh komuniti daripada pratetapan susun atur kini mendapat Buang orang, yang diperlukan untuk menamatkan masa dan membuang mereka. Hanya peranan yang masih tepat seperti yang dibuat oleh pratetapan akan berubah; peranan yang telah disunting oleh seseorang akan dibiarkan. |
| Peranan dengan Pentadbir | Peranan komuniti dengan suis Pentadbir dihidupkan kini memegang segala yang boleh dilakukan oleh pentadbir komuniti, seperti yang dinyatakan oleh suis tersebut, bukan hanya tetapan komuniti. |
| Had ahli | Bilangan Ahli Maksimum Per Komuniti (TeamSettings.MaxUsersPerTeam) berubah daripada 50, lalai lama, kepada 0 (tiada had). Nilai lain dikekalkan, dan begitu juga had yang ditetapkan dengan AM_TEAMSETTINGS_MAXUSERSPERTEAM. |
| Sambungan model | Pentadbir sistem mendapat pengurusan sambungan model, dan pentadbir komuniti (dan peranan dengan Pentadbir) mendapat pengurusan sambungan model komuniti mereka sendiri. Perkhidmatan AI aplikasi Ejen menjadi sambungan model seluruh pelayan, lihat di bawah. |
| Town Square menjadi General | Saluran lalai setiap komuniti dinamakan semula daripada town-square (Town Square) kepada general (General). Ia mengekalkan ID, ahli, mesej dan tetapannya, serta nama paparan yang dipilih oleh pentadbir. Pautan lama dan carian mengikut town-square masih membawa ke sana. Komuniti yang sudah mempunyai saluran bernama general, walaupun diarkib, akan mengekalkan town-square sebagai saluran lalainya, dan begitu juga komuniti yang town-square diarkib: log menamakan mereka, dan pentadbir mereka boleh menamakan semula saluran tersebut. |
| Kegemaran | Kategori bar sisi Favorites untuk semua orang dinamakan semula kepada Favourites, seperti yang kini dinyatakan dalam antara muka. Kategori yang dicipta oleh pengguna dengan nama tersebut dibiarkan. |
Perkhidmatan aplikasi Ejen
Kemas kini menyalin setiap perkhidmatan AI daripada apl Ejen ke sambungan model pada peringkat pelayan, yang dikongsi dengan setiap komuniti dan boleh digunakan oleh semua orang kecuali tetamu (hidupkan Tetamu juga untuk membenarkan mereka). Kunci disulitkan semasa pemindahan, jadi pelayan memerlukan kunci penyulitan AI: pada kluster yang failnya berada di S3, tetapkan AM_AI_ENCRYPTION_KEY dahulu, atau salinan akan menunggu sehingga permulaan seterusnya. Kemudian semak Konsol Sistem › AI › Sambungan model:
- Setiap sambungan mengekalkan ID perkhidmatannya, jadi ejen apl dan set terjemahan automatik yang ditetapkan kepada perkhidmatan Ejen masih dapat menemukannya.
- Perkhidmatan OpenAI, serasi OpenAI, Anthropic, Mistral, Cohere dan Gemini menjadi sambungan ke titik akhir serasi OpenAI (atau Anthropic) mereka. Perkhidmatan Azure menjadi sambungan ke titik akhir serasi OpenAI sumber: uji ia.
- Perkhidmatan AWS Bedrock, Google Vertex AI dan Cohere North, serta jenis yang tidak dikenali, ditandakan Perlu perhatian, dengan sebabnya. Kelayakan awan mereka tidak disalin: arahkan mereka ke titik akhir serasi OpenAI pembekal atau gerbang seperti LiteLLM, kemudian simpan.
- Perkhidmatan penanam menjadi model Penaman bagi sambungan dengan alamat dan kunci yang sama, atau sambungan miliknya sendiri. Perkhidmatan transkripsi mendapat model
whisper-1. - Apabila penulisan semula dan ringkasan belum mempunyai sambungan, mereka mendapat perkhidmatan dan model ejen lalai apl.
Tetapan dan data apl Ejen sendiri dibiarkan seperti sedia ada: ejennya terus menggunakan perkhidmatannya.
Perubahan lalai lain
- Panggilan: Mod ujian dimatikan dan Benarkan video dihidupkan secara lalai. Pilihan yang disimpan dalam konfigurasi dikekalkan. Panggilan juga mengikuti jenis komuniti (lihat Panggilan dan suara).
- Menempatkan mesej di bahagian atas adalah untuk pentadbir saluran, pentadbir dan moderator komuniti (dengan Urus mesej); ahli mesej terus atau kumpulan masih boleh.
- Saluran yang diarkibkan boleh menerima ahli baharu, yang membaca sejarah mereka. Tiada seorang pun yang memuat naik, bertindak balas atau mengubah apa-apa di dalamnya.
Berpindah daripada Mattermost
Antimatter menggunakan skema pangkalan data Mattermost dan menambah jadualnya sendiri, jadi ia boleh mengambil alih pangkalan data PostgreSQL dan fail pelayan Mattermost. Cuba pada salinan dahulu:
- Sandarkan pangkalan data Mattermost, storan failnya (
data/atau baldah S3) danconfig.json, kemudian hentikan Mattermost. - Pulihkan pangkalan data ke PostgreSQL Antimatter, atau arahkan Antimatter ke salinannya (
AM_SQLSETTINGS_DATASOURCE). - Salin fail ke storan Antimatter, kekalkan laluan mereka: ke baldah
antimatterdengan alat S3, atau kedata/dengan arkib pelepasan. - Guna semula tetapan anda: salin
config.json, atau pindahkan ke pangkalan data denganamctl --local config migrate(lihat Konfigurasi). Pemboleh ubah persekitaranMM_anda terus berfungsi; namakan semula kepadaAM_bila sesuai. - Mula Antimatter dan ikuti log semasa ia mengemas kini pangkalan data. Kemudian semak Konsol Sistem › Plagin › Pengurusan Plagin. Antimatter memasang binaannya sendiri untuk Panggilan, Buku Taktik, Kanban (Papan), Ejen dan integrasi apabila ia lebih baharu daripada versi yang dipasang. Jika Mattermost mempunyai versi yang lebih baharu bagi salah satunya, buang apl itu dan mulakan semula Antimatter, supaya binaannya sendiri dipasang.
- Set up push notifications again, with your own push proxy: Antimatter never sends notifications to Mattermost's push services, test or hosted, which only deliver to Mattermost's own apps. Until you change Pelayan Pemberitahuan Dorong, the server sends no push notifications (see Pemberitahuan Dorong).
Antimatter tidak menghubungi sebarang perkhidmatan yang dikendalikan oleh Mattermost, Inc. (lihat Sambungan ke perkhidmatan luar), walaupun konfigurasi anda masih menamakannya:
- pelayan notifikasi push di Mattermost dikekalkan dalam tetapan tetapi tidak pernah digunakan;
- Mattermost's addresses for the app marketplace (URL Pasaran) and for product notices are emptied;
- the app download links that were Mattermost's defaults (Pautan Laman Muat Turun Aplikasi Antimatter, Pautan Muat Turun Aplikasi Android and Pautan Muat Turun Aplikasi iOS) are replaced by the download pages of Antimatter's apps on GitHub; links you set yourself are kept;
- aplikasi Panggilan menggunakan pelayan STUN awam Cloudflare sebagai ganti pelayan Mattermost, tanpa mengubah tetapan yang disimpan (lihat Panggilan);
- semakan kemas kini keselamatan dan pelaporan kemalangan telah dibuang, dan begitu juga tetapan Konsol Sistem (Benarkan Amaran Keselamatan, Benarkan Diagnostik dan Pelaporan Ralat) serta halaman Notis.
Soket mod tempatan kini ialah /var/tmp/antimatter_local.socket; amctl juga mencuba /var/tmp/mattermost_local.socket yang lama. Mattermost hanya menyokong PostgreSQL dalam versinya yang terkini, dan begitu juga Antimatter: pindahkan pangkalan data MySQL ke PostgreSQL terlebih dahulu. Kembali ke Mattermost selepas Antimatter menaik taraf pangkalan data bermaksud memulihkan sandaran Mattermost anda.
Eksport dan import data
Format eksport pukal memindahkan data antara pelayan: keseluruhan pelayan, beberapa komuniti, atau beberapa saluran, dengan lampiran, gambar profil dan emoji tersuai jika anda menginginkannya.
# on the source server
amctl export create --team-name design --include-profile-pictures
amctl export list
amctl export download <export file> design.zip
# on the destination server
amctl import upload design.zip
amctl import list available
amctl import process <uploaded file> --imported-users active
Pantau kerja dengan amctl export job list dan amctl import job list. Untuk eksport komuniti atau saluran, --imported-users adalah wajib: active apabila orang berpindah ke pelayan ini, inactive apabila mengimport ke pelayan di mana mereka sudah mempunyai akaun, supaya akaun yang dibuat daripada padanan yang tidak pasti kekal tidak aktif sehingga seorang pentadbir menyemaknya. --destination-team-name mengimport ke komuniti sedia ada. Eksport dan import disimpan pada storan pelayan (ExportSettings.Directory, ImportSettings.Directory) selama 30 hari secara lalai.
Pada pelayan itu sendiri, antimatter export bulk dan antimatter import bulk --apply melakukan perkara yang sama daripada fail, tanpa API.