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
Variable | Type | Description |
---|---|---|
ENABLE_BOOTSNAP |
string | Enables Bootsnap for speeding up initial Rails boot (1 to enable) |
GITLAB_CDN_HOST |
string | Sets the base URL for a CDN to serve static assets (e.g. //mycdnsubdomain.fictional-cdn.com ) |
GITLAB_ROOT_PASSWORD |
string | Sets the password for the root user on installation |
GITLAB_HOST |
string | The full URL of the GitLab server (including http:// or https:// ) |
RAILS_ENV |
string | The Rails environment; can be one of production , development , staging or test
|
DATABASE_URL |
string | The database URL; is of the form: postgresql://localhost/blog_development
|
GITLAB_EMAIL_FROM |
string | The e-mail address used in the "From" field in e-mails sent by GitLab |
GITLAB_EMAIL_DISPLAY_NAME |
string | The name used in the "From" field in e-mails sent by GitLab |
GITLAB_EMAIL_REPLY_TO |
string | The e-mail address used in the "Reply-To" field in e-mails sent by GitLab |
GITLAB_EMAIL_SUBJECT_SUFFIX |
string | The e-mail subject suffix used in e-mails sent by GitLab |
GITLAB_UNICORN_MEMORY_MIN |
integer | The minimum memory threshold (in bytes) for the Unicorn worker killer |
GITLAB_UNICORN_MEMORY_MAX |
integer | The maximum memory threshold (in bytes) for the Unicorn worker killer |
GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN |
string | Sets the initial registration token used for runners |
UNSTRUCTURED_RAILS_LOG |
string | Enables the unstructured log in addition to JSON logs (defaults to true ) |
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:
Variable | Default value | Overridden by DATABASE_URL ? |
---|---|---|
GITLAB_DATABASE_ADAPTER |
postgresql |
Yes |
GITLAB_DATABASE_DATABASE |
gitlab_#{ENV['RAILS_ENV'] |
Yes |
GITLAB_DATABASE_USERNAME |
root |
Yes |
GITLAB_DATABASE_PASSWORD |
None | Yes |
GITLAB_DATABASE_HOST |
localhost |
Yes |
GITLAB_DATABASE_PORT |
5432 |
Yes |
GITLAB_DATABASE_ENCODING |
unicode |
No |
GITLAB_DATABASE_POOL |
10 |
No |
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 Pre-configure Docker container
section in the Omnibus documentation.