---
url: https://flip-chart.ru/developers/en/on-premise/updates/instruction.md
description: >-
  Update flip on-premise to a new version with Docker Compose or Kubernetes
  (Helm), including the optional upgrade from PostgreSQL 14 to 15 via a database
  dump and restore.
---

# Updates

Images of all components (`flip-backend`, `flip-file-handlers`, `flip-frontend`, `flip-mcp-server`) are published to the `cr.yandex/crpbj8irels1kqult74e/onpremise` registry and versioned according to [Semantic Versioning](https://semver.org/) — `MAJOR.MINOR.PATCH`. All four components are released under the same version number and updated together.

::: danger Before updating

* Create a [database dump](/en/on-premise/other/dump-database).
* Check your configuration files against the release notes and make changes if needed.
  :::

Database migrations are applied automatically when the backend container starts.

## Docker Compose

1. Set the new version in `.env`:
   ```ini
   FLIP_VERSION=v1.3.0
   ```
2. Pull the images and restart the containers:
   ```bash
   docker compose pull
   docker compose up -d
   docker compose ps
   ```

## Kubernetes (Helm)

1. Set the new version in `values.yaml`, in the `image.tag` of each component: `backend`, `file-handlers`, `frontend`, `mcp-server`.
2. Apply the update:
   ```bash
   helm upgrade flip ./flip-chart-<chart version>.tgz -f values.yaml -n flip
   kubectl -n flip get pods
   ```

::: danger The latest tag
Use a specific version (`v1.2.0`), not `latest`.
:::

## Upgrading PostgreSQL 14 to 15

The application supports PostgreSQL 14 and 15; upgrading the DBMS is optional. The PostgreSQL 14 and 15 data formats are incompatible, so moving to 15 requires a migration via a dump. The commands are for a Standalone installation; for an external PostgreSQL, use `pg_dump`/`pg_restore` or `pg_upgrade`.

1. Stop the application services and create a dump on the current version (PostgreSQL 14):
   ```bash
   cd deploy/docker-compose
   docker compose stop flip-backend flip-file-handlers flip-mcp-server
   docker compose exec flip-postgres sh -c 'PGPASSWORD="$POSTGRES_PASSWORD" pg_dump -U "$POSTGRES_USER" -d "$POSTGRES_DB" -F c -f /backup.dump'
   docker compose cp flip-postgres:/backup.dump ./backup-pg14.dump
   docker compose down
   ```
2. Replace `docker-compose.yaml` with the version for PostgreSQL 15 and delete the PostgreSQL data volume (find the volume name with `docker volume ls | grep flip_postgres`):
   ```bash
   docker volume rm docker-compose_flip_postgres
   ```
3. Start PostgreSQL 15 and restore the dump:
   ```bash
   docker compose up -d flip-postgres
   docker compose cp ./backup-pg14.dump flip-postgres:/backup.dump
   docker compose exec flip-postgres sh -c 'PGPASSWORD="$POSTGRES_PASSWORD" pg_restore -U "$POSTGRES_USER" -d "$POSTGRES_DB" --no-owner /backup.dump'
   ```
4. Start the application:
   ```bash
   docker compose up -d
   ```

Keep the `backup-pg14.dump` file until you have verified that the application works.
