OpenProject
Open source project management software.
Overview
OpenProject is a comprehensive open-source project management platform that combines traditional project planning with modern agile methodologies. Originally launched in 2012 as a fork of ChiliProject, it has evolved into a full-featured enterprise-ready solution offering Gantt charts, work package management, agile boards, time tracking, and specialized modules for construction projects through BIM (Building Information Modeling) integration. The platform serves as a complete alternative to proprietary tools like Microsoft Project, Jira, and Asana while maintaining full control over your project data.
This Docker deployment creates a three-container architecture with the OpenProject application server, a dedicated PostgreSQL database for reliable data persistence, and Memcached for session and query caching to improve performance. The PostgreSQL database ensures ACID compliance and data integrity for complex project relationships, while Memcached reduces database load during peak usage periods with multiple concurrent users accessing project data.
This configuration is ideal for teams ranging from small startups to large enterprises who need a self-hosted project management solution with advanced features like resource management, budget tracking, and custom workflows. The combination of OpenProject's rich feature set with PostgreSQL's reliability makes it particularly suitable for organizations handling complex, long-term projects requiring detailed documentation and compliance tracking.
Key Features
- Work package management with custom fields, relationships, and hierarchical task structures for complex project organization
- Interactive Gantt charts with drag-and-drop scheduling, critical path visualization, and dependency management
- Agile boards with Scrum and Kanban support, sprint planning, and burndown charts for iterative development
- Time tracking and cost reporting with detailed logging, approval workflows, and budget monitoring capabilities
- BIM module for construction projects with 3D model viewing, issue tracking directly on models, and BCF format support
- Multi-project dashboards with customizable widgets, cross-project reporting, and portfolio management views
- Advanced user management with role-based permissions, LDAP/SAML integration, and project-specific access controls
- Wiki and document management with version control, collaborative editing, and integration with work packages
Common Use Cases
- 1Software development teams managing sprints, releases, and bug tracking with integrated version control workflows
- 2Construction companies coordinating complex building projects with BIM models, subcontractor management, and compliance tracking
- 3Consulting firms tracking billable hours, project budgets, and client deliverables across multiple concurrent engagements
- 4Non-profit organizations managing grant-funded projects with detailed reporting requirements and volunteer coordination
- 5Manufacturing companies planning product development cycles with resource allocation and cross-departmental collaboration
- 6Educational institutions coordinating research projects, thesis supervision, and academic program management
- 7Government agencies handling public works projects with transparency requirements and multi-stakeholder coordination
Prerequisites
- Docker and Docker Compose installed with at least 2GB available RAM for the complete stack
- Port 8080 available for OpenProject web interface access
- Generated SECRET_KEY_BASE using openssl rand -hex 64 for secure session management
- Environment variables configured for DB_PASSWORD and SECRET_KEY in .env file
- Basic understanding of project management concepts like work packages, Gantt charts, and agile methodologies
- Administrative access for initial setup and user management configuration
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 openproject: 3 image: openproject/community:latest4 container_name: openproject5 restart: unless-stopped6 environment: 7 OPENPROJECT_SECRET_KEY_BASE: ${SECRET_KEY}8 OPENPROJECT_HOST__NAME: localhost:80809 OPENPROJECT_HTTPS: "false"10 DATABASE_URL: postgres://openproject:${DB_PASSWORD}@db/openproject11 ports: 12 - "8080:80"13 volumes: 14 - openproject_data:/var/openproject/assets15 depends_on: 16 - db17 - memcached1819 db: 20 image: postgres:13-alpine21 container_name: openproject-db22 restart: unless-stopped23 environment: 24 POSTGRES_USER: openproject25 POSTGRES_PASSWORD: ${DB_PASSWORD}26 POSTGRES_DB: openproject27 volumes: 28 - openproject_db:/var/lib/postgresql/data2930 memcached: 31 image: memcached:alpine32 container_name: openproject-memcached3334volumes: 35 openproject_data: 36 openproject_db: .env Template
.env
1SECRET_KEY=generate-long-random-key2DB_PASSWORD=changemeUsage Notes
- 1Docs: https://www.openproject.org/docs/
- 2Access at http://localhost:8080 - default: admin/admin
- 3Gantt charts, work packages, agile boards, time tracking
- 4BIM (Building Information Modeling) module for construction
- 5LDAP/SAML authentication for enterprise
- 6Generate SECRET_KEY: openssl rand -hex 64
Individual Services(3 services)
Copy individual services to mix and match with your existing compose files.
openproject
openproject:
image: openproject/community:latest
container_name: openproject
restart: unless-stopped
environment:
OPENPROJECT_SECRET_KEY_BASE: ${SECRET_KEY}
OPENPROJECT_HOST__NAME: localhost:8080
OPENPROJECT_HTTPS: "false"
DATABASE_URL: postgres://openproject:${DB_PASSWORD}@db/openproject
ports:
- "8080:80"
volumes:
- openproject_data:/var/openproject/assets
depends_on:
- db
- memcached
db
db:
image: postgres:13-alpine
container_name: openproject-db
restart: unless-stopped
environment:
POSTGRES_USER: openproject
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: openproject
volumes:
- openproject_db:/var/lib/postgresql/data
memcached
memcached:
image: memcached:alpine
container_name: openproject-memcached
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 openproject:5 image: openproject/community:latest6 container_name: openproject7 restart: unless-stopped8 environment:9 OPENPROJECT_SECRET_KEY_BASE: ${SECRET_KEY}10 OPENPROJECT_HOST__NAME: localhost:808011 OPENPROJECT_HTTPS: "false"12 DATABASE_URL: postgres://openproject:${DB_PASSWORD}@db/openproject13 ports:14 - "8080:80"15 volumes:16 - openproject_data:/var/openproject/assets17 depends_on:18 - db19 - memcached2021 db:22 image: postgres:13-alpine23 container_name: openproject-db24 restart: unless-stopped25 environment:26 POSTGRES_USER: openproject27 POSTGRES_PASSWORD: ${DB_PASSWORD}28 POSTGRES_DB: openproject29 volumes:30 - openproject_db:/var/lib/postgresql/data3132 memcached:33 image: memcached:alpine34 container_name: openproject-memcached3536volumes:37 openproject_data:38 openproject_db:39EOF4041# 2. Create the .env file42cat > .env << 'EOF'43SECRET_KEY=generate-long-random-key44DB_PASSWORD=changeme45EOF4647# 3. Start the services48docker compose up -d4950# 4. View logs51docker 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/openproject/run | bashTroubleshooting
- OpenProject container fails to start with database connection errors: Verify DB_PASSWORD matches between openproject and db services in environment variables
- Web interface shows 'Application failed to start' error: Check that SECRET_KEY_BASE environment variable is properly set and contains a valid 64-character hex string
- Slow page loading and timeouts during peak usage: Monitor memcached container status and consider increasing memory limits if cache evictions are frequent
- PostgreSQL container exits with permission denied errors: Ensure openproject_db volume has proper ownership and the postgres user can write to mounted directories
- Email notifications not working after setup: Configure SMTP settings through OpenProject admin panel as the default configuration uses local delivery only
- File uploads failing with 413 entity too large errors: Increase client_max_body_size in any reverse proxy configuration or modify OpenProject's upload limits
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
openprojectpostgresmemcached
Tags
#openproject#project-management#gantt#agile
Category
Productivity & CollaborationAd Space
Shortcuts: C CopyF FavoriteD Download