Railway

Deploy Vikunja

Open-source task and project management with teams and calendars.

Deploy Vikunja

Just deployed

/var/lib/mysql

Just deployed

/app/vikunja/files

Deploy and Host Vikunja on Railway

Vikunja is an open-source task and project manager for individuals and teams. It combines lists, boards, tables, calendars, and Gantt views with assignments, due dates, recurring tasks, labels, collaboration, CalDAV, and an API, while keeping application data and uploaded attachments under your control.

About Hosting Vikunja

Hosting Vikunja requires the application, a durable SQL database, persistent attachment storage, and a canonical public URL. This template runs the official Vikunja 2.4.0 image on port 3456 alongside MariaDB 10.11.8. Vikunja reaches MariaDB only through Railway's private network, while Railway terminates public HTTPS and injects the generated hostname into VIKUNJA_SERVICE_PUBLICURL. MariaDB stores its data at /var/lib/mysql, and Vikunja stores uploaded files at /app/vikunja/files. Database migrations run automatically during startup, and Railway checks the unauthenticated /health endpoint before marking Vikunja healthy.

Common Use Cases

  • Managing personal tasks, recurring routines, and calendar commitments
  • Coordinating team projects with assignments, boards, labels, and comments
  • Replacing hosted task managers with a self-hosted API and CalDAV-compatible service

Dependencies for Vikunja Hosting

  • MariaDB 10.11.8 for users, projects, tasks, settings, and application metadata
  • Persistent Railway volumes for MariaDB data and Vikunja file attachments

Deployment Dependencies

Implementation Details

  • Vikunja: immutable image tag vikunja/vikunja:2.4.0, public Railway domain on port 3456, /health readiness check, persistent volume at /app/vikunja/files, and ON_FAILURE restart policy with ten retries.
  • MariaDB: immutable image tag mariadb:10.11.8, private networking only, persistent volume at /var/lib/mysql, UTF-8 server flags from the upstream and Umbrel examples, and ON_FAILURE restart policy with ten retries.
  • Private references: Vikunja resolves the exact MariaDB private domain and references the one database password generated on that service. A separate generated Vikunja service secret keeps sessions valid across restarts.
  • Volume permissions: Railway mounts volumes as root, while the Vikunja image normally runs as UID 1000. RAILWAY_RUN_UID=0 applies Railway's documented compatibility setting so file uploads remain writable.
  • Secure first run: local authentication is enabled so the deployer can register the first account. Public teams, public link sharing, and demo mode are disabled. Immediately after creating the intended account, set VIKUNJA_SERVICE_ENABLEREGISTRATION=false and redeploy; the verified source deployment is already closed.

Why Deploy Vikunja 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 Vikunja 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.


This is a community Railway template and is not officially affiliated with the Vikunja project.


Template Content

More templates in this category

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

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

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

Letta
51