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

MitA site compose-fájllalKiadási archívummalA .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évelPostgreSQL-adatbázisPostgreSQL-adatbázis
Feltöltött fájlok, képek és telepített alkalmazásokantimatter_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ákantimatter_gifs köteta 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ítjaAM_AI_ENCRYPTION_KEY a .env fájlban (ajánlott), vagy az ai-encryption.key fájl az antimatter_data kötetbenAM_AI_ENCRYPTION_KEY, vagy data/ai-encryption.keyAM_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

A 2026. október 17. előtt letöltött Compose fájlok nem tartalmaztak 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.
  1. Készítsen biztonsági mentést.
  2. Módosítsa a .env fájlban lévő képküszöböt (ANTIMATTER_IMAGE), ha rögzített verziót használ, ahogy ajánlott.
  3. 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.

A frissítések csak előre irányulnak. Amint egy újabb szerververzió frissítette az adatbázist, a régebbi verzió már nem használhatja: a visszaváltáshoz állítsd vissza a frissítés előtt készített mentést. Ez a szabály éppúgy vonatkozik a 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.

Ha az Antimatter egy vállalat vagy szervezet számára készül, állítsd be a Új közösségek típusa mezőt a Munkahely értékre mielőtt frissítenéd: 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.
MitA módosítás
KözösségtípusokMinden 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ákatA 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 szerepeA 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ő szerepekA 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átA 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.
ModellkapcsolatokA 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 GeneralreMinden 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.
KedvencekMinden 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-1 modellt 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:

  1. Készíts mentést a Mattermost-adatbázisról, a fájl-tárhelyéről (data/ vagy S3-böket) és a config.json fájlról, majd állítsd le a Mattermostot.
  2. Állítsd vissza az adatbázist az Antimatter PostgreSQL-be, vagy mutasd rá az Antimattert annak egy másolatára (AM_SQLSETTINGS_DATASOURCE).
  3. Másold át a fájljait az Antimatter tárhelyére, megőrizve az útvonalaikat: S3-es eszközzel az antimatter böketbe, vagy kiadási archívum esetén a data/ mappába.
  4. Használd újra a beállításaidat: másold át a config.json fájlt, vagy mentsd át az adatbázisba a amctl --local config migrate paranccsal (lásd: Konfiguráció). A MM_ környezeti változóid továbbra is működnek; ha alkalmas, nevezd át őket AM_ előtagúra.
  5. 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.
  6. Á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.