docker.recipes

OpenProject

intermediate

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:latest
4 container_name: openproject
5 restart: unless-stopped
6 environment:
7 OPENPROJECT_SECRET_KEY_BASE: ${SECRET_KEY}
8 OPENPROJECT_HOST__NAME: localhost:8080
9 OPENPROJECT_HTTPS: "false"
10 DATABASE_URL: postgres://openproject:${DB_PASSWORD}@db/openproject
11 ports:
12 - "8080:80"
13 volumes:
14 - openproject_data:/var/openproject/assets
15 depends_on:
16 - db
17 - memcached
18
19 db:
20 image: postgres:13-alpine
21 container_name: openproject-db
22 restart: unless-stopped
23 environment:
24 POSTGRES_USER: openproject
25 POSTGRES_PASSWORD: ${DB_PASSWORD}
26 POSTGRES_DB: openproject
27 volumes:
28 - openproject_db:/var/lib/postgresql/data
29
30 memcached:
31 image: memcached:alpine
32 container_name: openproject-memcached
33
34volumes:
35 openproject_data:
36 openproject_db:

.env Template

.env
1SECRET_KEY=generate-long-random-key
2DB_PASSWORD=changeme

Usage Notes

  1. 1Docs: https://www.openproject.org/docs/
  2. 2Access at http://localhost:8080 - default: admin/admin
  3. 3Gantt charts, work packages, agile boards, time tracking
  4. 4BIM (Building Information Modeling) module for construction
  5. 5LDAP/SAML authentication for enterprise
  6. 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 file
2cat > docker-compose.yml << 'EOF'
3services:
4 openproject:
5 image: openproject/community:latest
6 container_name: openproject
7 restart: unless-stopped
8 environment:
9 OPENPROJECT_SECRET_KEY_BASE: ${SECRET_KEY}
10 OPENPROJECT_HOST__NAME: localhost:8080
11 OPENPROJECT_HTTPS: "false"
12 DATABASE_URL: postgres://openproject:${DB_PASSWORD}@db/openproject
13 ports:
14 - "8080:80"
15 volumes:
16 - openproject_data:/var/openproject/assets
17 depends_on:
18 - db
19 - memcached
20
21 db:
22 image: postgres:13-alpine
23 container_name: openproject-db
24 restart: unless-stopped
25 environment:
26 POSTGRES_USER: openproject
27 POSTGRES_PASSWORD: ${DB_PASSWORD}
28 POSTGRES_DB: openproject
29 volumes:
30 - openproject_db:/var/lib/postgresql/data
31
32 memcached:
33 image: memcached:alpine
34 container_name: openproject-memcached
35
36volumes:
37 openproject_data:
38 openproject_db:
39EOF
40
41# 2. Create the .env file
42cat > .env << 'EOF'
43SECRET_KEY=generate-long-random-key
44DB_PASSWORD=changeme
45EOF
46
47# 3. Start the services
48docker compose up -d
49
50# 4. View logs
51docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/openproject/run | bash

Troubleshooting

  • 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

Ad Space