---
title: "Deploy Leantime"
description: "Project management for goals, tasks, time and docs in one place"
category: "Other"
url: https://railway.com/deploy/leantime-pm
---

# Deploy Leantime

Project management for goals, tasks, time and docs in one place

**[Deploy Leantime on Railway](https://railway.com/template/leantime-pm)**

- **Creator:** A3A
- **Category:** Other

## Template content

### MySQL https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mysql.svg

- **Image:** mysql:9.4
- **Start command:** `docker-entrypoint.sh mysqld --innodb-use-native-aio=0 --disable-log-bin --performance_schema=0 --innodb-buffer-pool-size=1G`

### mailpit https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/mailpit.svg

- **Image:** axllent/mailpit:latest
- **Health check:** /livez
- **Public domain:** Yes

### leantime https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/leantime.svg

- **Source:** https://github.com/gridalpha/leantime-railway
- **Health check:** /healthz
- **Public domain:** Yes

### Redis https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/redis.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

## Buckets

- **leantime-files**

## Documentation

# 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.

![Diagram of the Leantime, MySQL, Redis and Mailpit services on Railway](https://res.cloudinary.com/rroe4rtk/image/upload/v1788394882/leantime-architecture.png)

## 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.

![Leantime kanban board with website relaunch tasks in five columns](https://res.cloudinary.com/rroe4rtk/image/upload/v1788394885/leantime-kanban-board.png)

![Leantime project dashboard showing progress ring and latest to-dos](https://res.cloudinary.com/rroe4rtk/image/upload/v1788394887/leantime-project-dashboard.png)

![Leantime My Work dashboard with personal to-dos beside a day calendar](https://res.cloudinary.com/rroe4rtk/image/upload/v1788394888/leantime-my-work-dashboard.png)

## 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](https://github.com/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](https://github.com/Leantime/leantime) · Image: [hub.docker.com/r/leantime/leantime](https://hub.docker.com/r/leantime/leantime)
- Docs: [docs.leantime.io](https://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.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/leantime-pm
