Tagaris on a NAS

A Synology or TrueNAS box that runs Docker can run Tagaris. It is the documented compose stack, with the data on volumes you choose and the built-in backups landing on the NAS.

The path

Tagaris has no NAS-specific build. If the NAS can run Docker containers, it runs the standard install: the app container plus a PostgreSQL 16 container, defined in one compose file, with about 1 GB of memory between them. Images are published for amd64 and arm64, so both Intel and ARM boxes are covered.

Where the NAS interface runs one container at a time rather than a compose file, use the self-contained image instead. It has PostgreSQL built in, takes two settings (an auth secret and the public URL) and two volumes, and is covered in the self-contained guide. Either way, migrations run at start and the first visit opens the setup wizard.

Where the data goes

The containers are disposable. The volumes are the register.

Bind mounts on the NAS

The compose file uses named volumes by default. On a NAS, prefer bind mounts to a path you control, so the files sit on a share you can see and the NAS's own tooling can reach them. Replace the volume references with host paths and drop the matching names from the volumes: block.

Three folders

The database data directory (the register itself), the photos folder (asset photos, thumbnails and attachments) and the uploads folder (other uploads, including the built-in backups). Back up all three. The self-contained image uses two: data and uploads.

# postgres service
- /volume-path/tagaris/pgdata:/var/lib/postgresql/data
# app service
- /volume-path/tagaris/uploads:/app/uploads
- /volume-path/tagaris/photos:/app/data/photos

The app behaves identically either way; only where the bytes live changes. The standard install guide shows the full compose file.

The public URL

BETTER_AUTH_URL must be the address people actually reach Tagaris on, such as the NAS's hostname or IP address and the port, not localhost. It is the base for printed QR label codes and emailed invite links, and the allowed origin for sign-in. Left at the default, labels point at localhost and will not open on any other device.

The iOS app pairs with the same address and signs in the same way as the browser. Plain http:// works for a server on your own local network. Anything reached over the internet should sit behind a reverse proxy with HTTPS, using a certificate from a public authority such as Let's Encrypt, because iOS does not trust self-signed certificates unless the certificate is installed on the device. Set the URL to the https:// address when you do that.

Backups

Tagaris backs itself up from Application settings: a database dump plus, optionally, the photos and attachments, in one archive, on a daily or weekly schedule with retention and optional passphrase encryption. Archives are written to the uploads folder, so with a bind mount they land on the NAS where its own snapshot or replication tooling can carry them off the box. Each backup can also be copied to S3-compatible storage directly.

Keep both. A NAS snapshot protects the folders as a whole; the Tagaris archive is the file the restore screen accepts, on this server or a new one. Restore sits behind a typed confirmation. The details are in Backups and restore, and the self-hosting page covers what the free tier includes and how upgrades work.

Try it before you install it

The live demo runs the current release in your browser. When you are ready, the install is a compose file and a couple of settings.