Oppdateringer og skalering
Dag to-operasjoner: få nye utgivelser i, og gi Kanera mer plass etter hvert som teamet vokser.
Oppdateringer
Hver Kanera-utgivelse er en merket versjon som v1.9.0 Med sin egen docker-compose.yml. Oppdatering betyr å bytte i den nye utgivelsens komponere fil og trekke dens bilder. Du kan hoppe over utgivelser: går fra v1.9.0 rett til v1.12.0 er greit, fordi hver ventende databaseoverføring kjører i rekkefølge under oppdateringen.
Oppdater til den nyeste versjonen
Fra din kanera katalog på serveren:
docker compose exec -T postgres pg_dump -U kanera kanera | gzip > kanera-$(date +%F).sql.gz
cp docker-compose.yml docker-compose.previous.yml
curl -fsSLo docker-compose.yml https://github.com/happendev/Kanera/releases/latest/download/docker-compose.yml
docker compose pull
docker compose up -d
docker compose logs migrate
Før du kjører den, les Utgivelsesnotater En endring som krever handling, for eksempel en ny innstilling eller en engangstilkobling, er oppført under utgivelsen som introduserte den, så å gå fra v1.9.0 til v1.12.0 betyr å lese 1.10.0, 1.11.0 og 1.12.0 notatene.
Hvis du vil flytte til en bestemt utgivelse i stedet for den nyeste, laster du ned den komponere filen etter tag:
curl -fsSLo docker-compose.yml https://github.com/happendev/Kanera/releases/download/v1.9.0/docker-compose.yml
Sjekk hvilken versjon du kjører
docker compose images api
Den TAG kolonnen viser utgivelsen, for eksempel 1.9.0Den første linjen av docker-compose.yml Navnene også.
Før oppdatering
- Sikkerhetskopier databasen og opplastinger. Den
pg_dumpDen dekker hele databasen, ogkanera_uploadsvolumet trenger sin egen kopi. Behold begge, pluss.env, fra serverens primære disk. Se Lagring og sikkerhetskopiering. - Behold den forrige komponere filen. Den
cpOvenfor er det somdocker-compose.previous.ymlDet er det du trenger for å rulle tilbake. - Hold endringene dine ute av
docker-compose.yml. Oppdateringen erstatter filen. Sette porter, ekstra nettverk eller andre lokale endringer i endocker-compose.override.ymlved siden av den; Komponer fusjonerer den automatisk og oppdateringer la det være alene. - Sørg for at den nåværende distribusjonen er sunn. En oppdatering bør ikke skjule en eksisterende database, lagring eller ruting problem.
Sjekk oppdateringen
docker compose images api
docker compose ps --all
docker compose logs --tail=100 api worker public-api mcp
curl https://kanera.example.com/api/health
Den api Bildet skal vise den nye versjonen, og migrate skal vises som avsluttet med kode 0. Sjekk også de offentlige API- og MCP-helseendepunktene hvis du utsetter dem. Logg deretter på, åpne et fylt tavle og opprett og slett et midlertidig kort.
Hvis en oppdatering mislykkes
- Migrasjonen startet ikke: fikse Compose eller miljøfeil og kjøre på nytt
docker compose up -d. - Migrasjonen mislyktes: holde loggene og sikkerhetskopien, og ikke kjøre den på nytt flere ganger uten å forstå feilen. Åpne et problem med
migratelogger. - Du må gå tilbake: en eldre versjon kan ikke kjøre mot en database den nyere har migrert. Stopp Kanera (
docker compose down), gjenopprette pre-oppdateringsdatabasen og opplastinger sammen, sette forrige komponere filen tilbake (mv docker-compose.previous.yml docker-compose.yml), og løpdocker compose up -d. - Aldri gjenopprett en sikkerhetskopi over en nyere versjon som kjører. Test gjenopprettingsprosedyren på en egen database eller vert før du stoler på den.
Skalering av notater
Standarddistribusjonen bruker flere app API-replikaer og én arbeider.
API_REPLICASkontrollerer antall API-prosesser for apper.2.PUBLIC_API_REPLICASkontrollerer antall offentlige API-prosesser.1.MCP_REPLICASkontrollerer antall MCP- prosesser. Standardverdi for1.- Behold
workerPå nøyaktig1. - Valkey er nødvendig for sanntidsutvidelse, tilstedeværelse og delte rategrenser.
Hev kopier bare når serveren har nok CPU-, minne- og databasetilkoblingskapasitet. Hvis du øker API_REPLICAS, gjennomgang PG_POOL_MAX og PostgreSQL max_connections.
Den enkelte arbeideren er bevisst. Den kjører planleggere, varsling og webhook levering og oppryddingsjobber, og en annen kopi vil duplisere det arbeidet i stedet for å dele det. Hvis leveringen faller bak, se på database og utgående nettverkskapasitet før du vurderer flere arbeidsprosesser.