Self-hosting

You’re the kind of person who reads the source code before trusting a tool

Good. So did we. Here’s exactly what Unitae is, what it does with your congregation’s data, and how to run it yourself in three commands.

So here’s what you get when you run it yourself

Complete control

Your server, your rules. You decide where the data lives, who has access, and when updates happen. No third party between you and your congregation’s data.

Full data sovereignty

The database runs on your infrastructure. Nothing leaves your server unless you configure it to. No telemetry, no phone-home, no analytics.

No subscription, no dependency

Self-hosting is free, forever. The AGPL-3.0 license guarantees you can always run the software, regardless of what happens to MindsersIT.

Same features as managed

The code is identical. No locked features, no artificial limits. Unlimited publishers, territories, and storage — because it’s your server.

What you’ll need

Self-hosting is straightforward if you’re comfortable with a terminal. Here’s what’s required:

  • A Linux or macOS server (VPS, dedicated, or local network)
  • Docker and Docker Compose installed
  • At least 1 GB of RAM (2 GB recommended)
  • A domain name if you want HTTPS (not required for local use)
  • Basic terminal comfort — you’ll run a handful of commands
Unitae ships with PostgreSQL and Redis bundled in the Compose file. You don’t need to install them separately.

Get started in 3 commands

Clone the repository, copy the example environment file, and start the stack:

terminal

# Clone the repository

git clone https://github.com/Unitae/unitae.git && cd unitae

# Copy and edit the environment file

cp .env.example .env

# Start Unitae

docker compose up -d

Unitae is running on localhost:8080

The honest trade-offs

Self-hosting gives you full control. That also means full responsibility. Here’s the honest list:

Backups

Managed hosting runs daily backups with tested recovery. Self-hosted means you set up your own backup strategy.

TLS certificate

Managed hosting provisions and renews TLS automatically. On your own server, you’ll need a reverse proxy (Caddy, nginx) and handle certificate renewal.

Updates

Managed hosting updates automatically. Self-hosted means you pull the latest image and restart the stack when a new version drops.

Support

Managed subscribers get priority email support. Self-hosters have GitHub Issues and the community.

One file controls everything

The .env file controls everything. Key variables to configure:

  • DATABASE_URL — PostgreSQL connection string (pre-configured in the Compose file)
  • REDIS_URL — Redis connection string (pre-configured in the Compose file)
  • SESSION_SECRET — a long random string for session signing
  • APP_URL — the public URL of your instance
  • SMTP_* — email settings for password resets and notifications
The full list of environment variables with explanations is in the .env.example file at the root of the repository.

Not ready to self-host?

You’ve read the code. You know exactly what Unitae does. If you’d rather skip the server setup and get straight to the congregation work, managed hosting is €9/month — live in 30 seconds, backups handled, TLS handled. And every subscription funds the open-source development that benefits self-hosters too.

No credit card required. Cancel anytime, export all your data.