← All articles
black flat screen computer monitor

OpenProject: Self-Hosted Project Management for Teams

Productivity 2026-03-04 · 4 min read openproject project management self-hosted docker jira alternative gantt agile open-source
By Selfhosted Guides Editorial TeamSelf-hosting practitioners covering open source software, home lab infrastructure, and data sovereignty.

Project management tools have become notoriously expensive: Jira's per-user pricing adds up quickly; Monday.com and Asana price out small teams; Notion's project tracking works until you need real task management. OpenProject is a mature open-source alternative with genuinely enterprise-grade features that runs on your own infrastructure.

Photo by Conikal on Unsplash

It's been in active development since 2012, used by organizations including NASA, Deutsche Bahn, and various government agencies. The feature set is serious: work packages, Gantt charts, Kanban, agile sprints, time tracking, budgets, wikis, and team calendars.

What OpenProject Provides

Work packages: OpenProject's term for tasks, user stories, bugs, features, or any work item. Highly customizable with types, statuses, custom fields, and hierarchies.

Views:

Project structure: Projects can have subprojects. Work packages span projects. Templates accelerate new project setup.

Agile features: Sprint planning, velocity tracking, backlog management. OpenProject supports both Scrum and Kanban methodologies.

Time tracking: Log time against work packages. Generate time reports for billing or estimation accuracy analysis.

Wikis: Each project has a built-in wiki for documentation.

Forums and news: Optional communication features within projects.

Docker Deployment

OpenProject's official Docker Compose setup:

# Download the official compose file
curl -L https://raw.githubusercontent.com/opf/openproject-deploy/stable/15/compose/docker-compose.yml -o docker-compose.yml

# Create config
mkdir -p pgdata assets

# Start
OPENPROJECT_SECRET_KEY_BASE=$(openssl rand -hex 64) \
OPENPROJECT_HOST__NAME=openproject.yourdomain.com \
docker compose up -d

Or with a custom docker-compose.yml:

services:
  db:
    image: postgres:15
    restart: always
    environment:
      POSTGRES_USER: openproject
      POSTGRES_PASSWORD: change-this
      POSTGRES_DB: openproject
    volumes:
      - pgdata:/var/lib/postgresql/data

  cache:
    image: redis:7-alpine
    restart: always

  web:
    image: openproject/openproject:15
    restart: always
    depends_on:
      - db
      - cache
    environment:
      OPENPROJECT_SECRET_KEY_BASE: your-64-char-secret
      OPENPROJECT_HOST__NAME: openproject.yourdomain.com
      OPENPROJECT_HTTPS: "true"
      DATABASE_URL: postgres://openproject:change-this@db/openproject
      RAILS_CACHE_STORE: redis
      OPENPROJECT_RAILS__CACHE__STORE: redis
      OPENPROJECT_RAILS__RELATIVE__URL__ROOT: ""
      SMTP_ADDRESS: smtp.example.com
      SMTP_PORT: 587
      SMTP_DOMAIN: yourdomain.com
      SMTP_USER_NAME: [email protected]
      SMTP_PASSWORD: smtp-password
    volumes:
      - assets:/app/public/assets
    ports:
      - 8080:80

volumes:
  pgdata:
  assets:

OpenProject takes a few minutes to start on first launch while it runs database migrations. Check logs with docker compose logs -f web.

Initial Configuration

After starting, navigate to http://your-server:8080:

  1. Log in with [email protected] / admin (default credentials)
  2. Change the admin password immediately
  3. Configure your organization name and settings (Administration → General settings)
  4. Create projects and invite team members

Create your first project:

  1. Click the home icon → New project
  2. Set name, type (scrum, kanban, or blank), and privacy level
  3. Invite team members via email or create accounts for them

Like what you're reading? Subscribe to Self-Hosted Weekly — free weekly guides in your inbox.

Work Package Customization

OpenProject's work package types are highly customizable:

Types: Task, User Story, Bug, Feature, Milestone, Phase — or create custom types.

Custom fields: Add text fields, numbers, dates, selects, or multi-selects to work packages.

Statuses and workflows: Define which statuses exist and which transitions are allowed for each type. (e.g., Bugs go from New → In Progress → Testing → Closed, but not directly from New → Closed without a Testing step.)

Priorities: Customize priority levels and colors.

Gantt Chart and Dependencies

OpenProject's Gantt chart is one of its strongest features. You can:

For project planning that needs timeline visualization and dependency tracking, this competes favorably with paid tools.

Agile Workflow

For Scrum teams:

  1. Enable the Backlogs module in project settings
  2. Define sprints in the project
  3. Move stories from backlog to sprint
  4. Use the sprint board for daily standups
  5. Close sprints and track velocity over time

For Kanban teams:

  1. Enable the Board module
  2. Create columns matching your workflow
  3. Drag work packages between columns
  4. Set WIP limits (optional)

Time Tracking and Budgets

Log time directly on work packages. Set estimated time at the work package level; actuals are logged as time entries.

At the project level, set budgets:

This makes OpenProject functional for client billing or internal project costing.

OpenProject vs. Alternatives

Tool Open source Self-hosted Gantt Sprints Price
OpenProject Free (community)
Jira No Cloud only $8+/user/month
Linear No No No $8+/user/month
Plane No Free (self-host)
GitLab Issues No Requires GitLab
Redmine Basic No Free

OpenProject vs. Plane: Plane is newer and more lightweight. OpenProject has more mature Gantt and time tracking. For complex project timelines, OpenProject wins. For modern agile teams, Plane is simpler to adopt.

OpenProject vs. Redmine: OpenProject started as a fork of Redmine and has significantly more modern UI and features. If you're on Redmine and want to stay self-hosted, OpenProject is the natural upgrade.

Performance Tuning

OpenProject runs Rails and can be memory-hungry:

For small teams (under 20 users), a 4GB RAM instance handles the load comfortably.

The repository is at opf/openproject. Enterprise features (single sign-on, PDF exports, 2FA) require the paid BIM or Enterprise edition. The community edition is fully functional for most small-to-medium teams.

Get free weekly tips in your inbox. Subscribe to Self-Hosted Weekly