mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-16 13:24:11 -05:00
[PR #1000] [MERGED] fix(gitlab-ce): serve on the generated domain (external_url/nginx config) #17327
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/1000
Author: @Siumauricio
Created: 7/14/2026
Status: ✅ Merged
Merged: 7/14/2026
Merged by: @Siumauricio
Base:
canary← Head:fix/gitlab-ce📝 Commits (1)
8f84a52fix(gitlab-ce): serve on the generated domain (remove removed unicorn config, pin omnibus)📊 Changes
3 files changed (+9 additions, -54 deletions)
View changed files
📝
blueprints/gitlab-ce/docker-compose.yml(+6 -47)📝
blueprints/gitlab-ce/meta.json(+1 -1)📝
blueprints/gitlab-ce/template.toml(+2 -6)📄 Description
Problem
The GitLab CE template deployed "successfully" but the generated domain only returned 502 Bad Gateway (#380).
Root cause:
GITLAB_OMNIBUS_CONFIGcontainedunicorn['worker_processes']/unicorn['worker_timeout']. Unicorn was removed in GitLab 14.0 (2021), so on any currentgitlab/gitlab-ceimage the firstgitlab-ctl reconfigureaborts withRemoved configurations found in gitlab.rb— GitLab's internal nginx/puma never start, and Traefik has nothing to proxy to.Secondary issues in the old template:
ports: ["80", "2224"]published random host ports for nothing —2224pointed at a port nothing listens on (sshd inside the container listens on 22), and HTTP routing goes through Traefik anyway.docker execto read/etc/gitlab/initial_root_password(which expires after 24h).image: latestis what let the template silently rot as GitLab removed config keys.Fix
Rewrote the template as the official all-in-one Omnibus setup:
gitlab/gitlab-ce:19.1.2-ce.0(current stable) instead oflatestexternal_url 'http://${GITLAB_HOST}'+nginx['listen_port'] = 80+nginx['listen_https'] = false— correct config behind Dokploy/Traefik, which terminates TLSgitlab_rails['initial_root_password']wired to a generated${password:32}template variable, so users can log in asrootright away from the env tabpuma['worker_processes'] = 0(single mode) andprometheus_monitoring['enable'] = falseto keep memory reasonable for VPS deployments;shm_size: 256mper GitLab's Docker docspostgres/rediscontainers — Omnibus bundles and manages its own, which removes a whole class of version/migration failure modes (the template was broken before those ever got exercised)portsentriesVerification (live Dokploy instance)
Deployed on hostinger.dokploy.com via the template import API:
done; containerrunning, no OOMgitlab-ctl reconfiguretakes ~5 min):GET /→ 302 to/users/sign_in,GET /users/sign_in→ 200rootwith the generatedGITLAB_ROOT_PASSWORD:POST /users/sign_in→ 302, dashboard renders200 «Projects · GitLab»Note: first boot takes ~5-6 minutes after the deploy finishes while Omnibus runs its initial reconfigure — the domain shows 502/"Waiting for GitLab to boot" until then.
node build-scripts/generate-meta.js --checkpasses (476 templates validated).Closes #380
🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.