# Upgraden

> Werk een installatie bij naar een nieuwe release en bekijk wat je moet wijzigen bij de overstap van 2.1.0 naar 2.2.0.

Een update vervangt de PentAGI-images en, wanneer de release ze heeft gewijzigd, de compose-bestanden. Je `.env` en de datavolumes blijven behouden, en databasemigraties worden uitgevoerd wanneer PentAGI start.

## [Voordat je begint](https://pentagi.com/nl/docs/deployment/upgrade/#before-you-start)

* Lees de [release-opmerkingen](https://pentagi.com/changelog/) van elke versie na degene die je draait; sinds 2.1.0 bevatten ze upgrade-instructies.
* Maak een back-up van de database. Zowel de installer als PentAGI doet dit niet, en migraties kunnen niet worden teruggedraaid zonder gegevensverlies. Met de standaard `PENTAGI_POSTGRES_USER` en `PENTAGI_POSTGRES_DB`:

  ```bash
  docker exec pgvector pg_dump -U postgres -Fc pentagidb > pentagi-backup.dump
  ```

  Bewaar ook kopieën van `.env` en de compose-bestanden: de installer vervangt compose-bestanden zonder back-up.
* Rond de [flows](https://pentagi.com/nl/docs/glossary/#flow) af die je niet langer nodig hebt. Een [sandbox](https://pentagi.com/nl/docs/glossary/#sandbox) die nog draait, wordt hergebruikt zoals deze is gemaakt, met de instellingen van de release die deze heeft aangemaakt.
* Als je komt vanaf 2.1.0, pas dan de wijzigingen in [Van 2.1.0 naar 2.2.0](#from-210-to-220) toe op `.env` en de bestanden ernaast voordat de nieuwe release start. Met Google- of GitHub-aanmelding ingeschakeld, maak `OAUTH_GOOGLE_CLIENT_ID` en `OAUTH_GITHUB_CLIENT_ID` nu leeg; de sectie legt uit waarom.

## [Docker Compose](https://pentagi.com/nl/docs/deployment/upgrade/#docker-compose)

1. Download de compose-bestanden van de nieuwe release naast je `.env`: `docker-compose.yml` en het bestand van elke optionele stack die je draait. De PentAGI-container ontvangt alleen de variabelen die in het bijbehorende compose-bestand staan vermeld, dus nieuwe instellingen in `.env` hebben geen effect achter een ouder bestand.

   ```bash
   cd ~/pentagi
   curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose.yml
   # and the file of each optional stack you run, for example:
   curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose-langfuse.yml
   ```

2. Haal de images op en start opnieuw, met dezelfde `-f`-bestanden waarmee je de stack start. Zonder `pull` houdt `up -d` de images die al op de host staan.

   ```bash
   docker compose pull && docker compose up -d
   ```

3. Vernieuw de sandbox-image op de Docker-host die de flows draait, wat `docker compose pull` niet doet. Flows die daarna worden gemaakt, gebruiken deze.

   ```bash
   docker pull vxcontrol/kali-linux
   ```

De `latest`-imagetag volgt de main-branch. Om op één release te blijven, stel je `PENTAGI_IMAGE=vxcontrol/pentagi:<version>` in in `.env`.

## [Installer](https://pentagi.com/nl/docs/deployment/upgrade/#installer)

1. Download de installer van de nieuwe release van [Quick start](https://pentagi.com/nl/docs/getting-started/quickstart/) en voer deze uit met je `.env`. De 2.1.0-installer kan zichzelf niet updaten.
2. Om de compose-bestanden te vervangen, wijzig je een instelling zodat **Apply Changes** in het menu verschijnt, kies deze optie en beantwoord `y` wanneer de installer de verouderde bestanden opsomt.
3. Voer in het onderhoudsmenu **Update PentAGI** uit om de nieuwe images op te halen, en **Update Worker Image** wanneer dit wordt aangeboden. **Update PentAGI** op zich behoudt de oude compose-bestanden.

## [Van 2.1.0 naar 2.2.0](https://pentagi.com/nl/docs/deployment/upgrade/#from-210-to-220)

### [Bestanden](https://pentagi.com/nl/docs/deployment/upgrade/#files)

* Het compose-bestand koppelt `example.bedrock.provider.yml` ernaast. De installer maakt dit aan; bij een handmatige installatie maak je het zelf aan, een leeg bestand is voldoende: `touch example.bedrock.provider.yml`.
* Vervang `docker-compose-langfuse.yml` als je Langfuse draait: het 2.1.0-bestand verwijst naar de `minio/minio`-image, die niet meer wordt gepubliceerd, waardoor `docker compose pull` hiermee faalt. Als je `.env` `MINIO_IMAGE=minio/minio:…` instelt, verwijder dan die regel.
* Voor de [knowledge graph](https://pentagi.com/nl/docs/glossary/#knowledge-graph) plaats je `examples/neo4j` uit de repository op `./neo4j` — Graphiti heeft zijn APOC-plugin nodig — en zie [Memory and knowledge](https://pentagi.com/nl/docs/concepts/memory/#knowledge-graph-optional) voor de modelpresets. `GRAPHITI_MODEL_NAME` wordt niet langer gelezen.
* Acht databasemigraties worden uitgevoerd bij de eerste start. `docker compose logs pentagi` toont "Database schema updated successfully" wanneer deze klaar zijn.

### [Aanmelden en toegang](https://pentagi.com/nl/docs/deployment/upgrade/#sign-in-and-access)

* Iedereen moet opnieuw aanmelden: sessies van 2.1.0 worden geweigerd. API-tokens blijven werken, en scripts melden zich af met `POST /api/v1/auth/logout`.
* Een API-token krijgt een 403-fout op de REST-routes `/users`, `/roles` en `/tokens`: beheer accounts, rollen en tokens vanuit een aangemelde browsersessie.
* Aanmelden via Google en GitHub meldt nu een door de [provider](https://pentagi.com/nl/docs/glossary/#provider) geverifieerd e-mailadres aan bij het bestaande account met dat adres, inclusief lokale accounts, met de rol van dat account. 2.1.0 kan het e-mailadres van een account niet wijzigen, dus als aanmelden is ingeschakeld, upgrade dan met `OAUTH_GOOGLE_CLIENT_ID` en `OAUTH_GITHUB_CLIENT_ID` leeg, verplaats `admin@pentagi.com` naar een adres dat je beheert onder **Settings → Account**, en schakel aanmelden vervolgens weer in. De **Reset Admin Password** van de installer vindt de administrator alleen via `admin@pentagi.com`.
* Achter een reverse proxy stel je `TRUSTED_PROXIES` in, anders delen alle gebruikers het IP-adres van de proxy en sluit één reeks mislukte aanmeldpogingen iedereen 15 minuten buiten — zie [Network exposure](https://pentagi.com/nl/docs/configuration/security/#network-exposure).

### [Sandboxes](https://pentagi.com/nl/docs/deployment/upgrade/#sandboxes)

* Met `DOCKER_INSIDE=true` — de 2.1.0 `.env`-template en installerstandaard — koppelde 2.1.0 de host Docker-socket in elke sandbox. 2.2.0 geeft [agents](https://pentagi.com/nl/docs/glossary/#agent) Docker-toegang alleen via een aparte daemon-set in `DOCKER_INSIDE_HOST`; zonder deze krijgen ze geen toegang, en het logboek vermeldt `sandbox DISABLED`. Met `DOCKER_INSIDE_HOST` stel je `DOCKER_SOCKET=` leeg in, anders wordt de `/var/run/docker.sock` van de template nog steeds gekoppeld. Zie [Worker node](https://pentagi.com/nl/docs/deployment/worker-node/).
* Rond de flows af die zijn gestart op 2.1.0: hun sandboxes behouden de oude socket-koppeling en mogelijkheden totdat de flow is voltooid.
* Laat `TENANT_ID` leeg: op een bestaande installatie wijst dit PentAGI naar een nieuw, leeg schema.

### [Modellen en prompts](https://pentagi.com/nl/docs/deployment/upgrade/#models-and-prompts)

* De custom provider vereist `LLM_SERVER_KEY`: met een lege sleutel is deze uitgeschakeld, dus stel voor een server zonder authenticatie een willekeurige niet-lege waarde in.
* `LLM_SERVER_LEGACY_REASONING` is verwijderd. De custom provider stuurt `reasoning_effort` en zet een `reasoning.max_tokens`-budget om in een effort level; op Kimi K2, GLM vóór 5.2 en MiniMax M-modellen zorgt een budget nu voor een mislukte call, dus verwijder het bij die agents.
* In providerconfiguratiebestanden krijgt een agent-entry die `max_tokens`, `temperature`, `top_p` of `n` leeg laat nu de standaarden van het providertype in plaats van niets te verzenden.
* Ingebouwde standaardmodellen zijn gewijzigd voor elke provider behalve Bedrock; providers die zijn opgeslagen in **Settings → Providers** behouden hun modellen. Vijf configuraties die in de image zijn gebundeld, hebben gewijzigde modellen — `openrouter`, `deepinfra`, `ollama-cloud`, `moonshot` en `deepseek`. Als `LLM_SERVER_CONFIG_PATH` of `OLLAMA_SERVER_CONFIG_PATH` naar een van deze verwijst onder `/opt/pentagi/conf/`, bewaar dan het 2.1.0-bestand op de host en koppel het als de custom- of Ollama-configuratie.
* Met `EMBEDDING_URL` op een andere server dan die van OpenAI, stel je `EMBEDDING_KEY` in: `OPEN_AI_KEY` wordt daar niet langer verzonden.
* Agents zoeken via één `web_search`-tool. Custom prompts met `{{.GoogleToolName}}` en de andere per-engine variabelen worden genegeerd, met een waarschuwing in het logboek, totdat ze `{{.WebSearchToolName}}` gebruiken; baseer custom searcher- en pentester-prompts opnieuw op de nieuwe standaarden.

### [Andere wijzigingen](https://pentagi.com/nl/docs/deployment/upgrade/#other-changes)

* Binnen twee minuten na het starten en daarna elke drie uur rapporteert PentAGI zijn versie en een samenvatting van de installatie aan `update.pentagi.com`; [Update check](https://pentagi.com/nl/docs/configuration/security/#update-check) somt op wat wordt verzonden, en `UPDATE_CHECK_INTERVAL=0` schakelt dit uit.
* De profiler luistert niet langer op poort 7777 tenzij `PPROF_ADDR` is ingesteld.
* Nieuwe optionele instellingen omvatten [provider failover](https://pentagi.com/nl/docs/configuration/llm-providers/#failover) met `LLM_FALLBACK_PROVIDER`, `DOCKER_PORTS_BASE` voor [several instances](https://pentagi.com/nl/docs/deployment/production/#several-instances-tenant_id), `DOCKER_IMAGE_SELECTION_MODE` en `DOCKER_ALLOWED_IMAGES`, de interne [search engine](https://pentagi.com/nl/docs/glossary/#search-engine) `WEB_SEARCH_INTERNAL_ENABLED`, en de Mistral-, xAI-, MiniMax- en Firecrawl-sleutels.

## [Back-up en rollback](https://pentagi.com/nl/docs/deployment/upgrade/#back-up-and-roll-back)

PentAGI voert migraties nooit achterstevoren uit, en handmatig uitvoeren verwijdert gegevens, dus de weg terug naar 2.1.0 is de back-up. Stop de services die de database gebruiken, maak deze opnieuw aan en herstel de dump:

```bash
docker compose stop pentagi pgexporter
docker exec pgvector dropdb -U postgres pentagidb
docker exec pgvector createdb -U postgres pentagidb
docker exec -i pgvector pg_restore -U postgres -d pentagidb < pentagi-backup.dump
```

Plaats daarna de opgeslagen `.env` en compose-bestanden terug, stel `PENTAGI_IMAGE=vxcontrol/pentagi:2.1.0` in en start de stack. Behoud de nieuwe `docker-compose-langfuse.yml`: de MinIO-image van het 2.1.0-bestand kan niet meer worden opgehaald.