Deploy kanboard
Minimalist Kanban project management with boards, tasks and an API
Just deployed
/var/lib/postgresql/data
kanboard
Just deployed
/var/www/app/data
Deploy and Host Kanboard on Railway
Kanboard is a free, open-source project management tool built around the Kanban method. It gives you boards with columns and swimlanes, tasks with subtasks, comments, attachments and due dates, plus automatic actions, per-project permissions, a JSON-RPC API and a plugin system. It is written in PHP and is deliberately minimal.
About Hosting Kanboard
Hosting Kanboard means running its web server (nginx and PHP-FPM in the official image), a database, and persistent storage for uploaded files. This template runs the official kanboard/kanboard v1.2.57 image, pinned by digest, with Railway PostgreSQL connected over the private network. One volume holds attachments, avatars and plugins. A short start command makes nginx listen on Railway's port and swaps Kanboard's built-in admin/admin account for a generated password before the site goes live, so a new deployment is never left open. Railway terminates HTTPS and checks the database-backed health endpoint.
Common Use Cases
- Track a small team's work on Kanban boards with columns, swimlanes and WIP limits
- Run a self-hosted, lightweight replacement for Trello or Jira-style task boards
- Automate task workflows or connect other tools through Kanboard's JSON-RPC API
Dependencies for Kanboard Hosting
- PostgreSQL (Railway's managed Postgres service) for users, projects, tasks and settings
- A Railway volume at
/var/www/app/datafor attachments, avatars and plugins
Deployment Dependencies
- Kanboard v1.2.57 release
- Official Docker image and Docker docs
- Configuration reference
- JSON-RPC API docs
Implementation Details
First login: the username is admin, and the password is the generated KANBOARD_ADMIN_PASSWORD variable on the kanboard service. Change it under My profile after you log in. The variable is used only while the account still has the upstream default password. If that variable is empty at that point, the service refuses to start rather than run with admin/admin.
API: the application API token is under Settings → API. Call https://YOUR-RAILWAY-DOMAIN/jsonrpc.php with HTTP Basic auth, username jsonrpc and that token as the password. Users can also authenticate with their own username and password.
What the start command does (the official entrypoint runs afterwards):
- sets
DB_DRIVER=postgres(theDB_*variables are references to the Postgres service) - makes nginx listen on
PORTand drops the in-container HTTPS listener (Railway serves HTTPS) - adds
/healthzas the health path, which runs Kanboard's ownhealthcheck.phpdatabase check - links
/var/www/app/pluginsinto the volume, so plugins survive redeploys - waits for Postgres, runs the database migrations and replaces the default admin password
Optional settings: add any variable from Kanboard's configuration reference to the kanboard service. For example, use MAIL_TRANSPORT=smtp with the MAIL_SMTP_* and MAIL_FROM variables for email notifications, PLUGIN_INSTALLER=true to install plugins from the web UI, or LDAP_* for directory logins.
Why Deploy Kanboard 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 Kanboard 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
