
Deploy Planka
Self-hosted Kanban boards for collaborative project management.
Planka
Just deployed
/app/data
Postgres
Just deployed
/var/lib/postgresql/data
Deploy and Host Planka on Railway
Planka is a self-hosted, real-time Kanban application for collaborative project management. Teams can organize work into projects, boards, lists, and cards; assign members; add labels, due dates, comments, and attachments; and keep changes synchronized across connected browsers while retaining control of their project data.
Published on Railway: https://railway.com/deploy/planka-1
About Hosting Planka
Hosting Planka requires the application container, PostgreSQL, a public HTTPS URL, and durable storage for database records and uploaded files. This template runs Planka 2.1.1 on its documented port 1337, connects it to PostgreSQL 16 through Railway private networking, and mounts one application volume at /app/data. That unified Planka v2 data directory preserves user avatars, project background images, favicons, and attachments. Railway generates the database, session, and initial-administrator secrets, terminates TLS at the public domain, checks Planka's root page for health, and lets the image initialize or migrate the database during startup.
Common Use Cases
- Coordinate software, operations, and creative projects with collaborative Kanban boards
- Track personal tasks, household plans, and volunteer work without a hosted SaaS account
- Give small teams a self-hosted alternative to Trello with comments, labels, due dates, and attachments
Dependencies for Planka Hosting
- PostgreSQL 16 for users, projects, boards, cards, and other relational application data
- Persistent Railway volumes for PostgreSQL and Planka's uploaded avatars, backgrounds, and attachments
Deployment Dependencies
- Planka 2.1.1 source and release
- Official production Docker installation
- Official administrator configuration
- Official container image
- Umbrel Planka deployment contract
Implementation Details
- Planka:
ghcr.io/plankanban/planka:2.1.1, public port1337, health path/, and a persistent volume at/app/data. Planka v2 stores user avatars inprotected/user-avatars, background images inprotected/background-images, and attachments inprivate/attachmentsbelow that mount. - Postgres: Umbrel-compatible
postgres:16.13-alpine3.23, private port5432, and a persistent volume at/var/lib/postgresql/datawithPGDATAbelow the mount root. - Private references:
DATABASE_URLcomes from thePostgresservice, whileBASE_URLis exactlyhttps://${{Planka.RAILWAY_PUBLIC_DOMAIN}}. - Generated credentials: Railway generates the database password, Planka
SECRET_KEY, and initial administrator password. The supportedDEFAULT_ADMIN_*variables create the administrator during database initialization, preventing an unauthenticated first-user claim flow. - Startup: the official image runs
node db/init.jsbefore starting the server, which initializes or migrates the database. Its built-in health check requestshttp://localhost:1337/, matching the Railway health path. - Port override:
PORT=1337prevents Railway's generic image default from overriding Planka's documented listener port, keeping the application, public domain, and health check aligned.
Why Deploy Planka on Railway?
Railway is a singular platform to deploy 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 Planka 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.
Template Content
Postgres
postgres:16.13-alpine3.23