Architecture Overview
Dokploy uses a four-tier organizational hierarchy:Organizations
An organization is the top-level entity in Dokploy. When you first install Dokploy, a default organization is created for you. Purpose: Organizations provide complete isolation between different tenants, companies, or business units. Use Cases:- Multi-tenant hosting platforms
- Agency managing multiple clients
- Enterprise divisions requiring complete separation
Most users work within a single organization. Multi-organization support is typically used in agency or enterprise scenarios.
Projects
Projects are the primary organizational unit for grouping related applications and services. Purpose: A project represents a product, application, or logical grouping of services that work together. Examples:- A SaaS product with frontend, backend, and database
- An e-commerce platform with multiple microservices
- A company website with staging and production versions
- Can contain multiple environments
- Project-level environment variables shared across all services
- Isolated networking and resources
Creating a Project
From the Dokploy dashboard:
Each new project automatically includes a default “Production” environment.
Environments
Environments represent different stages of your deployment pipeline within a project. Purpose: Separate development, staging, and production deployments with different configurations. Common Environments:- Production - Live, customer-facing services
- Staging - Pre-production testing environment
- Development - Active development and testing
- Each environment has isolated services and resources
- Environment-specific variables (API keys, database credentials)
- Independent deployment pipelines
- Services within an environment can communicate via Docker networking
Environment Isolation
Services in different environments are completely isolated:- Network namespace
- Resource limits
- Environment variables
- Deployment history
Creating an Environment
Services
Services are the actual workloads running in your infrastructure. Dokploy supports three types of services:1. Applications
Applications are your custom code deployed as containerized services. Source Types:- GitHub/GitLab/Bitbucket/Gitea - Deploy from Git repositories
- Docker Registry - Deploy pre-built Docker images
- Custom Git - Deploy from any Git repository via SSH
- Dockerfile - Build from a Dockerfile in your repo
- Drop - Upload and deploy source code directly
- Nixpacks - Zero-config automatic builds (detects Node.js, Python, Go, etc.)
- Dockerfile - Use your custom Dockerfile
- Heroku Buildpacks - Heroku-compatible buildpacks
- Paketo Buildpacks - Cloud Native Buildpacks
- Railpack - Optimized Ruby on Rails builds
- Static - Serve static sites (HTML/CSS/JS)
2. Databases
Managed database services with automatic configuration. Supported Databases:- PostgreSQL (
postgres:18) - Relational database - MySQL (
mysql:8) - Popular relational database - MongoDB (
mongo:8) - Document-oriented NoSQL - MariaDB (
mariadb:11) - MySQL fork - Redis (
redis:7) - In-memory cache and message broker
The service name (e.g.,
postgres-service) is automatically used as the hostname within the Docker network.3. Docker Compose
Deploy complex multi-container applications using Docker Compose files. Source Types:- GitHub/GitLab/Bitbucket/Gitea - Load compose file from repository
- Raw - Paste compose file directly in the UI
- Native
docker-compose.ymlsupport - Environment variable substitution
- Volume management
- Network configuration
- Service dependencies
- Parse your compose file
- Substitute environment variables
- Deploy all services as a stack
- Manage networking automatically
Deployments
Deployments are the process of building and running your services. Deployment Process:Trigger
Deployments start from:
- Manual deploy button
- Git push (with auto-deploy enabled)
- Webhook trigger
- API call
Build
For applications:
- Clone source code
- Install dependencies
- Build artifacts
- Create Docker image
- Push to registry (if configured)
Deploy
- Pull Docker image (if not built locally)
- Create/update Docker service
- Configure networking (Traefik routing)
- Apply environment variables
- Start containers
- Deployment history
- Build logs
- Deployment status
- Duration
- Git commit (for repository sources)
Docker Swarm Integration
Dokploy uses Docker Swarm for orchestration. Benefits:- Service discovery - Services find each other by name
- Load balancing - Automatic request distribution
- Rolling updates - Zero-downtime deployments
- Self-healing - Automatic container restart on failure
- Multi-node scaling - Deploy across multiple servers
Traefik Integration
Traefik acts as the reverse proxy and load balancer. Automatic Features:- HTTP/HTTPS routing based on domains
- SSL certificate generation (Let’s Encrypt)
- Load balancing across replicas
- Automatic service discovery
- WebSocket support
- Creates routing rules
- Obtains SSL certificate (if HTTPS enabled)
- Configures load balancing
- Updates automatically when service scales
Resource Management
Dokploy allows fine-grained resource control: CPU Limits:- Persistent volumes for databases
- Bind mounts for configuration files
- Named volumes managed by Docker
Monitoring
Dokploy provides real-time monitoring:- CPU Usage - Per-service CPU consumption
- Memory Usage - RAM usage and limits
- Network I/O - Ingress/egress bandwidth
- Storage - Disk usage per volume
- Logs - Real-time and historical logs
Next Steps
Deploy an Application
Put these concepts into practice with our quickstart guide
Advanced Features
Explore backups, templates, monitoring, and more