Environment Variables

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

People usually configure GitLab via /etc/gitlab/gitlab.rb for Omnibus installations, or gitlab.yml for installations from source.

Below you will find the supported environment variables which you can use to override certain values.

Supported environment variables

VariableTypeDescription
ENABLE_BOOTSNAPstringEnables Bootsnap for speeding up initial Rails boot (1 to enable)
GITLAB_CDN_HOSTstringSets the base URL for a CDN to serve static assets (e.g. //mycdnsubdomain.fictional-cdn.com)
GITLAB_ROOT_PASSWORDstringSets the password for the root user on installation
GITLAB_HOSTstringThe full URL of the GitLab server (including http:// or https://)
RAILS_ENVstringThe Rails environment; can be one of production, development, staging or test
DATABASE_URLstringThe database URL; is of the form: postgresql://localhost/blog_development
GITLAB_EMAIL_FROMstringThe e-mail address used in the “From” field in e-mails sent by GitLab
GITLAB_EMAIL_DISPLAY_NAMEstringThe name used in the “From” field in e-mails sent by GitLab
GITLAB_EMAIL_REPLY_TOstringThe e-mail address used in the “Reply-To” field in e-mails sent by GitLab
GITLAB_EMAIL_SUBJECT_SUFFIXstringThe e-mail subject suffix used in e-mails sent by GitLab
GITLAB_UNICORN_MEMORY_MINintegerThe minimum memory threshold (in bytes) for the Unicorn worker killer
GITLAB_UNICORN_MEMORY_MAXintegerThe maximum memory threshold (in bytes) for the Unicorn worker killer
GITLAB_SHARED_RUNNERS_REGISTRATION_TOKENstringSets the initial registration token used for GitLab Runners

Complete database variables

The recommended way of specifying your database connection information is to set the DATABASE_URL environment variable. This variable only holds connection information (adapter, database, username, password, host and port), but not behavior information (encoding, pool). If you don’t want to use DATABASE_URL and/or want to set database behavior information, you will have to either:

  • copy our template file: cp config/database.yml.env config/database.yml, or
  • set a value for some GITLAB_DATABASE_XXX variables

The list of GITLAB_DATABASE_XXX variables that you can set is:

VariableDefault valueOverridden by DATABASE_URL?
GITLAB_DATABASE_ADAPTERpostgresqlYes
GITLAB_DATABASE_DATABASEgitlab_#{ENV['RAILS_ENV']Yes
GITLAB_DATABASE_USERNAMErootYes
GITLAB_DATABASE_PASSWORDNoneYes
GITLAB_DATABASE_HOSTlocalhostYes
GITLAB_DATABASE_PORT5432Yes
GITLAB_DATABASE_ENCODINGunicodeNo
GITLAB_DATABASE_POOL10No

Adding more variables

We welcome merge requests to make more settings configurable via variables. Please make changes in the config/initializers/1_settings.rb file and stick to the naming scheme GITLAB_#{name in 1_settings.rb in upper case}.

Omnibus 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 the ‘preconfigure-docker-container’ section in the Omnibus documentation.