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
Variable | Type | Description |
---|---|---|
DATABASE_URL
| string | The database URL; is of the form: postgresql://localhost/blog_development .
|
ENABLE_BOOTSNAP
| string | Toggles Bootsnap for speeding up initial Rails boot. Enabled by default for non-production environments. Set to 0 to disable.
|
EXTERNAL_URL
| string | Specify the external URL at the time of installation. |
EXTERNAL_VALIDATION_SERVICE_TIMEOUT
| integer | Timeout, in seconds, for an external CI/CD pipeline validation service. Default is 5 .
|
EXTERNAL_VALIDATION_SERVICE_URL
| string | URL to an external CI/CD pipeline validation service. |
EXTERNAL_VALIDATION_SERVICE_TOKEN
| string | The X-Gitlab-Token for authentication with an external CI/CD pipeline validation service.
|
GITLAB_CDN_HOST
| string | Sets the base URL for a CDN to serve static assets (for example, https://mycdnsubdomain.fictional-cdn.com ).
|
GITLAB_EMAIL_DISPLAY_NAME
| string | The name used in the From field in emails sent by GitLab. |
GITLAB_EMAIL_FROM
| string | The email address used in the From field in emails sent by GitLab. |
GITLAB_EMAIL_REPLY_TO
| string | The email address used in the Reply-To field in emails sent by GitLab. |
GITLAB_EMAIL_SUBJECT_SUFFIX
| string | The email subject suffix used in emails sent by GitLab. |
GITLAB_HOST
| string | The full URL of the GitLab server (including http:// or https:// ).
|
GITLAB_MARKUP_TIMEOUT
| string | Timeout, in seconds, for rest2html and pod2html commands executed by the gitlab-markup gem. Default is 10 .
|
GITLAB_ROOT_PASSWORD
| string | Sets the password for the root user on installation.
|
GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN
| string | Sets the initial registration token used for runners. Deprecated in GitLab 16.11. |
RAILS_ENV
| string | The Rails environment; can be one of production , development , staging , or test .
|
GITLAB_RAILS_CACHE_DEFAULT_TTL_SECONDS
| integer | The default TTL used for entries stored in the Rails-cache. Default is 28800 . Introduced in 15.3.
|
GITLAB_CI_CONFIG_FETCH_TIMEOUT_SECONDS
| integer | Timeout for resolving remote includes in CI config in seconds. Must be between 0 and 60 . Default is 30 . Introduced in 15.11.
|
GITLAB_DISABLE_TOKEN_EXPIRATION_BANNER
| string | If set to true , 1 , or yes , the token expiration banner is not shown. Default is false .
|
GITLAB_DISABLE_MARKDOWN_TIMEOUT
| string | If set to true , 1 , or yes , Markdown rendering on the backend does not time out. Default is false . Introduced in 17.4.
|
GITLAB_LFS_MAX_OID_TO_FETCH
| integer | Sets the maximum number of LFS objects to link. Default is 100,000 .
|
SIDEKIQ_SEMI_RELIABLE_FETCH_TIMEOUT
| integer | Sets 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 .
|
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.