summaryrefslogtreecommitdiff
path: root/doc/administration/environment_variables.md
blob: d48a47e96451dca3c9fd8184f4975f00b95d4108 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
---
stage: Verify
group: Continuous Integration
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
type: reference
---

# 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](https://docs.gitlab.com/omnibus/settings/environment-variables.html).

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](https://docs.gitlab.com/omnibus/docker/#pre-configure-docker-container)
section in the Omnibus documentation.