Get started

Run it today.

One Compose file, your PostgreSQL, every feature.

What a server needs

  • Docker Engine with Compose. Any host that runs Linux containers.
  • Three containers: the database (PostgreSQL 17), the engine and a web container.
  • Two ports, on the web container only: 80 and 443. Other numbers are set with WEB_HTTP_PORT and WEB_HTTPS_PORT.
What the reference install used
IdleAfter a 2,000-record import
Memory, database69 MiB177 MiB
Memory, engine192 MiB257 MiB
Memory, web13 MiB16 MiB
Disk, images3.2 GB
Disk, data56 MB128 MB

Measured once on a MacBook Pro (Apple M1 Pro, 32 GB), Docker Engine 28.4.0, 2026-11-06, with the reference compose.yml. Not a sizing guarantee: the guide does not state production sizing. Size a real server from your own data and load.

Five steps

  1. Choose the address people openMake its DNS name reach the host. It is PUBLIC_URL, the address your sign-in is bound to. Changing its host later signs everyone out.
  2. Fill .envCopy .env.example to .env and fill it in: PUBLIC_URL, then the three secrets with the commands the file gives. Keep .env beside your backups.
  3. Provide HTTPSPut your certificate and key in certs/ as fullchain.pem and privkey.pem. On a public name, add -f compose.yml -f compose.acme.yml for certificates that renew themselves. Behind a load balancer that ends HTTPS, use WEB_TLS=proxy.
  4. Start itdocker compose up -d --build. The engine creates and migrates the database at start; docker compose ps shows the three containers healthy.
  5. Create the first administratorRun the create_admin command above. It asks for the password. Everyone else is added in the application.

What runs

Three containers: the database (PostgreSQL 17), the engine and a web container. Only the web container is published.

Upgrade and back up

Back up first. Upgrading is docker compose up -d --build, and the engine migrates the database at start.

How stable it is

refiroo is before 1.0. From 0.12, the APIs, webhooks and sign-in change only by adding: anything replaced keeps working beside its successor for at least 12 months and two minor releases. The database, the code and the screens may change in any release, and security fixes go to the latest minor release only. The compatibility commitment

To develop instead, the README has the steps without Docker. README on GitHub

Run it today.

One Compose file, your PostgreSQL, every feature.