Lumio / self-hosted
FSL-1.1 · Self-hosted · Docker-based

A photo platform
you host yourself.

Lumio is a complete photo gallery platform for pro studios — RAW support, video streaming, annotation, proofing. You run it on your own infrastructure, with your own storage, under your control.

Prefer not to self-host? → Lumio Cloud
Your own hardware

Lumio runs on your server, your NAS, your VPS. S3-compatible storage of your choice (MinIO, Backblaze B2, Wasabi, Hetzner Object Storage).

Your own data

Postgres database, S3 bucket — both yours. No vendor lock-in. You handle backups exactly the way you're used to.

Your own look

Branding, custom domains, fonts, colors — all customizable. The source is open, so if something's missing you patch it yourself or send a PR.

Features

Everything a pro platform needs

RAW support

Canon CR3, Nikon NEF, Sony ARW, Fuji RAF and more. Server-side preview generation via rawpy. The original download stays untouched.

Video with HLS

Adaptive streaming in three quality levels, scrubbing previews via filmstrip. GPU acceleration (NVENC, QSV, VAAPI) auto-detected, libx264 fallback.

Annotation & proofing

Clients draw right on the image — and on video at a specific timestamp — comment, pick favorites. The studio sees everything in the proofing dashboard and replies with its own markups.

Multi-tenant

Optional: several studios in one instance, separate subdomains per tenant, separate branding per tenant. Single-tenant is the default.

Lightroom + Capture One

Dedicated plugins for direct export from your photo workflow. No re-upload needed.

Audit & GDPR-ready

An audit log for every action, deletion workflows, data export. What you need for your own GDPR compliance is included.

Custom domains

Client galleries under your own domains (e.g. photos.client.com). Tenant resolution via host header — TLS via Caddy/Traefik.

Smart Collections

Lightroom-style filter macros across your galleries. Status, mode, tags AND-combined, saved per user.

Plan limits + Stripe

If you want to build a SaaS with it: plan definitions, storage tracking and limit enforcement are built in. Stripe integration follows.

Setup guide

On your server in 5 minutes

Lumio ships as a Docker Compose stack. If you have Docker and Compose installed, it's a git clone and a docker compose up.

1

Clone the repository

git clone https://github.com/markusthiel/lumio.git
cd lumio
2

Prepare the environment file

Copy from the template and fill in your own values:

cp .env.example .env
nano .env

At minimum set: POSTGRES_PASSWORD, S3_ACCESS_KEY, S3_SECRET_KEY, SESSION_SECRET. With your own domain also LUMIO_HOST.

3

Start the stack

docker compose up -d --build

This starts all services: API, worker, frontend, Postgres, Redis, MinIO and Caddy. On the first start, migrations run and an empty default tenant is created.

4

Create an admin user

docker compose exec api npm run create-admin

Follow the interactive prompt — name, email, password. Then you can log in at http://localhost.

5

Optional: GPU acceleration

If your host has an NVIDIA GPU and you've installed the NVIDIA Container Toolkit:

docker compose \\
  -f docker-compose.yml \\
  -f docker-compose.prod.yml \\
  -f docker-compose.gpu.yml \\
  up -d

Video transcoding then runs on the GPU — a 1-hour 1080p video takes 10-20 minutes instead of 2-3 hours. More in docs/GPU.md.

More in the documentation

Multi-tenant setup, custom domains per client, S3 provider configuration, backups: all in the Markdown docs in the repo.

Docs on Forgejo →
Cloud vs. self-hosting

Which variant fits you?

Lumio comes in two variants — both have the same functionality; the question is who runs it.

This site
Self-hosted

You run Lumio on your own infrastructure. Full control, your own data, your own storage. Source-available under the FSL: you may self-host, modify and operate Lumio for your clients — just not build a competing SaaS.

  • Source-available, FSL-1.1
  • Your own server, your own data
  • S3 provider of your choice
  • Costs only your server
  • ·You administer it yourself
  • ·Backups + updates are your responsibility
See setup
Alternatively
Lumio Cloud

We host Lumio for you on German servers. GDPR-compliant, with maintenance, updates and support. You log in and work — no server setup needed.

  • Ready to go instantly, no setup
  • Servers in Germany
  • Maintenance + updates included
  • Support by email
  • ·Monthly subscription (from €9)
See Lumio Cloud

License

Lumio is licensed under the FSL-1.1. You may use, modify and self-host the software — privately, as a pro or as an agency for your clients. The only restriction: you may not build a competing, hosted SaaS offering from it. Two years after each release, that version automatically becomes Apache-2.0 — then with no restriction at all.

Contributing

Issues, feature requests and pull requests are welcome on Forgejo. No GitHub mirror — we deliberately chose a self-hosted forge, which fits the self-hosting spirit of the platform.

github.com/markusthiel/lumio →