Environment Variables
Dokploy allows you to create and manage shared and service-level environment variables for your projects and environments.
Overview
Environment variables in Dokploy allow you to:
- Define configuration once and reuse it
- Share values across multiple services
- Reference values from within the same service
- Centrally manage sensitive information
Defining Variables
You can declare environment variables either:
- Project-level (shared) — available across all services in the project
- Environment-level — specific to a single environment
- Service-level — specific to a single service
Project-Level Variables
Practical Example
Let's consider a common scenario where you have:
- A PostgreSQL database
- Two services that need to connect to this database
1. Define Shared Variable
In the project's shared variables section, define:
2. Use the Variable in Services
In each service's environment variables tab, reference the shared variable:
Dokploy will automatically replace ${{project.DATABASE_URL}} with the value defined in the project's shared variables.
You can use shared environment variables in all the services available in dokploy.
Environment-Level Variables
Practical Example
Let's consider a scenario where you have:
- A staging environment with different database credentials
- Multiple services that need environment-specific configurations
1. Define Environment Variable
In the environment's variables section, define:
2. Use the Variable in Services
In each service's environment variables tab, reference the environment variable:
Dokploy will automatically replace ${{environment.VARIABLE_NAME}} with the value defined in the environment's variables.
You can use environment variables in all the services available in that specific environment.
Service-Level Variables
Service-level variables are specific to a single service and can be used to override shared variables or define service-specific configurations.
Practical Example
Let's say you have a service that requires a different database user. You can define a service-level variable:
Preview Deployments environments also include a service-level variable called DOKPLOY_DEPLOY_URL, which points to the deployment URL of the service.
It can be used as ${{DOKPLOY_DEPLOY_URL}} for variables like APP_URL=https://${{DOKPLOY_DEPLOY_URL}}.
Best Practices
- Use shared variables for credentials and configurations that repeat across services
- Keep descriptive variable names
- Document the purpose of each variable for easier maintenance