What you host, and what you don't
You host the whole studio: the frontend, the Express API, the PostgreSQL database, the poller and your object storage. For the inference itself you have two options. Cloud: generation calls go out to KIE.AI or Fal.ai on a key you supply — no GPU on your server, no model weights downloaded. Local, since v1.0: point Keou at your own ComfyUI instance (LOCAL_ENGINE_URL) and images — and video, with the Wan 2.2 or LTX-Video models installed — run entirely on your hardware, no cloud involved. Voice and sound effects remain cloud-only — we would rather you know before you clone the repository.
What self-hosting buys you instead: no watermark on anything, nothing published to any gallery, full signed downloads and export-pack ZIPs, your own brand across the interface, and no shared queue — your capacity is whatever your provider key and your server allow. Users can each paste their own key; it stays in their browser and is never written to your server's disk, database or logs.
What you need
- Node.js 20+ and PostgreSQL — migrations run automatically at boot.
- A Cloudflare R2 bucket — the free tier is enough, but it is required: uploads return 503 without it, and uploading a photo is the product's first move.
- A provider key — KIE.AI or Fal.ai; each user can paste their own.
- ADMIN_EMAIL and ADMIN_PASSWORD set before first boot — self-serve signup is off by default in a self-hosted deployment, so without a seeded account nobody can sign in.
Docker in two commands
docker build -t keou .
docker run -p 3401:3401 --env-file .env keou # open http://localhost:3401
The image runs as a non-root user and ships a healthcheck on /health. On Railway: deploy from GitHub, add a PostgreSQL service (the connection string is injected for you), set JWT_SECRET, the admin pair and the R2 variables — railway.json and the healthcheck are already in the repository, and auto-deploy on main keeps you on the latest build. The full environment reference is in the documentation.
An open-source alternative to Photoroom-style tools
If you are comparing against hosted product-photo tools like Photoroom, here is the honest framing. Keou covers the product-photography workflow — commercial scenes generated around a pixel-locked product, retouching, format adaptation, export packs — plus product video, voice-overs and sound, organised by client and campaign with review links. What you gain by self-hosting is control: your infrastructure, your data, your costs at provider rates, and an MIT licence with no seat pricing. What you give up is the convenience of a managed service — you operate the server, the database and the storage yourself.