Environment variables

GitLab exposes certain environment variables which can be used to override their defaults values.

People usually configure GitLab with:

  • /etc/gitlab/gitlab.rb for Linux package installations.
  • gitlab.yml for self-compiled installations.

You can use the following environment variables to override certain values:

Supported environment variables

VariableTypeDescription
DATABASE_URLstringThe database URL; is of the form: postgresql://localhost/blog_development.
ENABLE_BOOTSNAPstringToggles Bootsnap for speeding up initial Rails boot. Enabled by default for non-production environments. Set to 0 to disable.
EXTERNAL_URLstringSpecify the external URL at the time of installation.
EXTERNAL_VALIDATION_SERVICE_TIMEOUTintegerTimeout, in seconds, for an external CI/CD pipeline validation service. Default is 5.
EXTERNAL_VALIDATION_SERVICE_URLstringURL to an external CI/CD pipeline validation service.
EXTERNAL_VALIDATION_SERVICE_TOKENstringThe X-Gitlab-Token for authentication with an external CI/CD pipeline validation service.
GITLAB_CDN_HOSTstringSets the base URL for a CDN to serve static assets (for example, https://mycdnsubdomain.fictional-cdn.com).
GITLAB_EMAIL_DISPLAY_NAMEstringThe name used in the From field in emails sent by GitLab.
GITLAB_EMAIL_FROMstringThe email address used in the From field in emails sent by GitLab.
GITLAB_EMAIL_REPLY_TOstringThe email address used in the Reply-To field in emails sent by GitLab.
GITLAB_EMAIL_SUBJECT_SUFFIXstringThe email subject suffix used in emails sent by GitLab.
GITLAB_HOSTstringThe full URL of the GitLab server (including http:// or https://).
GITLAB_MARKUP_TIMEOUTstringTimeout, in seconds, for rest2html and pod2html commands executed by the gitlab-markup gem. Default is 10.
GITLAB_ROOT_PASSWORDstringSets the password for the root user on installation.
GITLAB_SHARED_RUNNERS_REGISTRATION_TOKENstringSets the initial registration token used for runners.
RAILS_ENVstringThe Rails environment; can be one of production, development, staging, or test.
GITLAB_RAILS_CACHE_DEFAULT_TTL_SECONDSintegerThe default TTL used for entries stored in the Rails-cache. Default is 28800. Introduced in 15.3.
GITLAB_CI_CONFIG_FETCH_TIMEOUT_SECONDSintegerTimeout for resolving remote includes in CI config in seconds. Must be between 0 and 60. Default is 30. Introduced in 15.11.

Adding more variables

We welcome merge requests to make more settings configurable by using variables. Make changes to the config/initializers/1_settings.rb file, and use the naming scheme GITLAB_#{name in 1_settings.rb in upper case}.

Linux package installation configuration

To set environment variables, follow these instructions.

It’s possible to preconfigure the GitLab Docker image by adding the environment variable GITLAB_OMNIBUS_CONFIG to the docker run command. For more information, see Pre-configure Docker container.