What is a Project?
A project in Dokploy serves as a container for organizing related services and resources. Each project can contain multiple environments (like production, staging, development), and each environment can host various types of services including:- Applications (web apps, APIs, microservices)
- Databases (PostgreSQL, MySQL, MongoDB, MariaDB, Redis)
- Docker Compose deployments
Multi-Environment
Projects support multiple environments, allowing you to separate production from staging and development.
Shared Configuration
Define project-level environment variables that are inherited by all services within the project.
Access Control
Manage team permissions at the project level with granular access control.
Organization
Keep related services together for better organization and management.
Project Structure
The hierarchical structure in Dokploy follows this pattern:Creating a Project
Projects are created at the organization level. When you create a new project, Dokploy automatically generates a default “Production” environment to get you started.Project Properties
The display name of your project. This is what you’ll see in the dashboard.
Optional description to help you and your team understand the purpose of this project.
Project-level environment variables that will be inherited by all services in all environments. Format:
KEY=value (one per line).Database Schema
Projects are stored with the following structure:Environment Variables Hierarchy
Environment variables in Dokploy follow an inheritance pattern:- Project Level: Variables defined at the project level are available to all environments
- Environment Level: Variables defined at the environment level override project variables
- Service Level: Variables defined at the application/database level have the highest priority
Managing Projects
Viewing Projects
All projects in your organization are displayed in the main dashboard. Each project shows:- Number of environments
- Total number of services (applications, databases, compose deployments)
- Recent activity and deployment status
Updating Projects
You can update project properties at any time:- Change the name or description
- Modify project-level environment variables
- Add or remove environments
Project Duplication
Dokploy allows you to duplicate projects along with their services and configurations. This is useful for:- Creating staging environments from production
- Setting up similar projects with different configurations
- Testing major changes in an isolated environment
- Copy all services or select specific ones
- Duplicate into the same project (creates a new environment) or create a new project
- Include or exclude service configurations like domains, mounts, and environment variables
Access Control
Projects support role-based access control (RBAC) through Dokploy’s organization and member management system:- Admin: Full access to create, update, and delete projects
- Member: Limited access based on assigned permissions
Best Practices
Organize by Application or Team
Organize by Application or Team
Create separate projects for different applications or team boundaries. For example, have a “Frontend” project and a “Backend API” project, or organize by team ownership.
Use Descriptive Names
Use Descriptive Names
Choose clear, descriptive names that make it easy to identify the purpose of each project at a glance.
Leverage Project-Level Variables
Leverage Project-Level Variables
Define common configuration values at the project level to avoid repetition across services.
Plan Your Environment Strategy
Plan Your Environment Strategy
Decide on your environment naming strategy early (e.g., production, staging, development, feature branches) and use it consistently.
Next Steps
Environments
Learn about environments and how they organize services within projects
Applications
Deploy your first application within a project