| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- ---
- kind: compose
- metadata:
- name: GitLab
- description: >
- GitLab is a web-based DevOps lifecycle tool that provides a Git repository
- manager providing wiki, issue-tracking, and CI/CD pipeline features, using
- an open-source license, developed by GitLab Inc.
- Project: https://about.gitlab.com/
- Documentation: https://docs.gitlab.com/
- version: 18.4.2-ce.0
- author: Christian Lempa
- date: '2025-10-08'
- tags:
- - git
- - ci-cd
- next_steps: |
- 1. Start GitLab:
- docker compose up -d
- 2. Wait for GitLab to initialize (this may take 2-5 minutes)
- 3. Access the web interface:
- {% if traefik_enabled -%}
- - Via Traefik: https://{{ traefik_host }}
- {% if ports_enabled %}- Direct access: http://localhost:{{ ports_http }}{% endif %}
- {%- else -%}
- - Open {{ external_url }} in your browser
- {% if ports_enabled %}- Or: http://localhost:{{ ports_http }}{% endif %}
- {%- endif %}
- 4. Initial login:
- - Username: root
- - Retrieve initial password:
- docker exec {{ container_name }} grep 'Password: ' /etc/gitlab/initial_root_password
- IMPORTANT: Change this password immediately after first login!
- For more information, visit: https://docs.gitlab.com/
- spec:
- general:
- vars:
- service_name:
- default: "gitlab"
- container_name:
- default: "gitlab"
- external_url:
- type: str
- description: External URL for GitLab
- default: http://localhost
- ports:
- vars:
- ports_http:
- type: int
- description: HTTP port
- default: 80
- ports_ssh:
- type: int
- description: SSH port
- default: 2424
- required: true
- ports_registry:
- type: int
- description: Container Registry port
- default: 5678
- traefik:
- vars:
- traefik_host:
- default: gitlab.home.arpa
- traefik_registry_host:
- default: registry.home.arpa
- type: str
- description: Hostname for Container Registry in Traefik (if enabled)
- registry:
- description: GitLab Container Registry configuration
- required: false
- toggle: registry_enabled
- vars:
- registry_enabled:
- type: bool
- description: Enable GitLab Container Registry
- default: false
- registry_external_url:
- type: str
- description: External URL for Container Registry
- default: http://localhost:2424
- advanced:
- title: Advanced Settings
- description: Performance tuning and advanced configuration options
- required: false
- vars:
- performance_preset:
- type: enum
- description: Performance optimization profile
- options:
- - homelab
- - default
- default: homelab
- extra: homelab is optimized for low-resource environments, default is for standard servers
- prometheus_enabled:
- type: bool
- description: Enable Prometheus monitoring
- default: false
- extra: Disabling saves ~200-400MB RAM. GitLab UI metrics will be unavailable.
|