{ "slug": "gitlab", "kind": "compose", "metadata": { "name": "GitLab", "description": "Complete DevOps platform providing Git repository management, CI/CD pipelines, issue tracking, and an optional container registry in a single application.", "tags": [ "traefik" ], "icon": { "provider": "selfhst", "id": "gitlab" }, "draft": false, "version": { "name": "18.11.2-ce.0", "source_dep_name": "docker.io/gitlab/gitlab-ce", "source_dep_version": "18.11.2-ce.0" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "service_name", "type": "str", "title": "Service Name", "required": false, "default": "gitlab", "config": { "placeholder": "gitlab" } }, { "name": "external_url", "type": "str", "title": "External URL", "required": false, "default": "http://localhost", "config": { "placeholder": "http://localhost" } }, { "name": "root_email", "type": "str", "title": "Root Email", "required": true, "description": "Initial root user email address", "config": { "placeholder": "admin@home.arpa" } }, { "name": "root_password", "type": "secret", "title": "Root Password", "required": false, "description": "Initial root user password (only used on first initialization)", "config": { "autogenerated": { "length": 32 } } }, { "name": "default_theme", "type": "int", "title": "UI Theme", "required": false, "default": 2, "description": "Default GitLab UI theme (2 = dark mode)", "config": { "placeholder": "2" } }, { "name": "default_color_mode", "type": "int", "title": "Color Mode", "required": false, "default": 2, "description": "Default color mode (2 = dark mode)", "config": { "placeholder": "2" } }, { "name": "disable_usage_data", "type": "bool", "title": "Usage Data", "required": false, "default": true, "description": "Disable product usage metrics upload to GitLab" }, { "name": "restart_policy", "type": "enum", "title": "Restart Policy", "required": true, "default": "unless-stopped", "config": { "options": [ "unless-stopped", "always", "on-failure", "no" ] } } ] }, { "title": "Advanced Settings", "name": "advanced", "items": [ { "name": "performance_preset", "type": "enum", "title": "Performance optimization profile", "required": false, "default": "homelab", "config": { "options": [ "homelab", "default" ] } }, { "name": "prometheus_enabled", "type": "bool", "title": "Prometheus", "required": false, "default": false } ] }, { "title": "Ports", "name": "ports", "items": [ { "name": "ports_http", "type": "str", "title": "HTTP Port", "required": false, "default": 80, "config": { "placeholder": "80" } }, { "name": "ports_ssh", "type": "str", "title": "Ports Ssh", "required": false, "default": 2424, "config": { "placeholder": "2424" } }, { "name": "ports_registry", "type": "int", "title": "Container Registry port", "required": false, "default": 5000, "config": { "placeholder": "5000" } } ] }, { "title": "Registry", "toggle": "registry_enabled", "name": "registry", "items": [ { "name": "registry_enabled", "type": "bool", "title": "Registry", "required": false, "default": false }, { "name": "registry_external_url", "type": "str", "title": "Registry URL", "required": false, "default": "http://localhost:5000", "description": "External URL for Container Registry", "config": { "placeholder": "http://localhost:5000" } } ] }, { "title": "Traefik", "name": "traefik", "toggle": "traefik_enabled", "items": [ { "name": "traefik_enabled", "type": "bool", "title": "Traefik", "required": false, "default": false }, { "name": "traefik_host", "type": "str", "title": "Host", "required": true, "config": { "placeholder": "gitlab" } }, { "name": "traefik_registry_host", "type": "str", "title": "Registry Host", "required": false, "default": "registry.home.arpa", "description": "Hostname for Container Registry in Traefik (if enabled)", "needs": [ "registry_enabled=true" ], "config": { "placeholder": "registry.home.arpa" } }, { "name": "traefik_domain", "type": "str", "title": "Domain", "required": true, "config": { "placeholder": "home.arpa" } }, { "name": "traefik_entrypoint", "type": "str", "title": "Entrypoint", "required": true, "default": "web", "config": { "placeholder": "web" } }, { "name": "traefik_network", "type": "str", "title": "Network", "required": true, "default": "traefik", "config": { "placeholder": "traefik" } }, { "name": "traefik_tls_enabled", "type": "bool", "title": "TLS", "required": false, "default": false }, { "name": "traefik_tls_entrypoint", "type": "str", "title": "TLS Entrypoint", "required": true, "default": "websecure", "config": { "placeholder": "websecure" }, "needs": [ "traefik_tls_enabled=true" ] }, { "name": "traefik_tls_certresolver", "type": "str", "title": "Cert Resolver", "required": true, "default": "cloudflare", "config": { "placeholder": "cloudflare" }, "needs": [ "traefik_tls_enabled=true" ] } ] }, { "title": "Email", "toggle": "email_enabled", "name": "email", "items": [ { "name": "email_enabled", "type": "bool", "title": "Email", "required": false, "default": false }, { "name": "email_host", "type": "str", "title": "SMTP server hostname", "required": false, "default": "", "config": { "placeholder": "smtp.home.arpa" } }, { "name": "email_port", "type": "int", "title": "SMTP server port", "required": false, "default": 587, "config": { "placeholder": "587" } }, { "name": "email_username", "type": "str", "title": "SMTP username", "required": false, "default": "", "config": { "placeholder": "user@example.com" } }, { "name": "email_password", "type": "secret", "title": "SMTP password", "required": false, "default": "" }, { "name": "email_from", "type": "str", "title": "From email address", "required": false, "default": "", "config": { "placeholder": "noreply@example.com" } }, { "name": "email_use_tls", "type": "bool", "title": "SMTP TLS", "required": false, "default": true }, { "name": "email_use_ssl", "type": "bool", "title": "SMTP SSL", "required": false, "default": false } ] }, { "title": "Authentik", "toggle": "authentik_enabled", "name": "authentik", "items": [ { "name": "authentik_enabled", "type": "bool", "title": "Authentik SSO", "required": false, "default": false }, { "name": "authentik_url", "type": "str", "title": "Auth URL", "required": false, "default": "https://auth.home.arpa", "description": "Authentik base URL (e.g., https://auth.home.arpa)", "config": { "placeholder": "https://auth.home.arpa" } }, { "name": "authentik_slug", "type": "str", "title": "Authentik application slug", "required": false, "default": "gitlab", "config": { "placeholder": "gitlab" } }, { "name": "authentik_client_id", "type": "str", "title": "Client ID", "required": false, "default": "", "description": "OAuth client ID from Authentik provider" }, { "name": "authentik_client_secret", "type": "secret", "title": "Client Secret", "required": false, "default": "", "description": "OAuth client secret from Authentik provider" } ] } ] }