Deploy Leantime
Project management for goals, tasks, time and docs in one place
MySQL
Just deployed
/var/lib/mysql
mailpit
Just deployed
/data
leantime
Just deployed
/railway
Redis
Just deployed
/data
leantime-files
Bucket
Just deployed
Deploy and Host Leantime on Railway
Leantime is an open-source project management system for the people who end up running projects without ever having trained as project managers — founders, designers, small agencies and internal teams. It keeps strategy, planning and execution in one place: goals and a business model canvas on one side, kanban boards, milestones, timesheets and a wiki on the other. Its interface is designed with ADHD, dyslexia and autism in mind, which in practice means a personal "My Work" view that hides everything you are not doing today. It is AGPL-3.0 licensed and published as leantime/leantime on Docker Hub.
Self-host Leantime on Railway and this template wires up everything it expects in production. The leantime service runs the app, its nginx front end and its scheduler. MySQL stores every project, task, timesheet and wiki page. Redis holds the cache and, in a separate database, sessions, so a redeploy never signs anyone out. An object storage bucket takes every upload, served back through signed URLs. mailpit captures the invitations Leantime sends, so you can add teammates without owning an SMTP relay. The app installs itself on first boot, so no setup wizard is ever exposed.

Getting Started with Leantime on Railway
Set LEANTIME_ADMIN_EMAIL and LEANTIME_ADMIN_PASSWORD before deploying — those become your first account, and the password needs an uppercase letter, a lowercase letter, a digit and a symbol. When the deploy finishes, open the leantime URL and sign in. There is no registration page: Leantime is invite-only, and that admin is the only account that exists.
You land on a prompt asking for one task on your mind, which becomes your first to-do. Dismiss the tour, open Projects → New Project, name it and save. From the project's To-Dos screen switch to the Kanban view, add a few tasks, drag one into In Progress and confirm the dashboard's progress ring moves. That loop exercises the database, the cache and the session store together.
To invite the team, go to Company → User Management → New User. Leantime emails the invitation rather than letting you set a password, so open the mailpit URL — credentials are in MP_UI_AUTH — and the message is waiting. For real email, point LEAN_EMAIL_SMTP_HOSTS, _PORT, _USERNAME and _PASSWORD at your provider. Finally, drop a file onto Data Room → Files to confirm storage works.



