Self-host Leantime
Open-source project management platform built for non-traditional project managers and neurodivergent teams, combining task/kanban boards, Gantt-style milestones, sprints, time tracking, and a project wiki. The self-hosted AGPL-3.0 open-source edition ships the full core project-management feature set plus white-labeling, client management, and LDAP/OIDC login for free; recurring tasks, custom fields, whiteboards, AI-assisted status updates, and program/portfolio-level strategy tools are paid plugin-bundle or Pro-tier add-ons and aren't part of the free self-hosted build.
Key facts
Pick Leantime when you want a PM tool built for non-traditional and neurodivergent-friendly workflows — kanban, Gantt-style milestones, sprints, time tracking, a wiki — with white-labeling, client management, and LDAP/OIDC login free out of the box. The tradeoff is a wide paid layer: AI features, program/portfolio strategy tools, whiteboards, custom fields, and recurring tasks all sit behind a Pro/plugin-bundle tier, not the free self-hosted build.
Follow the Leantime deploy guide →What you need
- Any VPS with at least 1024 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Paid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Leantime — official image with MySQL
mkdir -p leantime/db leantime/userfiles leantime/plugins && cd leantime
cat > docker-compose.yml <<'EOF'
services:
db:
image: mysql:8.4
command: --character-set-server=UTF8MB4 --collation-server=UTF8MB4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: change-me
MYSQL_DATABASE: leantime
MYSQL_USER: leantime
MYSQL_PASSWORD: change-me
volumes: ["./db:/var/lib/mysql"]
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
retries: 5
leantime:
image: leantime/leantime:3.9.8
environment:
LEAN_DB_HOST: db
LEAN_DB_USER: leantime
LEAN_DB_PASSWORD: change-me
LEAN_DB_DATABASE: leantime
LEAN_SESSION_PASSWORD: change-me-to-a-random-string
LEAN_SESSION_SECURE: "false"
ports: ["8080:8080"]
volumes: ["./userfiles:/var/www/html/userfiles", "./plugins:/var/www/html/app/Plugins"]
depends_on:
db:
condition: service_healthy
EOF
docker compose up -d # → http://SERVER_IP:8080 (complete setup in the browser, then register the first admin account)What you take on
Leantime's free core is solid, but more sits behind a paid tier here than on most apps in this cluster: