Architecture
Overview
OpenProject 15.0.0 is an open-source project management software that supports agile project management, traditional project management, and hybrid methodologies. It provides comprehensive features for project planning, team collaboration, time tracking, and reporting.
Core Components
Application Layer
-
Ruby on Rails Framework: Core application framework (Rails 7.0+)
-
Angular Frontend: Modern web interface with responsive design
-
API Gateway: RESTful API for external integrations
-
Background Job Processing: Sidekiq for asynchronous task processing
Database Layer
-
PostgreSQL: Primary database (version 13+)
-
Redis: Caching and session storage
-
File Storage: Local filesystem or S3-compatible storage
-
Search Engine: Full-text search capabilities
Infrastructure Components
-
Web Server: Nginx or Apache (reverse proxy)
-
Application Server: Puma (Ruby application server)
-
Process Manager: Systemd or Docker orchestration
-
Message Queue: Redis-based job queue
System Architecture
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Load Balancer │ │ Web Server │ │ Application │ │ (Nginx/HAProxy│◄──►│ (Nginx/Apache)│◄──►│ Server (Puma) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ┌─────────────────┐ │ │ Redis Cache │◄───────────┤ │ (Sessions) │ │ └─────────────────┘ │ │ ┌─────────────────┐ │ │ PostgreSQL │◄───────────┤ │ Database │ │ └─────────────────┘ │ │ ┌─────────────────┐ │ │ File Storage │◄───────────┘ │ (Local/S3) │ └─────────────────┘
Deployment Patterns
Single Server Deployment
-
All components on single server
-
Suitable for small teams (up to 50 users)
-
Simplified maintenance and backup
Multi-Server Deployment
-
Separate database and application servers
-
Horizontal scaling capabilities
-
Load balancing and high availability
Container Deployment
-
Docker-based deployment
-
Kubernetes orchestration
-
Microservices architecture support
Cloud Deployment
-
AWS/Azure/GCP compatible
-
Auto-scaling capabilities
-
Managed database services integration