--- 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 (e.g., https://gitlab.example.com) default: https://gitlab.example.com ssh_port: type: int description: SSH port for Git operations default: 2424 ports: vars: ports_enabled: type: bool description: Expose HTTP/HTTPS ports default: true ports_http: type: int description: HTTP port default: 80 ports_https: type: int description: HTTPS port default: 443 ports_registry: type: int description: Port for Container Registry 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: https://registry.example.com 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.