Varmuuskopiot ja päivitykset
Mitä varmuuskopioidaan, miten se palautetaan uuteen isäntäpalvelimeen, miten palvelin päivitetään ja miten Mattermost-palvelin tai yksittäinen yhteisö siirretään Antimatteriin.
Mitä varmuuskopioidaan
| Mikä | Sivuston compose-tiedoston avulla | Julkaisupaketin avulla | .deb- tai .rpm-paketin avulla |
|---|---|---|---|
| Tietokanta: viestit, käyttäjät, yhteisöt, kanavat ja sivuston compose-tiedoston avulla asetukset | volyymi antimatter_postgres, pg_dump:n avulla | PostgreSQL-tietokantasi | PostgreSQL-tietokantasi |
| Lähetetyt tiedostot, kuvat ja asennetut sovellukset | volyymi antimatter_files (S3-varasto) | FileSettings.Directory, oletuksena ./data/ | /var/lib/antimatter |
| Asetustiedosto | (tietokannassa) | config/config.json | /etc/antimatter/config/config.json |
| GIFit ja tarrat | volyymi antimatter_gifs | GIF-palvelun datakansio | /var/lib/gifs-server |
| Salaisuudet | .env (ja compose.override.yaml) | ympäristötiedostosi | /etc/antimatter/antimatter.env, /etc/gifs-server |
| TeK-salaväli, joka salaa malliyhteyksien avaimet | AM_AI_ENCRYPTION_KEY -muuttuja .env-tiedostossa (suositeltu) tai ai-encryption.key-tiedosto volyymissä antimatter_data | AM_AI_ENCRYPTION_KEY tai data/ai-encryption.key | AM_AI_ENCRYPTION_KEY -muuttuja antimatter.env-tiedostossa tai /var/lib/antimatter/data/ai-encryption.key |
Ilman TeK-salaväliä palautettu palvelin ei pysty lukemaan malliyhteyksien API-avaimia, ja jokainen avain on syötettävä uudelleen. Säilytä avaimen kopio erillään tietokannan varmuuskopioista, jotta varastettu varmuuskopio ei sisällä molempia. Katso Salaväli.
Tietokanta ja tiedostot kuuluvat yhteen: varmuuskopioi ne samanaikaisesti ja säilytä kopiot palvelimen ulkopuolella. Volyymien nimet alkavat compose-hankkeen nimellä antimatter (docker volume ls listaa ne).
Varmuuskopioi
compose.yaml-tiedoston kansio. Antimatterin pysäyttäminen ensin antaa täysin yhdenmukaisen kopion; varmuuskopio, joka otetaan, kun palvelin on käynnissä, on yleensä kelvollinen, mutta varmuuskopion aikana lähetetyt tiedostot voivat puuttua siitä.
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"
Jos et ole asettanut AM_AI_ENCRYPTION_KEY:ta, palvelimen avaintiedosto sijaitsee data-volyymissa, jonka yllä oleva silmukka tallentaa muiden tiedostojen kanssa. Parempi tapa on lisätä avaimen sisältö .env-tiedostoon, kuten Salausavain-osio ohjeistaa, ja säilyttää avaimen kopio erillään tietokantavarmuuskopioista.
Suorita tämä cronin kautta päivittäin varmuuskopioiden tekemiseksi ja kopioi backups/-hakemisto toiselle koneelle. Säilytä .env-tiedostojen kopiot yhtä turvallisesti kuin palvelin itse: ne sisältävät sen salasanat.
Jos haluat kopioida ladatut tiedostot esine kerrallaan (esimerkiksi toiseen S3-tallennuspaikkaan), käytä bucket-palvelun AWS-komentorakennetta:
docker compose run --rm -v "$PWD/backups/files:/backup" bucket \
"aws --endpoint-url http://files:9000 s3 sync s3://antimatter /backup"
Julkaisupaketin tapauksessa varmuuskopioi tietokanta pg_dump -Fc:lla sekä data/- ja config/-hakemistot tavallisilla työkaluillasi (data/ sisältää AI-avaintiedoston). Pakettien tapauksessa varmuuskopioi tietokanta samalla tavalla sekä hakemistot /etc/antimatter, /var/lib/antimatter, /etc/gifs-server ja /var/lib/gifs-server.
Palautus uuteen isäntäkoneeseen
Aseta compose.yaml, tallennettu .env ja varmuuskopiot uuteen hakemistoon, sitten:
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
Käytä samaa .env-tiedostoa: tallennuspaikan ja tietokannan on säilytettävä aiemmat salasanat, ja malliyhteydet vaativat saman AI-salausavaimen. Jos uuden isäntäkoneen osoite on toinen, päivitä SITE_URL (ja DOMAIN).
Testaa varmuuskopioitasi palauttamalla ne toiselle koneelle ajoittain.
Päivitys
data-volyymia: AI-avaintiedosto oli kontissa. Ennen uuden compose.yaml:n käyttöä ja jos .env-tiedostossa ei ole AM_AI_ENCRYPTION_KEY:tä, tallenna palvelimen luoma avain: echo "AM_AI_ENCRYPTION_KEY=$(docker compose exec -T antimatter cat /antimatter/data/ai-encryption.key)" >> .env. Jos komento ei löydä tiedostoa, mikään malliyhteys ei ole vielä tallentanut avainta.- Tee varmuuskopio.
- Vaihda
.env-tiedoston kuvan tunniste (ANTIMATTER_IMAGE), jos kiinnität sen, kuten suositellaan. - Hae ja käynnistä uudelleen:
docker compose pull docker compose up -d docker compose logs -f antimatter
Käynnistyksen yhteydessä palvelin päivittää tietokannan skeeman (seuraa etenemistä lokissa; suuressa palvelimessa tämä voi kestää useita minuutteja) ja asettaa kuvan mukana toimitettujen sovellusten uudemmat versiot. Jos käytät julkaisupakettia: pysäytä palvelin, korvaa kaikki paitsi config/, data/, logs/, plugins/ ja client/plugins/ -hakemistot uuden paketin sisällöllä ja käynnistä palvelin uudelleen. Jos käytät .deb- tai .rpm-pakettia, asenna uusi paketti ohjeen Paketin päivitys mukaisesti.
antimatter-next:stä takaisin antimatter:iin.Versiot
Antimatterin palvelin ilmoittaa, minkä Mattermost-pohjajärjestelmän versioon se perustuu (tällä hetkellä 12.0.0). GitHubissa julkaistujen versiojen, joiden mukana toimitetaan paketteja ja arkistot, on omat versionsa, beeta-vaiheessa 0.9.0-sarjassa: antimatter version -komento näyttää sen Rakennusnumerona. Kuvat rakennetaan uudelleen main-haaroista: antimatter-next joka yö (tagit nightly-<YYYYMMDD>) ja molemmat kuvat jokaisesta muutoksesta (tagit sha-<commit>). Kiinnitä jokin näistä tageista, päivitä harkiten ja pidä edellisen tagin tiedossa, jotta tiedät, mihin varuuskopioon se liittyy.
PostgreSQL:n pääversiot
Compose-tiedostossa käytetään postgres:17-alpine:a. Antimatter vaatii PostgreSQL 15:tä tai uudemman. PostgreSQL:n uudempi pääversio ei voi lukea edellisen version datahakemistoa: siirtyäksesi uuteen versioon, dumpaa tietokanta, käynnistä uusi versio uudella tilavuolla ja palauta dump siinä.
Päivitys versioon 0.9.0
Version 0.9.0 (tai 17.10.2026 tai sen jälkeen rakennetun kuvan) ensimmäinen käynnistys tekee muutaman kertaluonteisen muutoksen dataan. Jokainen näistä suoritetaan kerran ja kirjataan tietokantaan. Ne tuovat vanhan oletusarvon uuteen oletusarvoon, mutta jättävät ylläpitäjän valimat asetukset ennalleen. Seuraa näitä lokissa.
AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND=workplace. Päivitys määrittää jokaiselle yhteisölle sen tyypin tämän asetuksen arvon mukaan päivityshetkellä. Kilta-tyyppisissä yhteisöissä puhelu on oletuksena pois päältä kanavilla. Katso lisätietoja kohdasta Kilta vai työtila.| Mikä | Muutos |
|---|---|
| Yhteisöjen tyypit | Jokaiselle yhteisölle määritetään tyyppi, Kilta tai Työtila: se on Uusien yhteisöjen tyyppi -asetuksen (TeamSettings.DefaultCommunityKind) arvo ensimmäisen käynnistyksen yhteydessä. Jo määritetty tyyppi säilytetään. Yhteisön ylläpitäjät voivat muuttaa yhteisön tyyppiä myöhemmin kohdassa Tiimin asetukset › Yleiset. |
| Kuka arkistoi kanavat | Kanavien jäsenet eivät enää arkistoi kanavia, joissa he ovat: sen tekevät yhteisön ylläpitäjät. Työtilassa kanavan ylläpitäjät (kanavan luonut henkilö ja ne, jotka hän on nimittänyt ylläpitäjiksi) voivat myös arkistoida kanavan. Tämä muuttaa järjestelmän roolikaaviota; järjestelmänvalvojan joillekin yhteisöille luomat käyttöoikeuskaaviot jätetään ennalleen. |
| Mukautusmallien moderaattorirooli | Mukautusmallista saatu Moderators-rooli saa Poista henkilöitä-oikeuden, jota tarvitaan henkilöiden aikamittaukseen ja poistamiseen. Vain ne roolit, jotka ovat edelleen täsmälleen mallin luomaan muotoon, muuttuvat; jonkun muokkama rooli jätetään ennallaan. |
| Roolit, joissa on Ylläpitäjä | Yhteisön rooli, jossa Ylläpitäjä-valinta on päällä, sisältää nyt kaiken, mitä yhteisön ylläpitäjät voivat tehdä, kuten valinta sanoo, ei vain yhteisön asetuksia. |
| Jäsenten määrä | Yhteisön suurin jäsenten määrä (TeamSettings.MaxUsersPerTeam) muuttuu 50:stä, vanhasta oletusarvosta, arvoon 0 (ei rajaa). Muut arvot säilyvät, samoin AM_TEAMSETTINGS_MAXUSERSPERTEAM-muuttujalla asetettu raja. |
| Malliyhteydet | Järjestelmän ylläpitäjät saavat hallita malliyhteyksiä, ja yhteisöjen ylläpitäjät (ja roolit, joissa on Ylläpitäjä) hallitsevat oman yhteisönsä yhteyksiä. Agentti-sovelluksen tekoälypalvelut muuttuvat palvelimenlaajuisiksi malliyhteydeksi, ks. alla. |
| Town Square muuttuu Generaliksi | Kaikkien yhteisöjen oletuskanava nimetään uudelleen town-square (Town Square) -nimeltä general (General) -nimiseksi. Se säilyttää ID:n, jäsenet, viestit ja asetukset sekä ylläpitäjien valitseman näkyvän nimen. Vanhat linkit ja haku town-square -nimellä vievät silti siihen. Yhteisö, jolla on jo kanava nimeltä general (vaikka arkistoituna), säilyttää town-square -kanavan oletuskanavakseen, samoin yhteisö, jonka town-square -kanava on arkistoitu: lokit nimettävät ne, ja niiden ylläpitäjät voivat nimetä kanavat uudelleen. |
| Suosikit | Kaikkien sivupalkin Suosikit-kategoria nimetään uudelleen Suosikiksi, kuten käyttöliittymä nyt näyttää. Kategoriat, jotka ihmiset ovat luoneet tällä nimellä, jätetään sellaisiksi. |
Agentti-sovelluksen palvelut
Päivitys kopioi jokaisen Agentit-sovelluksen tekoälypalvelimen palvelinkohtaiseksi malliyhteydeksi, joka jaetaan kaikkien yhteisöjen kesken ja jota kaikki muut paitsi vieraat voivat käyttää (salli vieraidenkin käyttö ottamalla käyttöön Vierastakin). Avaimet salataan kopioinnin yhteydessä, joten palvelin tarvitsee tekoälyn salausavaimensa: jos käytössä on klusteri, jonka tiedostot ovat S3:ssa, aseta AM_AI_ENCRYPTION_KEY ensin, tai muuten kopiointi odottaa seuraavaa käynnistystä. Tarkista sen jälkeen Järjestelmäkonsoli › Tekoäly › Malliyhteydet:
- Jokainen yhteys säilyttää palvelun ID:n, joten sovelluksen agentit ja automaattikäännös, joka on asetettu Agentti-palveluun, löytävät sen silti.
- OpenAI-, OpenAI-yhteensopiva, Anthropic-, Mistral-, Cohere- ja Gemini-palvelut muuttuvat yhteydeksi niiden OpenAI-yhteensopivaan (tai Anthropicin) päätepisteeseen. Azure-palvelu muuttuu yhteydeksi resurssin OpenAI-yhteensopivaan päätepisteeseen: testaa se.
- AWS Bedrock-, Google Vertex AI- ja Cohere North-palvelut sekä tuntemattomat tyyppimerkitään Needs attention -tilaan syyn kanssa. Niiden pilvipalvelimen tunnus tiedot eivät kopioitua: osoita ne palveluntarjoajan OpenAI-yhteensopivaan päätepisteeseen tai välityspalveluun, kuten LiteLLM, ja tallenna.
- Sisäkkäisen palvelun muuttuu Embeddings -malliksi yhteydessä, jolla on sama osoite ja avain, tai omaksi yhteydeksi. Transkriptio-palvelu saa
whisper-1-mallin. - Kun uudelleenkirjoitus ja tiivistelmät eivät vielä ole yhteydessä, ne saavat sovelluksen oletusagentin palvelun ja mallin.
Agentit-sovelluksen agentit
Palvelinten jälkeen päivitys muuttaa jokaisen Agentit-sovelluksen agentin (nykyään Tekoälykeskustelu-sovelluksen) palvelinkohtaiseksi agentiksi samalle tilille: sen yhteys (kopioitu sen palvelimesta), malli, ohjeet, päättely, työkalukierrokset ja käyttöoikeudet. Palvelin vastaa näiden agenttien puolesta. Jos sovellus rajoitti agenttia tavalla, jota palvelimen agentit eivät tue (vastaavat kanavat, estolistat, attribuuttipohjainen käyttöoikeus), agentin käyttöoikeudet rajataan kyseisten kanavien jäseniin tai ei kenellekään, ja agentti merkitään huomioitavaksi. Sama koskee agenttia, jonka palvelimesta ei tullut yhteyttä. Tarkista ne kohdassa Järjestelmäkonsoli › Tekoäly › Malliyhteydet. Sovelluksen muut asetukset jätetään ennalleen.
Muiden oletusten muutokset
- Puhelut: Test mode on pois ja Enable video on oletusarvoisesti päällä. Valinta, joka on tallennettu asetustiedostoon, säilyy. Puhelut noudattavat myös yhteisön tyyppiä (katso Puhelut ja ääni).
- Viestien siirtäminen yläkantaan on kanavan ylläpitäjille, yhteisön ylläpitäjille ja modereille (jotka käyttävät Hallitse viestejä-toimintoa). Suoran viestin tai ryhmäviestin jäsenet voivat silti tehdä sen.
- Arkistoituun kanavaan voi liittyä uusia jäseniä, jotka voivat lukea sen historian. Kanavassa ei voi lähettää viestejä, reagoida niihin tai muuttaa mitään.
Siirtyminen Mattermostista
Antimatter käyttää Mattermostin tietokantarakennetta ja lisää siihen omia taulujaan, joten se voi ottaa haltuunsa Mattermost-palvelimen PostgreSQL-tietokannan ja tiedostot. Kokeile ensin kopiolla:
- Varmuuskopioi Mattermostin tietokanta, sen tiedostovarasto (
data/tai S3-astekaappi) jaconfig.json-tiedosto, ja pysäytä Mattermost. - Palauta tietokanta Antimatterin PostgreSQLiin, tai osoita Antimatterille sen kopio (
AM_SQLSETTINGS_DATASOURCE). - Kopioi tiedostot Antimatterin varastoon säilyttäen niiden polut: S3-työkalulla
antimatter-astekaappiin tai julkaisupakettiindata/-hakemistoon. - Käytä uudelleen asetuksiasi: kopioi
config.json-tiedosto tai siirrä se tietokantaan komennollaamctl --local config migrate(ks. Asetukset).MM_-ympäristömuuttujat toimivat yhä; nimeä neAM_-muuttujiksi, kun se on mahdollista. - Käynnistä Antimatter ja seuraa lokitietoa tietokannan päivityksen aikana. Tarkista sitten Järjestelmäkonsoli › Liiteohjelmat › Liiteohjelmien hallinta. Antimatter asentaa omat versioinsa Callsista, tekoälykeskustelusta ja integraatioista, jos ne ovat asennettua versiota uudempia, sekä Ohjekirjoista ja Kanban-tauluista (Boards), jos Mattermost-palvelimelle oli asennettu kumpikin niistä (kumpikaan ei enää sisälly uuteen palvelimeen: katso Sisäkkäiset sovellukset). Jos Mattermostissa oli jomman kumman sovelluksen uudempi versio, poista kyseinen sovellus ja käynnistä Antimatter uudelleen, jotta Antimatterin oma versio asennetaan.
- Aseta push-ilmoitukset uudelleen omalla push-välityspalvelimella: Antimatter ei koskaan lähetä ilmoituksia Mattermostin push-palveluihin, olipa kyseessä testipalvelin tai hosting-palvelin, sillä ne toimittavat ilmoitukset vain Mattermostin omiin sovelluksiin. Kunnes muutat Push-ilmoituspalvelin-asetusta, palvelin ei lähetä push-ilmoituksia (ks. Push-ilmoitukset).
Antimatter ei ota yhteyttä Mattermost, Inc.:n ylläpitämiin palveluihin (ks. Yhteydet ulkoisiin palveluihin), vaikka asetuksissasi olisi sellaisia mainittu:
- Mattermostin push-ilmoituspalvelin säilyy asetuksissa, mutta sitä ei koskaan käytetä;
- Mattermostin osoitteet sovelluskauppaan (Kaupan URL) ja tuotetiedotteisiin tyhjennetään;
- sovellusten latauslinkit, jotka olivat Mattermostin oletusarvot (Antimatter Apps Download Page Link, Android-sovelluksen latauslinkki ja iOS-sovelluksen latauslinkki), on korvattu Antimatterin sovellusten GitHub-lataussivuilla; itse asettamasi linkit säilytetään;
- Puhelut-sovellus käyttää Cloudflaren julkista STUN-palvelinta Mattermostin sijaan, mutta tallennettua asetusta ei muuteta (ks. Puhelut);
- tietoturvapäivitysten tarkistus ja kaatumisraportointi on poistettu, ja samoin niiden Järjestelmäkonsolin asetukset (Enable Security Alerts, Enable Diagnostics and Error Reporting) sekä Ilmoitukset-sivu.
Paikallisen tilan pistorasia on nyt /var/tmp/antimatter_local.socket; amctl yrittää myös vanhan /var/tmp/mattermost_local.socket. Mattermost tukee nykyisissä versioissaan vain PostgreSQL-tietokantaa, ja Antimatter samoin: siirrä MySQL-tietokanta ensin PostgreSQLiin. Paluu Mattermostiin Antimatterin tietokannan päivityksen jälkeen vaatii Mattermost-varuksen palauttamisen.
Vie ja tuo dataa
Eräviennin formaatti siirtää dataa palvelimien välillä: koko palvelimen, jonkin yhteisön tai jonkin kanavan, liitteineen, profiilikuvineen ja mukautetuine emojineen, jos haluat.
# 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
Seuraa tehtäviä komennoilla amctl export job list ja amctl import job list. Yhteisön tai kanavan viennissä --imported-users on pakollinen: active, jos ihmiset siirtyvät tälle palvelimelle, inactive, kun tuodaan palvelimelle, jossa heillä on jo tilejä, jolloin epävarmoista osumista luodut tilet pysyvät poissa, kunnes ylläpitäjä tarkistaa ne. --destination-team-name tuo olemassa olevaan yhteisöön. Viennit ja tuonnit säilytetään palvelimen tallennustilassa (ExportSettings.Directory, ImportSettings.Directory) oletusarvoisesti 30 päivää.
Itse palvelimella komennot antimatter export bulk ja antimatter import bulk --apply tekevät saman tiedostoista ilman API:ta.
Kanavan rivi vientitiedostossa sisältää sen tyypin ja asetukset (am_type, am_mode, am_root_posts ja foorumeilla am_forum_view); rivi, jossa näitä ei ole, tuodaan tavallisena tekstimuotoisena Chat-kanavana. Foorumikanavan juurviestin rivi vaatii kentän props.am_thread_title, joka on ketjun otsikko; jos sitä ei ole, tuonti epäonnistuu kyseiseltä riviltä.