In this page you will find information about the settings that are used on

Table of contents

SSH host keys fingerprints

Below are the fingerprints for's SSH host keys.

Algorithm MD5 SHA256
DSA 7a:47:81:3a:ee:89:89:64:33:ca:44:52:3d:30:d4:87 p8vZBUOR0XQz6sYiaWSMLmh0t9i8srqYKool/Xfdfqw
ECDSA f1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35 HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw
ED25519 2e:65:6a:c8:cf:bf:b2:8b:9a:bd:6d:9f:11:5c:12:16 eUXGGm1YGsMAS7vkcx6JOJdOGHPem5gQp4taiCfCLB8
RSA b6:03:0e:39:97:9e:d0:e7:24:ce:a3:77:3e:01:42:09 ROQFvPThGrW4RuWLoL9tq9I9zJ42fK4XywyRtbOz/EQ

Mail configuration sends emails from the domain via Mailgun and has its own dedicated IP address (

Alternative SSH port can be reached via a different SSH port for git+ssh.

Setting Value
Port 443

An example ~/.ssh/config is the following:

  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

GitLab Pages

Below are the settings for GitLab Pages.

Setting Default
Domain name -
IP address -
Custom domains support yes no
TLS certificates support yes no

The maximum size of your Pages site is regulated by the artifacts maximum size which is part of GitLab CI.

GitLab CI

Below are the current settings regarding GitLab CI.

Setting Default
Artifacts maximum size 1G 100M

Shared Runners

Shared Runners on run in autoscale mode and powered by DigitalOcean. Autoscaling means reduced waiting times to spin up builds, and isolated VMs for each project, thus maximizing security.

They're free to use for public open source projects and limited to 2000 CI minutes per month per group for private projects. Read about all plans.

All your builds run on 2GB (RAM) ephemeral instances, with CoreOS and the latest Docker Engine installed. The default region of the VMs is NYC.

Below are the shared Runners settings.

Setting Default
GitLab Runner 10.2.0 (0a75cdd1) -
Executor docker+machine -
Default Docker image ruby:2.1 -
privileged (run Docker in Docker) true false


The full contents of our config.toml are:

  name = "docker-auto-scale"
  limit = X
  request_concurrency = X
  url = ""
  executor = "docker+machine"
  environment = [
    image = "ruby:2.1"
    privileged = true
    IdleCount = 40
    IdleTime = 1800
    MaxBuilds = 1
    MachineDriver = "digitalocean"
    MachineName = "machine-%s-digital-ocean-2gb"
    MachineOptions = [
    Type = "s3"
    ServerAddress = "IP_TO_OUR_CACHE_SERVER"
    AccessKey = "ACCESS_KEY"
    SecretKey = "ACCESS_SECRET_KEY"
    BucketName = "runner"
    Shared = true

Sidekiq runs Sidekiq with arguments --timeout=4 --concurrency=4 and the following environment variables:

Setting Default

Cron jobs

Periodically executed jobs by Sidekiq, to self-heal Gitlab, do external synchronizations, run scheduled pipelines, etc.:

Setting Default
pipeline_schedule_worker 19 * * * * 19 * * * *

PostgreSQL being a fairly large installation of GitLab means we have changed various PostgreSQL settings to better suit our needs. For example, we use streaming replication and servers in hot-standby mode to balance queries across different database servers.

The list of specific settings (and their defaults) is as follows:

Setting Default
archive_command /usr/bin/envdir /etc/wal-e.d/env /opt/wal-e/bin/wal-e wal-push %p empty
archive_mode on off
autovacuum_analyze_scale_factor 0.01 0.01
autovacuum_max_workers 6 3
autovacuum_vacuum_cost_limit 1000 -1
autovacuum_vacuum_scale_factor 0.01 0.02
checkpoint_completion_target 0.7 0.9
checkpoint_segments 32 10
effective_cache_size 338688MB Based on how much memory is available
hot_standby on off
hot_standby_feedback on off
log_autovacuum_min_duration 0 -1
log_checkpoints on off
log_line_prefix %t [%p]: [%l-1] empty
log_min_duration_statement 1000 -1
log_temp_files 0 -1
maintenance_work_mem 2048MB 16 MB
max_replication_slots 5 0
max_wal_senders 32 0
max_wal_size 5GB 1GB
shared_buffers 112896MB Based on how much memory is available
shared_preload_libraries pg_stat_statements empty
shmall 30146560 Based on the server's capabilities
shmmax 123480309760 Based on the server's capabilities
wal_buffers 16MB -1
wal_keep_segments 512 10
wal_level replica minimal
statement_timeout 15s 60s
idle_in_transaction_session_timeout 60s 60s

Some of these settings are in the process being adjusted. For example, the value for shared_buffers is quite high and as such we are looking into adjusting it. More information on this particular change can be found at An up to date list of proposed changes can be found at[]=database&label_name[]=change.

Unicorn adjusts the memory limits for the unicorn-worker-killer gem.

Base default:

Web front-ends:

Additional applications for

in addition to the GitLab EE omnibus install, uses the following applications and settings to achieve scale. All setting are located in the chef cookbooks in a publicly accessible chef repositories.



We use Elasticsearch, logstash. Kibana for part of our monitoring solution. gitlab-cookbooks / gitlab-elk · GitLab gitlab-cookbooks / gitlab_elasticsearch · GitLab


Prometheus complete our monitoring stack. gitlab-cookbooks / gitlab-prometheus · GitLab


for the visualisation of monitoring data gitlab-cookbooks / gitlab-grafana · GitLab


Open source error tracking gitlab-cookbooks / gitlab-sentry · GitLab



service discovery gitlab-cookbooks / gitlab_consul · GitLab


High Performance TCP/HTTP Load Balancer gitlab-cookbooks / gitlab-haproxy · GitLab