Leantime Project Management
Open-source project management system for non-project managers.
Overview
Leantime is an open-source project management system specifically designed for non-project managers and creative teams. Unlike traditional project management tools that can be overwhelming with complex features, Leantime focuses on simplicity and visual project organization through kanban boards, milestone tracking, and built-in time management features. It bridges the gap between basic task tracking and enterprise-level project management by providing intuitive interfaces for retrospectives, timesheets, and team collaboration.
This deployment consists of two containers: the main Leantime application server and a dedicated MySQL 8.0 database. The Leantime container runs the PHP-based web application on port 8080, while the MySQL database container handles all project data, user information, and task storage. The setup uses environment variables for database connectivity and includes persistent volumes for both user-uploaded files and database storage.
This stack is ideal for small to medium teams, creative agencies, and organizations that need project management without the complexity of enterprise tools like Jira or Monday.com. The combination provides a complete project management solution with the reliability of MySQL's proven database engine supporting Leantime's user-friendly interface for task management, milestone tracking, and team collaboration.
Key Features
- Visual kanban boards with drag-and-drop task management and customizable workflow columns
- Built-in timesheet functionality with project time tracking and reporting capabilities
- Milestone-based project planning with Gantt chart visualization and deadline management
- Integrated retrospective tools for agile teams with customizable retrospective templates
- Multi-language support with timezone configuration for distributed teams
- File upload and attachment management with persistent storage for project documents
- Native Slack and Discord integrations for real-time team notifications and updates
- MySQL 8.0 backend with JSON data type support and full-text search for project content
Common Use Cases
- 1Creative agencies managing client projects with visual workflows and time tracking
- 2Software development teams running agile sprints with retrospectives and milestone tracking
- 3Marketing teams coordinating campaigns across multiple channels and stakeholders
- 4Small business project coordination without the overhead of enterprise solutions
- 5Remote teams needing centralized task management with Slack/Discord integration
- 6Freelancers and consultants tracking billable hours across multiple client projects
- 7Non-profit organizations managing volunteer-driven projects and initiatives
Prerequisites
- Docker and Docker Compose installed with at least 1GB available RAM for MySQL
- Port 8080 available on the host system for web interface access
- Environment variables configured: DB_PASSWORD, DB_ROOT_PASSWORD, SITE_NAME, TZ, SESSION_PASSWORD
- Basic understanding of project management concepts like milestones and kanban workflows
- Web browser with JavaScript enabled for the responsive Leantime interface
- Sufficient disk space for MySQL data and user file uploads (recommend 5GB minimum)
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 leantime: 3 image: leantime/leantime:latest4 container_name: leantime5 environment: 6 - LEAN_DB_HOST=db7 - LEAN_DB_USER=leantime8 - LEAN_DB_PASSWORD=${DB_PASSWORD}9 - LEAN_DB_DATABASE=leantime10 - LEAN_SITENAME=${SITE_NAME}11 - LEAN_LANGUAGE=en-US12 - LEAN_DEFAULT_TIMEZONE=${TZ}13 - LEAN_SESSION_PASSWORD=${SESSION_PASSWORD}14 - LEAN_SESSION_EXPIRATION=2880015 volumes: 16 - leantime-files:/var/www/html/userfiles17 - leantime-public:/var/www/html/public/userfiles18 ports: 19 - "8080:80"20 depends_on: 21 - db22 networks: 23 - leantime-network24 restart: unless-stopped2526 db: 27 image: mysql:8.028 container_name: leantime-db29 environment: 30 - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}31 - MYSQL_DATABASE=leantime32 - MYSQL_USER=leantime33 - MYSQL_PASSWORD=${DB_PASSWORD}34 volumes: 35 - mysql-data:/var/lib/mysql36 networks: 37 - leantime-network38 restart: unless-stopped3940volumes: 41 leantime-files: 42 leantime-public: 43 mysql-data: 4445networks: 46 leantime-network: 47 driver: bridge.env Template
.env
1# Leantime2SITE_NAME=My Projects3TZ=UTC45# Database6DB_PASSWORD=secure_leantime_password7DB_ROOT_PASSWORD=secure_root_password89# Generate with: openssl rand -base64 3210SESSION_PASSWORD=your_session_passwordUsage Notes
- 1Web UI at http://localhost:8080
- 2Complete installation wizard
- 3Supports timesheets, milestones, kanban
- 4Built-in retrospectives
- 5Integrates with Slack, Discord
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
leantime
leantime:
image: leantime/leantime:latest
container_name: leantime
environment:
- LEAN_DB_HOST=db
- LEAN_DB_USER=leantime
- LEAN_DB_PASSWORD=${DB_PASSWORD}
- LEAN_DB_DATABASE=leantime
- LEAN_SITENAME=${SITE_NAME}
- LEAN_LANGUAGE=en-US
- LEAN_DEFAULT_TIMEZONE=${TZ}
- LEAN_SESSION_PASSWORD=${SESSION_PASSWORD}
- LEAN_SESSION_EXPIRATION=28800
volumes:
- leantime-files:/var/www/html/userfiles
- leantime-public:/var/www/html/public/userfiles
ports:
- "8080:80"
depends_on:
- db
networks:
- leantime-network
restart: unless-stopped
db
db:
image: mysql:8.0
container_name: leantime-db
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- MYSQL_DATABASE=leantime
- MYSQL_USER=leantime
- MYSQL_PASSWORD=${DB_PASSWORD}
volumes:
- mysql-data:/var/lib/mysql
networks:
- leantime-network
restart: unless-stopped
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 leantime:5 image: leantime/leantime:latest6 container_name: leantime7 environment:8 - LEAN_DB_HOST=db9 - LEAN_DB_USER=leantime10 - LEAN_DB_PASSWORD=${DB_PASSWORD}11 - LEAN_DB_DATABASE=leantime12 - LEAN_SITENAME=${SITE_NAME}13 - LEAN_LANGUAGE=en-US14 - LEAN_DEFAULT_TIMEZONE=${TZ}15 - LEAN_SESSION_PASSWORD=${SESSION_PASSWORD}16 - LEAN_SESSION_EXPIRATION=2880017 volumes:18 - leantime-files:/var/www/html/userfiles19 - leantime-public:/var/www/html/public/userfiles20 ports:21 - "8080:80"22 depends_on:23 - db24 networks:25 - leantime-network26 restart: unless-stopped2728 db:29 image: mysql:8.030 container_name: leantime-db31 environment:32 - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}33 - MYSQL_DATABASE=leantime34 - MYSQL_USER=leantime35 - MYSQL_PASSWORD=${DB_PASSWORD}36 volumes:37 - mysql-data:/var/lib/mysql38 networks:39 - leantime-network40 restart: unless-stopped4142volumes:43 leantime-files:44 leantime-public:45 mysql-data:4647networks:48 leantime-network:49 driver: bridge50EOF5152# 2. Create the .env file53cat > .env << 'EOF'54# Leantime55SITE_NAME=My Projects56TZ=UTC5758# Database59DB_PASSWORD=secure_leantime_password60DB_ROOT_PASSWORD=secure_root_password6162# Generate with: openssl rand -base64 3263SESSION_PASSWORD=your_session_password64EOF6566# 3. Start the services67docker compose up -d6869# 4. View logs70docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/leantime-pm/run | bashTroubleshooting
- Database connection failed error: Verify DB_PASSWORD matches between leantime and db containers in environment variables
- Installation wizard not appearing: Clear browser cache and ensure port 8080 is accessible, check if leantime container started successfully
- File uploads not persisting: Confirm leantime-files and leantime-public volumes are properly mounted and have write permissions
- MySQL container fails to start: Check DB_ROOT_PASSWORD is set and no other MySQL instance is using port 3306 internally
- Session timeouts too frequent: Adjust LEAN_SESSION_EXPIRATION value (default 28800 seconds) and verify SESSION_PASSWORD is configured
- Timezone display issues: Set LEAN_DEFAULT_TIMEZONE environment variable to match your location (e.g., America/New_York)
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
leantimemysql
Tags
#project-management#leantime#tasks#milestones
Category
Productivity & CollaborationAd Space
Shortcuts: C CopyF FavoriteD Download