Tagaris with Portainer
Portainer deploys a compose file as a stack. Paste the documented file, supply the variables it reads, and the first visit opens the setup wizard.
The compose file as a stack
Tagaris is the standard two-container stack: the app and a PostgreSQL 16 container, with three volumes for the database, photos and uploads. The compose file in the standard install guide (also in the public deploy files repository) is complete. Paste it into a new stack as it is.
On a normal Docker host the file reads its settings from a .env file
alongside it. In a stack there is no such file, so supply the same values as the
stack's environment variables. Everything else in the file has a working default.
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB: the database credentials. Letters and digits only in the passwordDATABASE_URL: the connection string, with the same password spliced in, pointing at thepostgresserviceBETTER_AUTH_SECRET: a strong random value, generated withopenssl rand -base64 32BETTER_AUTH_URL: the public address people reach the app on, not localhost
The password rule matters: it is spliced into DATABASE_URL, and characters
such as :, @ or / break the URL. The symptom is
a database connection error at start.
First run
Deploy the stack
Portainer pulls the two images and starts the containers. The app waits for the database healthcheck, applies any pending migrations, then listens on port 3000. Allow a minute or two the first time.
Open the setup wizard
Visit http://your-host:3000. The first visit creates your
organisation and the first administrator account. That account owns the install and
is the break-glass login, so give it a strong password and store it safely.
Put it behind HTTPS
For anything beyond a first look on a private network, serve Tagaris through a
reverse proxy that terminates TLS and set BETTER_AUTH_URL to the
https:// address. Session cookies and sign-in depend on it.
Upgrading
An upgrade is a newer image and the same volumes and variables: pull the image and
redeploy the stack, and the app applies migrations itself on start. Back up first
from Application settings; a backup makes a rollback trivial. Pin a major version tag
such as goodhallsolutions/tagaris:2 in the stack rather than tracking
latest, which will cross a major version on its own. Tags, rollback and
PostgreSQL major upgrades are in the
upgrading guide.
One container instead
If you would rather run a single container, the self-contained image
goodhallsolutions/tagaris-bundled has PostgreSQL built in and needs only
the auth secret, the public URL and two volumes. The
self-contained guide
covers it, and the self-hosting page compares the
three ways to run Tagaris.
Try it before you deploy it
The live demo runs the current release in your browser. When you are ready, the stack is one file and four variables.