Environment variables

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed

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. Deprecated in GitLab 16.11.
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.
GITLAB_DISABLE_MARKDOWN_TIMEOUTstringIf set to true, 1, or yes, Markdown rendering on the backend does not time out. Default is false. Introduced in 17.4.
GITLAB_LFS_LINK_BATCH_SIZEintegerSets the batch size for linking LFS files. Default is 1000.
GITLAB_LFS_MAX_OID_TO_FETCHintegerSets the maximum number of LFS objects to link. Default is 100,000.
SIDEKIQ_SEMI_RELIABLE_FETCH_TIMEOUTintegerSets the timeout for Sidekiq semi-reliable fetch. Default is 5. Before GitLab 16.7, default was 3. If you experience high Redis CPU consumption on GitLab 16.6 and earlier, or if you have customized this variable, you should update this variable to 5.
SSL_IGNORE_UNEXPECTED_EOFstringOpenSSL 3.0 requires servers to send a close_notify before shutting down an SSL connection. Setting this to true will disable this. See the OpenSSL documentation for more details. Default is false.

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.