diff --git a/apps/docs/content/docs/core/variables.mdx b/apps/docs/content/docs/core/variables.mdx index 84af0b1..5b83adc 100644 --- a/apps/docs/content/docs/core/variables.mdx +++ b/apps/docs/content/docs/core/variables.mdx @@ -1,21 +1,29 @@ --- title: Environment Variables -description: "Dokploy allows you to create and manage shared environment variables for your projects." +description: "Dokploy allows you to create and manage shared and service-level environment variables for your projects." --- import { Callout } from "fumadocs-ui/components/callout"; - ## Overview -Shared environment variables allow you to: -- Define values once and use them across multiple services -- Maintain configuration consistency between services +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 - + -## Practical Example +## Defining Variables + +You can declare environment variables either: +- **Project-level (shared)** — available across all services in the project +- **Service-level** — specific to a single service + +## Project-Level Variables + +### Practical Example Let's consider a common scenario where you have: - A PostgreSQL database @@ -41,11 +49,28 @@ DATABASE_URL=${{project.DATABASE_URL}} Dokploy will automatically replace `${{project.DATABASE_URL}}` with the value defined in the project's shared variables. -## Best Practices +You can use shared environment variables in all the services available in dokploy. + +## 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: + +```bash +DATABASE_USER=service_user +DATABASE_URL=postgresql://${{DATABASE_USER}}:${{project.DATABASE_PASSWORD}}@service-database:5432/postgres +``` + + + 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 - - -You can use shared enviroment variables in all the services available in dokploy. \ No newline at end of file +- Document the purpose of each variable for easier maintenance \ No newline at end of file