From David's Wiki
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

Kubernetes Administration

Notes on deploying GitLab using their Helm chart.


To use your own PVs and PVCs,

  • Create your own PVs and PVCs for gitaly, postgres, and redis.
  • Setup a PV for minio.
    • Note that the gitaly PVC should be named repo-data-gitlab-gitaly-0
  • Set the following values:
  replicas: 2
    volumeName: gitlab-minio
    existingClaim: gitlab-redis
    existingClaim: gitlab-postgres

Migration from Omnibus Install

See Migrate from the Linux package to the Helm chart

Docker-in-docker CI/CD

The Gitlab CI/CD is useful for building docker images.
You will need to deploy setup Gitlab runners.

Due to some issues with fastly [1], you will want to set command: ["--mtu=1300"] on your dind service containers.

Omnibus Administration

Here are notes on running your own gitlab instance.
Note: I've migrated from the Omnibus install to the helm charts.


  • unicorn - this is the web server portion of gitlab
  • sidekiq - the background job processor

Basic Commands

sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl restart


LFS Administration

Edit the config in /etc/gitlab/gitlab.rb and set the following:

### Git LFS
gitlab_rails['lfs_enabled'] = true
gitlab_rails['lfs_storage_path'] = "/var/opt/gitlab/gitlab-rails/shared/lfs-objects"


The easiest way if you have very few users like me is to setup a separate gmail account.
Then use such that the separate gmail account can send using your domain.
Then fill in the configuration.
See settings:smtp#gmail. Also set:

gitlab_rails['gitlab_email_from'] = '[email protected]'

Container Registry

In /etc/gitlab/gitlab.rb, edit the following:

registry_external_url ''

### Settings used by GitLab application
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = ""
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

registry_nginx['enable'] = false

Then have your reverse proxy to 5000.