You can define environment variables for your resources, and they will be available in your application.

Preview Deployments could have different environment variables, so you can test your application as a staging environment for example.

Build Time Variables

If you would like to set environment variables for the build process, you can do by setting Build Variable on the UI.

Shared Variables

You could have 3 types of shared variables:

  1. Team Based
  2. Project Based
  3. Environment Based (production, staging, etc.)

You can set shared variables on their respective pages.

Then you can use these variables anywhere. For example: You defined NODE_ENV to production.

Team Based

You can set them on the Team page and use it with {{team.NODE_ENV}}.

Project Based

You can set them on the Projects page, under the gear icon and use it with {{project.NODE_ENV}}.

Environment Based

You can set them on the Environments page (select a Project), under the gear icon and use it with {{environment.NODE_ENV}}.

Predefined Variables

Coolify predefines some variables for you, so you can use them in your application. All you need to do is to add an environment variable like this to your application.

# For example, you can use this variable in your application
MY_VARIABLE=$SOURCE_COMMIT
# You will have the commit hash of the source code in your application as an environment variable in MY_VARIABLE

COOLIFY_FQDN

Fully qualified domain name(s) of the application.

COOLIFY_URL

URL(s) of the application.

COOLIFY_BRANCH

Branch name of the source code.

SOURCE_COMMIT

Commit hash of the source code.

PORT

If not set: it is set to the Port Exposes’s first port.

HOST

If not set: it is set to 0.0.0.0.