Skip to content

Updating and backups

Credenza releases have one version number, shared by the Docker image and the Linux packages, so 0.1.3 is the same release whichever way you installed it.

The server checks for new releases by itself, at startup and every twelve hours. When one is out, administrators — and anyone whose role lets them change server settings — see:

  • a dot on their account button,
  • Credenza 0.1.4 is out (with the new version number) at the top of the account menu, and
  • the Updates section of Settings → Server → General, which says what is out, what this server runs, and when it last checked. How to upgrade links to the install page, and Check now asks again straight away.

The check reads one small public file from credenza.tv. It sends nothing about your server or your libraries, and it never installs anything itself. If you have set an outbound proxy under Settings → Server → Metadata, the check goes through it like every other outbound request. To switch it off, set MediaServer__Updates__Enabled=false — see Configuration.

The version you are running is shown at the foot of Settings → Server → General and at the foot of the account menu.

In the folder with your docker-compose.yml:

Terminal window
docker compose pull && docker compose up -d

This pulls the newest server image and restarts the container onto it. The database is upgraded automatically when the new version starts — there is no migration step to run yourself.

To stay on one release instead of following the newest, add it to .env beside the password:

.env
CREDENZA_VERSION=0.1.3

docker compose pull && docker compose up -d then keeps you on that version. Change the number when you want to move, or remove the line to follow the newest release again.

The Compose file pins the Postgres image to an exact tag, such as credenza/postgres:18-pgmq1.12.0-pgsearch0.25.3. Leave it where it is unless a Credenza release says to move it: the search index’s on-disk format belongs to the version of the extension that wrote it.

Run the install command again:

Terminal window
curl -fsSL https://credenza.tv/install.sh | sh

It installs the newer package, then reruns credenza-setup with the database you chose the first time. That asks nothing unless the release moved one of the database extensions, in which case it updates them — and on the Docker database option, moves the container to the new image.

You can also upgrade with your package manager (apt upgrade, dnf upgrade) or, for a tarball install, with the newer tarball’s install.sh. If the release needs the database set up again, the package says so and prints the command, which is sudo credenza-setup.

A running server is restarted onto the new version; a stopped one stays stopped. The database is upgraded when the server starts. Your configuration in /etc/credenza/credenza.env is never overwritten.

To pin a version, put it before sh:

Terminal window
curl -fsSL https://credenza.tv/install.sh | CREDENZA_VERSION=0.1.3 sh

A browser tab left open across an upgrade, or an installed app on a phone, can keep running the previous version’s web app until it reloads. Settings → User → About shows the web app’s version and the server’s side by side; if they differ, reload the page.

The quickest way is Settings → Server → Storage: it exports the database and game saves as a zip file you download, without stopping anything. It also shows where each part of your data lives, which matters if you have moved any of it. See Storage, backups and restoring, which also covers restoring.

You can also back up the files themselves. Credenza keeps two things that cannot be rebuilt from your media: the database and the data folder. Everything else — artwork, details, the library itself — can be fetched or scanned again, but a backup saves you the time.

Docker Compose Linux
Database data/postgres Docker volume credenza-postgres, or your own PostgreSQL
Data folder data/credenza /var/lib/credenza
Configuration docker-compose.yml, docker-compose.override.yml and .env /etc/credenza
  • The database holds your libraries, accounts, invites, watch history and progress, matches you corrected by hand, requests and issue reports, and every setting made in the browser.
  • The data folder holds game saves, which exist nowhere else, the artwork cache, and the keys that keep people signed in. Losing the keys signs everyone out; losing the saves loses the games’ progress.

Stop the server before copying the database’s files, so you copy a consistent state. On Docker:

Terminal window
docker compose stop
tar czf credenza-backup.tar.gz data .env docker-compose.yml
docker compose start

On Linux with the Docker database, stop both services and archive the folders and the volume:

Terminal window
sudo systemctl stop credenza credenza-postgres
sudo tar czf credenza-backup.tar.gz /etc/credenza /var/lib/credenza
sudo docker run --rm -v credenza-postgres:/volume -v "$PWD":/backup alpine \
tar czf /backup/credenza-postgres.tar.gz -C /volume .
sudo systemctl start credenza-postgres credenza

If the database runs in your own PostgreSQL, back up its credenza database the way you back up anything else on that server.