Instructions for installing GitLab as a Dokku application, using the official GitLab CE Docker image.
Create dokku application:
dokku apps:create gitlab
Create storage folders:
mkdir -p /home/storage/gitlab/data
mkdir -p /home/storage/gitlab/logs
mkdir -p /home/storage/gitlab/config
Mount storage folders:
dokku storage:mount gitlab /home/storage/gitlab/config:/etc/gitlab
dokku storage:mount gitlab /home/storage/gitlab/logs:/var/log/gitlab
dokku storage:mount gitlab /home/storage/gitlab/data:/var/opt/gitlab
Set proxy ports map and docker options:
dokku proxy:ports-set gitlab http:80:80
dokku docker-options:add gitlab deploy '-p 2222:22'
Create gitlab.rb
in /home/storage/gitlab/config
and add the following settings:
# GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://gitlab.example.com'
##! **Override only if you use a reverse proxy**
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port
nginx['listen_port'] = 80
##! **Override only if your reverse proxy internally communicates over HTTP**
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#supporting-proxied-ssl
nginx['listen_https'] = false
Clone this repository and push it to your dokku server:
git clone https://github.com/hardpixel/dokku-gitlab.git
cd dokku-gitlab
git remote add dokku [email protected]:gitlab
git push dokku master
Generate LetsEncrypt certificates:
dokku letsencrypt gitlab
Update ssh
config, located at ~/.ssh/config
, on your local machine:
Host gitlab.example.com
Port 2222
Connect to the gitlab app container:
dokku enter gitlab
gitlab-ctl reconfigure
Or run the command from outside the app container:
dokku run gitlab gitlab-ctl reconfigure
Before updating you have to stop the running container or the update will fail.
dokku ps:stop gitlab
docker pull gitlab/gitlab-ce
dokku ps:rebuild gitlab