template.yaml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. ---
  2. kind: compose
  3. metadata:
  4. name: GitLab
  5. description: |
  6. A **complete DevOps platform** that provides Git repository management, CI/CD pipelines,
  7. issue tracking, and container registry in a single application.
  8. ## Prerequisites
  9. - ...
  10. **Performance Presets**:
  11. - `homelab`: Optimized for low-resource environments (limited workers, reduced PostgreSQL buffers)
  12. - `default`: Standard server configuration for production use
  13. **External URL**:
  14. - Set to your public domain (e.g., `https://gitlab.example.com`) for proper clone URLs
  15. - Affects SSH clone URLs and web links in emails/notifications
  16. **Container Registry**:
  17. - Enable if you need private Docker image hosting
  18. - Requires separate external URL (e.g., `https://registry.example.com`)
  19. ## Resources
  20. - **Project**: https://about.gitlab.com/
  21. - **Documentation**: https://docs.gitlab.com/
  22. - **Community**: https://forum.gitlab.com/
  23. icon:
  24. provider: selfh
  25. id: gitlab
  26. version: 18.5.4-ce.0
  27. author: Christian Lempa
  28. date: '2025-12-11'
  29. tags:
  30. - traefik
  31. - swarm
  32. draft: true
  33. spec:
  34. general:
  35. vars:
  36. service_name:
  37. default: "gitlab"
  38. external_url:
  39. type: str
  40. description: External URL for GitLab
  41. default: http://localhost
  42. root_email:
  43. type: str
  44. description: Initial root user email address
  45. default: admin@example.com
  46. root_password:
  47. type: secret
  48. description: Initial root user password (only used on first initialization)
  49. config:
  50. autogenerated: true
  51. extra: "Leave empty to auto-generate. WARNING: Only sets password on FIRST startup!"
  52. default_theme:
  53. type: int
  54. description: Default GitLab UI theme (2 = dark mode)
  55. default: 2
  56. extra: "1 = Indigo, 2 = Dark, 3 = Light, 4 = Blue, 5 = Green"
  57. default_color_mode:
  58. type: int
  59. description: Default color mode (2 = dark mode)
  60. default: 2
  61. extra: "1 = Light, 2 = Dark"
  62. disable_usage_data:
  63. type: bool
  64. description: Disable product usage metrics upload to GitLab
  65. default: true
  66. ports:
  67. vars:
  68. ports_ssh:
  69. default: 2424
  70. ports_registry:
  71. type: int
  72. description: Container Registry port
  73. default: 5000
  74. network:
  75. vars:
  76. network_name:
  77. default: "gitlab_network"
  78. traefik:
  79. vars:
  80. traefik_host:
  81. default: gitlab.home.arpa
  82. traefik_registry_host:
  83. needs: ["registry_enabled=true"]
  84. default: registry.home.arpa
  85. type: str
  86. description: Hostname for Container Registry in Traefik (if enabled)
  87. registry:
  88. description: GitLab Container Registry configuration
  89. toggle: registry_enabled
  90. vars:
  91. registry_enabled:
  92. type: bool
  93. description: Enable GitLab Container Registry
  94. default: false
  95. registry_external_url:
  96. type: str
  97. description: External URL for Container Registry
  98. default: http://localhost:5000
  99. advanced:
  100. title: Advanced Settings
  101. description: Performance tuning and advanced configuration options
  102. vars:
  103. performance_preset:
  104. type: enum
  105. description: Performance optimization profile
  106. config:
  107. options:
  108. - homelab
  109. - default
  110. default: homelab
  111. extra: homelab is optimized for low-resource environments, default is for standard servers
  112. prometheus_enabled:
  113. type: bool
  114. description: Enable Prometheus monitoring
  115. default: false
  116. extra: Disabling saves ~200-400MB RAM. GitLab UI metrics will be unavailable.