gitlab-org/gitlab
Configuration
Where the running app reads its settings from.
Configuration files
| File | Purpose |
|---|---|
config/gitlab.yml |
Master application config (host, ports, integrations, paths). Templated by Omnibus / Helm. |
config/database.yml |
Postgres connection settings (multi-DB aware). |
config/redis.yml, config/redis.<role>.yml |
Redis URLs per role (cache, queues, shared_state, trace_chunks, etc.). |
config/secrets.yml |
Devise secret, OTP key, OpenID secrets — usually generated. |
config/cable.yml |
Action Cable adapter config. |
config/puma.rb |
Puma worker/threads settings. |
config/sidekiq_queues.yml |
Sidekiq queue routing rules. |
config/feature_flags/ |
Feature-flag manifests (~463 entries). |
config/feature_categories.yml |
All feature categories. |
config/bounded_contexts.yml |
All bounded contexts. |
config/initializers/*.rb |
Boot-time setup (~150 initializers). |
config/routes.rb and config/routes/ |
Route definitions. |
config/locales/ |
i18n strings. |
config/vue3migration/ |
Vue 3 migration tracker. |
config/oj.rb |
Oj JSON config. |
config/clickhouse.yml |
ClickHouse connection. |
config/database_geo.yml |
Geo tracking DB (EE). |
Settings model
Application configuration also lives in the database via ApplicationSetting (a single-row table). The settings page in the admin UI edits this row. Gitlab::CurrentSettings is a request-cached accessor.
Environment variables
Selected ones — there are dozens more. See lib/gitlab/utils/sanitized_env.rb for the full safe-env enumeration.
| ENV | Purpose |
|---|---|
RAILS_ENV |
development / test / production |
GITLAB_LOG_PATH |
Directory for log files |
RAILS_LOG_TO_STDOUT |
Send logs to stdout (containerized) |
EXPERIMENTAL_RAILS_QUEUE |
Experimental queue adapters |
MALLOC_ARENA_MAX |
glibc allocator tuning |
GITLAB_FEATURES |
Override license features locally |
RUBY_GC_HEAP_* |
Ruby GC tuning |
OTEL_* |
OpenTelemetry tracing |
GITLAB_KAS_VERSION, GITLAB_PAGES_VERSION, GITLAB_SHELL_VERSION, GITLAB_WORKHORSE_VERSION |
Pinned external service versions |
GITLAB_LICENSE_FILE |
EE license file location |
GITLAB_ALLOW_SEPARATE_CI_DATABASE |
Multi-DB toggle |
DATABASE_URL, GITLAB_DATABASE_URL |
Postgres URL overrides |
REDIS_URL and per-role |
Redis overrides |
Secrets layout
Secrets live in:
config/secrets.yml— Devise secret base, OTP key, encrypted secrets key. Generated on install./etc/gitlab/gitlab-secrets.json(Omnibus) — central secret bundle.- Helm Secrets — one per role.
config/credentials.yml.enc(Rails 7) — present but not used in production; GitLab pre-dates Rails encrypted credentials.
Where to look up "what is this config?"
- Search
config/initializers/for the keyword. - Search
config/gitlab.yml.example(the canonical reference) for the YAML key. - Search
lib/gitlab/utils/sanitized_env.rbfor env names. - The Omnibus repo's
omnibus-gitlab/files/gitlab-cookbooks/...shows how each config is templated.
Related
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.