Biztonsági mentések és frissítések
Mit kell menteni, hogyan állítható vissza új gazdagépen, hogyan frissíthető, és hogyan helyezhető át egy Mattermost-szerver vagy egy közösség Antimatterre.
Mit kell menteni
| Mit | A site compose-fájllal | Kiadási archívummal | A .deb vagy .rpm csomag használata esetén |
|---|---|---|---|
| Az adatbázis: üzenetek, felhasználók, közösségek, csatornák és, a site compose-fájllal, a konfiguráció | antimatter_postgres kötet, pg_dump segítségével | PostgreSQL-adatbázis | PostgreSQL-adatbázis |
| Feltöltött fájlok, képek és telepített alkalmazások | antimatter_files kötet (az S3-tárhely) | FileSettings.Directory, alapértelmezetten ./data/ | /var/lib/antimatter |
| A konfigurációs fájl | (az adatbázisban) | config/config.json | /etc/antimatter/config/config.json |
| GIF-ek és matricák | antimatter_gifs kötet | a GIF-szolgáltatás adattárhelye | /var/lib/gifs-server |
| Titkok | .env (és compose.override.yaml) | környezeti fájl | /etc/antimatter/antimatter.env, /etc/gifs-server |
| Az AI titkosítási kulcs, amely a modellkapcsolatok kulcsait titkosítja | AM_AI_ENCRYPTION_KEY a .env fájlban (ajánlott), vagy az ai-encryption.key fájl az antimatter_data kötetben | AM_AI_ENCRYPTION_KEY, vagy data/ai-encryption.key | AM_AI_ENCRYPTION_KEY az antimatter.env fájlban, vagy /var/lib/antimatter/data/ai-encryption.key |
Az AI titkosítási kulcs nélkül a visszaállított szerver nem tudja beolvasni a modellkapcsolatok API-kulcsait, és mindegyiket újra be kell gépelni. Tartsd meg a kulcs egy másolatát a adatbázis mentésektől elkülönítve, hogy egy ellopott mentés ne tartalmazza mindkettőt. Lásd: A titkosítási kulcs.
Az adatbázis és a fájlok egymáshoz tartoznak: egyszerre mentse őket, és tartsa a másolatokat a szerveren kívül. A kötetnevek a compose-projekt névvel kezdődnek, antimatter (docker volume ls sorolja fel őket).
Biztonsági mentés
A compose.yaml könyvtárából. Az Antimatter előzetes leállítása teljesen konzisztens másolatot eredményez; a futás közben készített mentés általában rendben van, de a mentés idején feltöltött fájlok hiányozhatnak belőle.
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"
Ha nem állítottad be az AM_AI_ENCRYPTION_KEY értéket, a szerver kulcsfájlja a data kötetben található, amelyet a fenti ciklus a többi fájllal együtt ment. Jobb, ha a tartalmát a .env fájlban tárolod, ahogy a A titkosítási kulcs rész ismerteti, és tartsd meg a kulcs egy másolatát a adatbázis mentésektől elkülönítve.
Futtassa cronból napi mentésekhez, és másolja a backups/ könyvtárat másik gépre. A .env másolatait ugyanolyan biztonságban tartsa, mint a szervert: azok tartalmazzák a jelszavakat.
Ha a feltöltött fájlokat objektumonként szeretné másolni (például másik S3-tárhelyre), használja a bucket szolgáltatás AWS parancssori eszközét:
docker compose run --rm -v "$PWD/backups/files:/backup" bucket \
"aws --endpoint-url http://files:9000 s3 sync s3://antimatter /backup"
Kiadási archívum esetén a pg_dump -Fc paranccsal mentse az adatbázist, a data/ és config/ könyvtárakat pedig a szokásos eszközeivel (data/ tartalmazza az AI kulcsfájlt). Csomagok esetén az adatbázist ugyanígy mentse, valamint a /etc/antimatter, /var/lib/antimatter, /etc/gifs-server és /var/lib/gifs-server könyvtárakat is.
Visszaállítás új gazdagépen
Helyezze el a compose.yaml-t, a mentett .env-t és a biztonsági mentéseket egy új könyvtárban, majd:
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
Használd ugyanazt a .env fájlt: a tárhelynek és az adatbázisnak meg kell őriznie a korábbi jelszavait, a modellkapcsolatoknak pedig ugyanaz az AI titkosítási kulcs kell. Ha az új gazdagépnek más a címe, frissítsd a SITE_URL (és a DOMAIN) értéket.
Időnként állítsa vissza a biztonsági mentéseket másik gépen, hogy tesztelje őket.
Frissítés
data kötetet: az AI kulcsfájl a konténerben volt. Mielőtt a új compose.yaml fájlt használnád, és ha a .env fájl nem tartalmazza az AM_AI_ENCRYPTION_KEY értéket, mentsd el a szerver által generált kulcsot: echo "AM_AI_ENCRYPTION_KEY=$(docker compose exec -T antimatter cat /antimatter/data/ai-encryption.key)" >> .env. Ha a parancs nem talál fájlt, az azt jelenti, hogy eddig egyetlen modellkapcsolat sem mentett el kulcsot.- Készítsen biztonsági mentést.
- Módosítsa a
.envfájlban lévő képküszöböt (ANTIMATTER_IMAGE), ha rögzített verziót használ, ahogy ajánlott. - Húzza le és indítsa újra:
docker compose pull docker compose up -d docker compose logs -f antimatter
Induláskor a szerver frissíti a adatbázis sémét (a folyamatot a naplóban követheted; nagyobb szervereknél ez több percet is igénybe vehet), és telepíti a képhez csatolt alkalmazások újabb verzióit. Kiadási archívum esetén: állítsd le a szervert, cseréld le mindent, kivéve a config/, data/, logs/, plugins/ és client/plugins/ mappákat, az új archívum tartalmával, majd indítsd újra. .deb vagy .rpm csomag esetén telepítsd az új csomagot úgy, ahogy a Csomag frissítése rész ismerteti.
antimatter-next-ről a antimatter-re való átvándorlásra is.Verziók
Az Antimatter szerver jelzi, melyik Mattermost verziósávon alapul (jelenleg a 12.0.0). A GitHubon megjelenő kiadások, archívumaikkal és csomagjaikkal, saját verziószámokkal rendelkeznek, a béta alatt a 0.9.0 sorozatban: az antimatter version parancs ezt a Kiadás száma mezőben mutatja. A képeket a main ágakból állítják elő: az antimatter-next éjszaka (címkék: nightly-<YYYYMMDD>), mindkét kép pedig minden módosításnál (címkék: sha-<commit>). Rögzítsd (pin) az egyik címkét, szándékosan frissíts, és jegyezd fel az előző címkét, hogy tudd, melyik mentés tartozik hozzá.
PostgreSQL főverziók
A compose fájl a postgres:17-alpine verziót használja. Az Antimatter PostgreSQL 15 vagy újabb verziót igényel. Egy új PostgreSQL főverzió nem tudja beolvasni a korábbi verzió adatkönyvtárát: az átvándorláshoz készíts dumpot az adatbázisról, indítsd el az új verziót egy új köteten, és állítsd vissza a dumpot ebbe.
Frissítés a 0.9.0 verzióra
A 0.9.0 verzió (vagy a 2026. október 17-től készült képek) első indításakor néhány egyszeri módosítás történik az adatokban. Mindegyik csak egyszer fut le, és rögzítésre kerül az adatbázisban. Ezek azokat az értékeket állítják át a régi alapértelmezésről az új alapértelmezésre, amelyeknél az adminisztrátor nem állított be egyéni beállítást. A folyamatot a naplóban követheted.
AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND=workplace. A frissítés minden közösséghez hozzárendeli azt a típust, amely ekkor érvényes, és a Közösség típusú közösségek csatornáiban a hívások alapértelmezés szerint kikapcsolva maradnak. Lásd: Munkahely vagy közösség.| Mit | A módosítás |
|---|---|
| Közösségtípusok | Minden közösséghez hozzárendelnek egy típust: Közösség vagy Munkahely, az első indításkor érvényben lévő Új közösségek típusa (TeamSettings.DefaultCommunityKind) értéke alapján. Egy már beállított típus megmarad. A közösség-adminisztrátorok később is módosíthatják a közösség típusát a Csapatbeállítások › Csatornák › Közösség típusa menüpontban. |
| Ki archiválhatja a csatornákat | A csatorna-tagok már nem archiválhatják a csatornáikat: ezt a közösség adminisztrátorai teszik. Munkahelyi környezetben a csatorna adminisztrátorai (az, aki létrehozta, és azokat, akiket adminisztrátorrá neveztek ki) is archiválhatják. Ez a rendszereséma szerepeit módosítja; a rendszeradminisztrátor által egyes közösségekhez létrehozott jogosultságesémák változatlanul maradnak. |
| A elrendezési sablonok Moderators szerepe | A közösségek elrendezési sablonból kapott Moderators szerepét kiegészíti a Emberek eltávolítása jogosultsággal, amelyre a tagok ideiglenes kitiltásához és eltávolításához szükség van. Csak azok a szerepek változnak, amelyek pontosan a sablon szerinti állapotban maradtak; a felhasználó által szerkesztett szerepek változatlanul maradnak. |
| Az Administrator jogosultsággal rendelkező szerepek | A közösségi szerep, amelynek az Administrator kapcsolója be van kapcsolva, mostantól minden olyan műveletet végezhet, amelyet a közösség adminisztrátorai végezhetnek, ahogy a kapcsoló is jelzi, nem csak a közösségi beállítások kezelését. |
| A tagok számai korlát | A Maximális tagok száma közösségenként (TeamSettings.MaxUsersPerTeam) alapértelmezése 50-ről 0-ra (korlát nélkül) változik. Minden más érték, valamint a AM_TEAMSETTINGS_MAXUSERSPERTEAM környezeti változóval beállított korlát változatlanul marad. |
| Modellkapcsolatok | A rendszeradminisztrátorok a modellkapcsolatok kezelését kapják meg, a közösségi adminisztrátorok (és az Administrator jogosultsággal rendelkező szerepek) pedig a saját közösségükéit. Az Agents alkalmazás AI-szolgáltatásai szerver-szintű modellkapcsolatokká válnak, lásd alább. |
| A Town Square átnevezése Generalre | Minden közösség alapértelmezett csatornáját átnevezzük town-square (Town Square) névről general (General) névre. Megőrzi az azonosítóját, tagjait, üzeneteit és beállításait, valamint az adminisztrátorok által választott megjelenő nevet. A régi, town-square névre mutató hivatkozások továbbra is ide vezetnek. Ha egy közösségnek már van general nevű csatornája (még akkor is, ha archiválva van), akkor a town-square marad az alapértelmezett csatorna; ugyanez igaz, ha a town-square archiválva van: a napló feljegyzi ezeket, és az adminisztrátorok átnevezhetik a csatornákat. |
| Kedvencek | Minden felhasználó Kedvencek (Favorites) oldalsáv-kategóriáját átnevezzük Kedvencekre (Favourites), ahogy a felület most is jelzi. Azok a kategóriák, amelyeket a felhasználók ezzel a névvel hoztak létre, változatlanul maradnak. |
Az Agents alkalmazás szolgáltatásai
A frissítés az Agents alkalmazás minden AI-szolgáltatását szerver-szintű modellkapcsolattá másolja, amelyet minden közösség megoszt, és mindenki használhat, kivéve a vendégek (a Vendégek is bekapcsolásával ők is). A kulcsok titkosítva kerülnek átvitelre, ezért a szervernek szüksége van az AI titkosítási kulcsára: S3-ban tárolt fájlokkal rendelkező klaszter esetén először állítsa be az AM_AI_ENCRYPTION_KEY értéket, különben a másolás a következő indítást várja. Ezután ellenőrizze a Rendszerkonzol › AI › Modellkapcsolatok menüpontot:
- Minden kapcsolat megtartja a hozzá tartozó szolgáltatás azonosítóját, így az alkalmazás ügynökei és az Agents-szolgáltatáshoz beállított automatikus fordítás továbbra is megtalálja azt.
- Az OpenAI, OpenAI-kompatibilis, Anthropic, Mistral, Cohere és Gemini szolgáltatások a megfelelő OpenAI-kompatibilis (vagy Anthropic) végpontokhoz kapcsolódnak. Az Azure-szolgáltatás a erőforrás OpenAI-kompatibilis végpontjához kapcsolódik: tesztelje.
- Az AWS Bedrock, Google Vertex AI és Cohere North szolgáltatások, valamint az ismeretlen típusok Figyelmet igényel jelzéssel látnak el, az okukkal együtt. A felhő-hitelesítő adatok nem másolódnak át: állítsa be őket a szolgáltató OpenAI-kompatibilis végpontjára vagy egy kapura, például a LiteLLM-re, majd mentse.
- A beágyazási (embedding) szolgáltatás a ugyanazon címmel és kulccsal rendelkező kapcsolat Beágyazások modelljévé válik, vagy saját kapcsolatot kap. A feliratozási (transzkripciós) szolgáltatás a
whisper-1modellt kapja. - Ha a szövegátírásnak (rewrite) és a összefoglalóknak (recaps) még nincs kapcsolata, akkor az alkalmazás alapértelmezett ügynökének szolgáltatását és modelljét kapják.
Az Agents alkalmazás saját beállításai és adatai változatlanok maradnak: az ügynökei továbbra is a saját szolgáltatásait használják.
Egyéb alapértelmezések módosítása
- Hívások: a Próbaüzem alapértelmezés szerint kikapcsolva, a Videó engedélyezése pedig bekapcsolva van. A konfigurációban mentett választás megmarad. A hívások a közösség típusát is követik (lásd: Hívások és hang).
- Az üzenetek tetejére kitűzése a csatorna adminisztrátorainak, a közösség adminisztrátorainak és moderátorainak (a Üzenetek kezelése jogosultsággal) jár; a közvetlen vagy csoportos üzenetek tagjai továbbra is tehetik ezt.
- Az archivált csatornák új tagokat vehetnek fel, akik elolvashatják az előzményeket. Senki nem posztol, nem reagál és nem módosít semmit bennük.
Átvándorlás Mattermostból
Az Antimatter a Mattermost adatbázis-sémáját használja, és saját táblákat ad hozzá, ezért átveheti egy Mattermost szerver PostgreSQL-adatbázisát és fájljait. Először egy másolaton próbáld ki:
- Készíts mentést a Mattermost-adatbázisról, a fájl-tárhelyéről (
data/vagy S3-böket) és aconfig.jsonfájlról, majd állítsd le a Mattermostot. - Állítsd vissza az adatbázist az Antimatter PostgreSQL-be, vagy mutasd rá az Antimattert annak egy másolatára (
AM_SQLSETTINGS_DATASOURCE). - Másold át a fájljait az Antimatter tárhelyére, megőrizve az útvonalaikat: S3-es eszközzel az
antimatterböketbe, vagy kiadási archívum esetén adata/mappába. - Használd újra a beállításaidat: másold át a
config.jsonfájlt, vagy mentsd át az adatbázisba aamctl --local config migrateparanccsal (lásd: Konfiguráció). AMM_környezeti változóid továbbra is működnek; ha alkalmas, nevezd át őketAM_előtagúra. - Indítsa el az Antimattert, és figyelje a naplót, amíg frissíti az adatbázist. Ezután ellenőrizze a Rendszerkonzol › Bővítmények › Bővítmény kezelés menüpontot. Az Antimatter saját verzióit telepíti a Hívások, Playbookok, Kanban (Táblák), Ügynökök és az integrációk számára, ha ezek újabbak, mint a telepített verzió. Ha a Mattermostban valamelyik bővítmény újabb verziója volt telepítve, távolítsa el azt, és indítsa újra az Antimattert, hogy a saját verziója kerüljön telepítésre.
- Állítsa be újra a push értesítéseket a saját push proxy szolgáltatásával: az Antimatter soha nem küld értesítéseket a Mattermost push szolgáltatásaihoz (se teszt, se hostolt verzióhoz), amelyek kizárólag a Mattermost saját alkalmazásaihoz juttatják el az értesítéseket. Amíg meg nem változtatja a Push értesítés szerver beállítást, a szerver nem küld push értesítéseket (lásd: Push értesítések).
Az Antimatter nem létesít kapcsolatot a Mattermost, Inc. által üzemeltetett szolgáltatásokkal (lásd: Kapcsolatok külső szolgáltatásokkal), még akkor sem, ha a konfigurációban még mindig szerepel valamelyik:
- a Mattermost push-értesítési szervere szerepel a beállításokban, de soha nem kerül használatba;
- A Mattermost piactér (Piactér URL) és a termékértesítések címmezése kiürül;
- a Mattermost alapértelmezett alkalmazás-letöltési linkei (Antimatter Apps Download Page Link, Android App letöltő linkje és iOS App letöltő link) az Antimatter GitHubon található alkalmazásainak letöltő oldalaira cserélődnek; a saját maga által beállított linkek megmaradnak;
- a Hívások alkalmazás a Mattermost helyett a Cloudflare nyilvános STUN szerverét használja, anélkül, hogy a mentett beállítást módosítaná (lásd: Hívások);
- a biztonsági frissítések ellenőrzése és a hibajelentés eltűnt, ahogy a hozzájuk tartozó Rendszerkonzol-beállítások (Biztonsági figyelmeztetések engedélyezése, Diagnosztika és hibajelentés engedélyezése) és a Közlemények oldal is.
A helyi mód szoketfájlja mostantól a /var/tmp/antimatter_local.socket; az amctl parancs a régi /var/tmp/mattermost_local.socket fájlt is megpróbálja. A Mattermost a legújabb verzióiban csak PostgreSQL adatbázist támogat, és az Antimatter is: először migrálja a MySQL adatbázist PostgreSQL-re. Ha az Antimatter adatbázis-frissítése után visszatér a Mattermosthoz, akkor a Mattermost mentését kell visszaállítania.
Adatok exportálása és importálása
A tömeges exportálási formátum a szerverek közötti adatátvitelt szolgálja: az egész szerver, egyes közösségek vagy csatornák adatait, csatolmányokkal, profilképekkel és egyedi emojikkal, ha ezeket is szeretné.
# 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
A amctl export job list és amctl import job list parancsokkal figyelheted a feladatokat. Közösségi vagy csatorna exportálás esetén a --imported-users paraméter megadása kötelező: active érték, ha a felhasználók átköltöznek erre a szerverre, inactive érték, ha olyan szerverre importálunk, ahol már van fiókjuk, így a bizonytalan egyezések alapján létrehozott fiókok addig inaktívak maradnak, amíg egy adminisztrátor nem ellenőrzi őket. A --destination-team-name paraméterrel meglévő közösségre importálhatsz. Az exportok és importok 30 napig tárolódnak a szerver tárhelyén (ExportSettings.Directory, ImportSettings.Directory).
A szerveren közvetlenül a antimatter export bulk és antimatter import bulk --apply parancsok végzik el ugyanezt fájlokból, API nélkül.