About Hosting Leantime
Leantime sits between the "one board and nothing else" tools and the enterprise suites: as approachable as Trello, but carrying most of what teams eventually need from Jira, and a credible replacement for ClickUp, Monday or Asana when you would rather own the data.
Key features:
- Kanban, table, list, calendar and Gantt views over the same tasks, with subtasks and dependencies
- Milestones, sprints, goals with metric tracking, and project status reports
- Time tracking and timesheets tied directly to tasks
- Wiki, idea boards, retrospectives, and lean/business model, SWOT and risk canvases
- Comments and attachments on everything, plus screen and webcam recording
- Roles and per-project permissions, two-factor authentication, LDAP and OpenID Connect
The leantime container bundles nginx, PHP-FPM and a supervised scheduler, so recurring background work needs no second service. MySQL is the only durable store, and the app connects with a least-privilege account scoped to its own database rather than the superuser. Redis carries the cache and sessions in separate logical databases, which keeps a cache flush from logging everyone out.
Why Deploy Leantime on Railway
Railway removes the parts of self-hosting Leantime that are not project management:
- MySQL, Redis and object storage are provisioned and connected for you
- TLS and a public domain are issued automatically
- The first admin account is created at boot, with no wizard left exposed
- Private networking keeps the database, cache and mail service off the internet
- Redeploys pick up new upstream releases without touching your data
Common Use Cases
- An agency running client projects and logging billable hours against tasks
- A startup keeping quarterly goals, roadmap and retrospectives beside day-to-day tasks
- A non-profit needing a wiki, task board and file storage without paying per seat
- A team replacing a Jira instance whose licensing has outgrown its actual users
Dependencies for Leantime
- leantime —
leantime/leantime:latest(Leantime/leantime) plus a wrapper that prepares the volume, installs the schema and adds a health route - MySQL —
mysql:9.4, system of record for projects, tasks, users and timesheets - Redis —
redis:8.2, cache in database 0, sessions in database 1 - mailpit —
axllent/mailpit:latest, SMTP sink and inbox - Object storage bucket — uploads, read back through signed URLs
Environment Variables Reference
| Variable | Purpose |
|---|---|
LEANTIME_ADMIN_EMAIL / LEANTIME_ADMIN_PASSWORD | The first admin account, created on first boot only |
LEAN_SITENAME | Name shown in the interface and outgoing email |
LEAN_SESSION_PASSWORD | Session signing key — changing it signs everyone out |
LEAN_EMAIL_SMTP_HOSTS / _PORT / _USERNAME / _PASSWORD | Point at your own relay when you outgrow Mailpit |
LEAN_OIDC_* / LEAN_LDAP_* | Optional single sign-on, off by default |
MP_UI_AUTH | Credentials for the Mailpit inbox |
Deployment Dependencies
- Source: github.com/Leantime/leantime · Image: hub.docker.com/r/leantime/leantime
- Docs: docs.leantime.io
- Runtime: PHP 8.3 with nginx, MySQL 8.4 or newer, Redis 6 or newer
Hardware Requirements for Self-Hosting Leantime
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 1 GB for the app, 512 MB for MySQL | 2 GB for the app, 1 GB for MySQL |
| Storage | 1 GB database, 5 GB uploads | Grows with attachments; the bucket scales on its own |
| Runtime | PHP 8.3, MySQL 8.4+, Redis 6+ | Same, plus object storage for files |
A team of ten fits in the minimum column; the app container is what grows, through PHP-FPM workers under load.
Self-Hosting Leantime
The quickest way to run Leantime locally is the published image with MySQL beside it, as a Docker Compose file:
services:
db:
image: mysql:8.4
environment:
MYSQL_ROOT_PASSWORD: change-me
MYSQL_DATABASE: leantime
leantime:
image: leantime/leantime:latest
ports: ["8080:8080"]
environment:
LEAN_DB_HOST: db
LEAN_DB_USER: root
LEAN_DB_PASSWORD: change-me
LEAN_DB_DATABASE: leantime
LEAN_SESSION_PASSWORD: change-me-too
depends_on: [db]
To install from source, clone the repository and build the assets:
git clone https://github.com/Leantime/leantime.git && cd leantime
composer install --no-dev
npm install && npm run build
cp config/sample.env config/.env # edit the LEAN_DB_* values
php bin/leantime db:migrate
Point a PHP 8.3 web server at public/. On Railway that is already done.
Is Leantime Free to Self-Host?
Leantime is free and open source under AGPL-3.0, and the self-hosted edition carries the full feature set with no seat limits. Leantime also sells a hosted cloud plan and a marketplace of optional paid plugins, but nothing in the core product is gated behind them. On Railway you pay only for the infrastructure the deployment uses.
FAQ
What is Leantime?
An open-source project management system aimed at people who are not professional project managers. It combines goals, strategy canvases, kanban boards, milestones, time tracking and a wiki in one interface built to be usable by neurodivergent teams.
What does this Railway template deploy?
Four services — the Leantime application, MySQL, Redis and a Mailpit inbox — plus a bucket for uploads. Everything is wired together, and the first admin is created before the app serves traffic.
Why does the template include Redis and object storage?
Redis holds the cache and user sessions, so sessions survive a redeploy and the app can scale beyond one process. Object storage keeps attachments off the container filesystem.
How do I add users to self-hosted Leantime?
Through Company → User Management → New User. Leantime sends an emailed invitation rather than letting an admin set a password, which is why a working mail path matters — Mailpit covers that until you connect a relay.
Can I connect Leantime to my existing identity provider?
Yes. Set the LEAN_OIDC_* variables with your provider's URL, client ID and secret, or the LEAN_LDAP_* set for a directory. Accounts are matched by email address.
Does self-hosted Leantime include the paid marketplace plugins?
No. The core application is complete and unrestricted, but marketplace add-ons are separate purchases. Installed plugins live on the app's volume, so they survive redeploys.
Template Content
MySQL
mysql:9.4mailpit
axllent/mailpit:latestleantime
gridalpha/leantime-railwayRedis
redis:8.2leantime-files
Bucket
