# Upgrading

> Update a Frame server installed with the Linux installer or Docker Compose, pin a version, and get told about new releases.

Source: https://crow.sg/apps/frame/docs/upgrading/

[Back up first](https://crow.sg/apps/frame/docs/backups/). Database changes run automatically when the new version starts, and your configuration and data are left alone.

## Linux installer (systemd)

Download and read the installer again, then run it. It checks the checksum, replaces the program and restarts the service if it was running.

```sh
curl -fsSLO https://github.com/Crow-Tech-Pte-Ltd/frame/releases/latest/download/install.sh
less install.sh
sudo sh install.sh                     # or: sudo sh install.sh --version v1.2.3
```

## Docker Compose

```sh
cd frame && git pull                      # updates the compose files
cd deploy && docker compose pull && docker compose up -d
```

With the Caddy setup, use `docker compose -f docker-compose.caddy.yml pull` and `… up -d`. If you [build the image yourself](https://crow.sg/apps/frame/docs/install-docker/#build-yourself), run `docker compose up -d --build` after `git pull` instead.

The `:0` image tag follows 0.x releases. To upgrade only by hand, pin an exact version in the compose file, such as `ghcr.io/crow-tech-pte-ltd/frame-server:0.1.0`.

## Hear about new releases

On the [GitHub repository](https://github.com/Crow-Tech-Pte-Ltd/frame), use **Watch → Custom → Releases**. Each release lists its changes; upgrade when one is announced, especially for security fixes. `sudo frame-admin version` (or `docker compose exec frame frame-server version`) shows what you're running, and so does the admin panel's **Overview**.
