--- 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.