Deploy Kan | (Just Updated) Trello Alternative You Can Actually Sign Into
Open-source Trello alternative. Email sign-in works, no OAuth app needed.
Just deployed
postgres
Just deployed
/var/lib/postgresql
Deploy and Host Kan on Railway
Kan is an open-source Trello alternative: boards, lists, cards, labels, members, comments, checklists, activity history, public board sharing and Trello import. This template deploys it as two services — the Kan app and a Postgres database — and asks you for nothing.
About Hosting Kan
Kan ships upstream as two containers: the Next.js web app, and a separate
run-once kan-migrate container that applies the drizzle schema. Railway starts
every service in a project at the same time, so a template that models the
migration as its own service starts the web app against an empty database and
leaves a job container sitting in the project afterwards with nothing to do.
This template runs the migration inside the app container's entrypoint, before
the server accepts a request, so the ordering is real rather than a race. The
app image is a thin wrapper over the official ghcr.io/kanbn/kan release,
pinned by digest, so redeploying six months from now gets the same build you
tested — not whatever latest moved to.
Kan also needs to know its own public origin: unset, Better Auth signs cookies
for localhost, sign-in bounces and workspace invite links point somewhere that
does not exist. Railway only knows the domain at run time, so the entrypoint
derives NEXT_PUBLIC_BASE_URL, BETTER_AUTH_URL and
BETTER_AUTH_TRUSTED_ORIGINS from RAILWAY_PUBLIC_DOMAIN on every boot. A
custom domain works the same way — set NEXT_PUBLIC_BASE_URL yourself and the
entrypoint leaves it alone.
Two failure modes are turned into refusals rather than silent damage. With no
POSTGRES_URL, Kan falls back to an in-container PGLite file and every board
disappears on the next redeploy; with no BETTER_AUTH_SECRET, sessions are
forgeable. The entrypoint exits with a named error on either instead of booting
into them. The template wires both, and generates the auth secret per deploy —
it is not a constant shared by everyone who clicked deploy.
Postgres carries a volume at /var/lib/postgresql, so your boards survive
redeploys. Kan is a normal Next.js server and fits comfortably inside Railway's
1 GB Trial per-service memory cap.
Why Deploy Kan on Railway?
Railway is a singular platform for deploying your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Kan on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Common Use Cases
- Replace a Trello board for a team that would rather own its data.
- Run a private project tracker on your own domain, with your own Postgres.
- Import existing Trello boards through Kan's built-in Trello import.
- Share a read-only public board without giving anyone an account.
- Stand up a throwaway kanban instance for a client engagement and delete it after.
Dependencies for Kan
- A Postgres database (included in this template).
Deployment Dependencies
- Kan — the upstream project.
- Kan source and documentation
- Wrapper image source — the Dockerfile and entrypoint used here, so you can read exactly what was changed.
No API keys, SMTP server or OAuth application is required to deploy. SMTP, Google/GitHub/Discord OAuth, Trello import credentials and S3 storage are all optional Kan features; add their variables later if you want them.
Template Content
LOG_LEVEL
NEXT_PUBLIC_DISABLE_EMAIL
NEXT_PUBLIC_ALLOW_CREDENTIALS
postgres
postgres:17.6-alpinePOSTGRES_DB
POSTGRES_USER
