Setup GitLab¶
Startup¶
Run in a docker container behind, Traefik:
docker run --rm -it
  --name gitlab
  --label 'traefik.enable=true'
  --label 'traefik.port=80'
  --label 'traefik.frontend.rule=Host: gitlab.example.com'
  --network traefik
  gitlab/gitlab-ce:12.1.4-ce.0     gitlab.example.com:
        restart: always
        image: gitlab/gitlab-ce:12.1.4-ce.0
        environment:
            GITLAB_OMNIBUS_CONFIG: |
                letsencrypt['enable'] = false
                external_url 'https://gitlab.example.com/'
                nginx['enable'] = true
                nginx['listen_port'] = 80
                nginx['listen_https'] = false
                nginx['real_ip_trusted_addresses'] = [ '172.0.0.0/8' ]
                nginx['real_ip_header'] = 'X-Forwarded-For'
                grafana['enable'] = false
                gitlab_rails['lfs_enabled'] = true
                gitlab_rails['gitlab_shell_ssh_port'] = 2022;
        ports:
            - 2022:22/tcp
        labels:
            traefik.enable: 'true'
            traefik.port: '80'
            traefik.frontend.rule: 'Host: gitlab.example.com'
        networks:
            - traefik Warning
It takes quite a while to startup, watch with docker logs -f gitlab.
Warning
If you haven't already, you will probably want to configure Docker's log rotation.
Setup User Accounts¶
- Visit 
gitlab.example.com, and provide a root password. - Login as root.
 - Disable account sign-up:
- Click the spanner icon (top, middle) to access the "Admin Area"
 - Navigate to "Settings" → "General" → "Sign-up rescrictions"
 - Disable sign-up
 - Save
 
 - Alter the root account for you.
 
Important Notes¶
Some file locations, you'll probably want to mounte these as volumes:
/var/opt/gitlab/git-data/repositories/- Git repositories are stored here, probably under 
./@hashed/... - The repository's name / path can be found in 
./@hashed/*/*/*.git/config 
- Git repositories are stored here, probably under 
 /var/opt/gitlab/gitlab-rails/uploads/- Uploaded files are stored here, probably under 
./@hashed/... - The file's original name is available at the bottom of the tree.
 
- Uploaded files are stored here, probably under 
 /etc/gitlab/- Configuration, SSH host keys, etc...
 
/var/log/gitlab/- Logs
 
/var/opt/gitlab/- Runtime data (databases, etc...)