Railway

Deploy kanboard

Deploy and Host kanboard with Railway

Deploy kanboard

Just deployed

Deploy and Host

Deploy on Railway

OG Image

Kanboard is a free and open-source Kanban project management software. It focuses on simplicity, speed, and a minimalistic approach — no complexity, no external dependencies. Manage your projects, tasks, and team workflow visually with an intuitive Kanban board deployed on Railway in minutes.

About Hosting

Kanboard runs as a single container with SQLite for persistence. Railway provides the compute, TLS at the edge, and a public URL. The service includes an Nginx reverse proxy with automatic PORT substitution, a persistent volume for the SQLite database and file uploads, and a built-in health check that Railway monitors for automatic restarts.

Why Deploy

  • Zero external dependencies — SQLite-based, no PostgreSQL or Redis required. Single container with a persistent volume.
  • Visual Kanban boards — Drag-and-drop task management with swimlanes, categories, and custom columns.
  • Enterprise-ready auth — LDAP, OAuth, and local account authentication out of the box.
  • 50+ languages — Fully internationalized with community-maintained translations.
  • Built-in analytics — Burndown charts, time tracking, and task statistics.
  • Plugin system — Extend functionality via the plugin directory (enable with PLUGIN_INSTALLER=true).
  • Full REST API — Automate workflows, integrate with CI/CD, or build custom tooling.

Common Use Cases

  • Project management — Track tasks across multiple projects with Kanban, Gantt, and list views
  • Team collaboration — Assign tasks, set due dates, and manage user roles
  • Bug tracking — Lightweight issue tracker with categories, priorities, and swimlanes
  • Personal task board — Self-hosted todo list with time tracking and analytics
  • Client project portals — Share project dashboards with external stakeholders

Dependencies for Kanboard

Deployment Dependencies

Kanboard requires no external dependencies on Railway. It uses embedded SQLite for storage and runs entirely within its container. Optional: MySQL or PostgreSQL can be configured via environment variables for production deployments with multiple replicas.

  • Railway Account — hosting platform
  • No external database, cache, or message queue required

Features

  • Visual Kanban Boards — Drag-and-drop task management
  • Project Management — Multiple projects with swimlanes and categories
  • Task Analytics — Burndown charts, time tracking, and statistics
  • Authentication — LDAP, OAuth, and local accounts
  • Notifications — Email, webhooks, and Slack integration
  • Multi-language — 50+ supported languages
  • REST API — Full API for integrations and automation
  • Plugins — Extend functionality via the plugin system
  • No External Database Required — Uses SQLite by default (zero config)

Quick Start

  1. Click Deploy on Railway above
  2. Open your Railway URL — Kanboard starts in ~30s
  3. Log in with admin / admin (change immediately!)

Environment Variables

Kanboard is pre-configured for SQLite — deploy and start using it immediately. For production setups with MySQL or PostgreSQL, use the variables below.

VariableDefaultDescription
PLUGIN_INSTALLERfalseEnable the plugin installer from the UI (true/false)
MAIL_FROMnotifications@localhostFrom address for email notifications

Database (optional — SQLite works out of the box)

VariableDefaultDescription
DB_DRIVERsqliteDatabase driver: sqlite, mysql, or postgres
DB_HOSTNAMEDatabase hostname (required for MySQL/Postgres)
DB_NAMEkanboardDatabase name (required for MySQL/Postgres)
DB_USERNAMEDatabase username (required for MySQL/Postgres)
DB_PASSWORDDatabase password (required for MySQL/Postgres)
DB_PORTDatabase port (optional, defaults to driver default)

Email notifications (optional)

VariableDefaultDescription
MAIL_TRANSPORTsmtpMail transport: smtp, sendmail, or mail
MAIL_SMTP_HOSTNAMESMTP server hostname
MAIL_SMTP_PORT25SMTP server port
MAIL_SMTP_USERNAMESMTP username
MAIL_SMTP_PASSWORDSMTP password
MAIL_SMTP_ENCRYPTIONSMTP encryption: tls or ssl
DEBUGfalseEnable debug mode (true/false)

Linking a Database

To use MySQL or PostgreSQL instead of SQLite:

  1. Create a Railway MySQL or PostgreSQL database service
  2. Link it to your Kanboard service
  3. Set these variables on the Kanboard service:
DB_DRIVER=mysql
DB_HOSTNAME=${{YourDatabaseService.MYSQLHOST}}
DB_NAME=${{YourDatabaseService.MYSQLDATABASE}}
DB_USERNAME=${{YourDatabaseService.MYSQLUSER}}
DB_PASSWORD=${{YourDatabaseService.MYSQLPASSWORD}}
DB_PORT=${{YourDatabaseService.MYSQLPORT}}

For PostgreSQL, use DB_DRIVER=postgres with the corresponding PG* variables.

Architecture

┌─────────────────────────────────────┐
│          Railway Edge               │
│     (TLS termination, routing)      │
└────────────┬────────────────────────┘
             │
┌────────────▼────────────────────────┐
│          Nginx (port $PORT)          │
│    Reverse proxy + static assets     │
└────────────┬────────────────────────┘
             │
┌────────────▼────────────────────────┐
│     PHP-FPM (Kanboard Application)  │
│   Kanban logic, REST API, Auth      │
└────────────┬────────────────────────┘
             │
┌────────────▼────────────────────────┐
│  Persistent Volume (kanboard-data)  │
│  /var/www/app/data                   │
│  └─── SQLite database               │
│  └─── File uploads                  │
│  └─── Cache                         │
└─────────────────────────────────────┘

Persistence

Kanboard stores all data in /var/www/app/data:

  • SQLite database (sqlite directory) — tasks, projects, users
  • File uploads (files directory) — attached files and images
  • Cache (cache directory) — application cache
  • Logs (debug.log) — debug logging when enabled

This directory is mounted as a Railway persistent volume, so your data survives redeploys.

Default Credentials

RoleUsernamePassword
Administratoradminadmin

Important: Change the default password immediately after first login.

Troubleshooting

IssueSolution
502 Bad GatewayVerify PORT is set (Railway does this automatically)
Health check failingWait 15s — migrations run on first startup
Plugin installer not showingSet PLUGIN_INSTALLER=true in Variables
Database connection errorsVerify DB credentials and that the database service is linked

Local Development

git clone https://github.com/INAPP-Mobile/railway-kanboard && cd railway-kanboard
docker build -t kanboard .
docker run -d -p 8080:80 -v kanboard-data:/var/www/app/data kanboard

Resources

License

This template is provided under the MIT License. Kanboard itself is licensed under the MIT License. Template by INAPP-Mobile.


Template Content

More templates in this category

View Template
Rocky Linux
[Jun'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
15
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
70
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
44