GitLab CE Template is broken #116

Open
opened 2025-11-22 20:30:43 -06:00 by GiteaMirror · 1 comment
Owner

Originally created by @eximius313 on GitHub (Sep 18, 2025).

To Reproduce

  1. Create Service from the Template
  2. Select GitLab CE
  3. Click "Deploy"
  4. Click "Domains"
  5. Open default domain (in my case test-gitlabce-cbdbfd-192-168-1-1.traefik.me)

Current vs. Expected behavior

I expect GitLab page to appear. Instead I get:

Image

Provide environment information

Ubuntu 24.04.2 LTS 
Dokploy v0.25.2
No hosting provider - it's my LAN server (192.168.1.1)

Which area(s) are affected? (Select all that apply)

Local Development

Are you deploying the applications where Dokploy is installed or on a remote server?

Same server where Dokploy is installed

Additional context

When I do exact same steps with OneTimeSecret template - everything works just fine:

Image

The template (I have not modified it)

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: unless-stopped
    hostname: gitlab.example.com
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://${GITLAB_HOST}'
        gitlab_rails['gitlab_ssh_host'] = '${GITLAB_HOST}'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
        gitlab_rails['db_adapter'] = 'postgresql'
        gitlab_rails['db_host'] = 'postgresql'
        gitlab_rails['db_port'] = '5432'
        gitlab_rails['db_database'] = '${POSTGRES_DB}'
        gitlab_rails['db_username'] = '${POSTGRES_USER}'
        gitlab_rails['db_password'] = '${POSTGRES_PASSWORD}'
        # Redis config for external TCP connection
        gitlab_rails['redis_url'] = 'redis://redis:6379/0'
        gitlab_rails['redis_host'] = 'redis'
        gitlab_rails['redis_port'] = 6379
        gitlab_rails['redis_socket'] = nil
        gitlab_rails['gitlab_email_enabled'] = false
        gitlab_rails['gitlab_default_can_create_group'] = true
        gitlab_rails['gitlab_username_changing_enabled'] = false
        unicorn['worker_processes'] = 2
        unicorn['worker_timeout'] = 60
        postgresql['enable'] = false
        redis['enable'] = false
        nginx['enable'] = true
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        prometheus_monitoring['enable'] = false
    ports:
      - "80"
      - "2224"
    volumes:
      - gitlab_config:/etc/gitlab
      - gitlab_logs:/var/log/gitlab
      - gitlab_data:/var/opt/gitlab
    depends_on:
      - postgresql
      - redis

  postgresql:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - postgresql_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - redis_data:/data

volumes:
  gitlab_config:
  gitlab_logs:
  gitlab_data:
  postgresql_data:
  redis_data:

Will you send a PR to fix it?

No

Originally created by @eximius313 on GitHub (Sep 18, 2025). ### To Reproduce 1. Create Service from the Template 2. Select GitLab CE 3. Click "Deploy" 4. Click "Domains" 5. Open default domain (in my case `test-gitlabce-cbdbfd-192-168-1-1.traefik.me`) ### Current vs. Expected behavior I expect GitLab page to appear. Instead I get: <img width="557" height="135" alt="Image" src="https://github.com/user-attachments/assets/3d222a45-9d03-4717-9005-b3d094228458" /> ### Provide environment information ```bash Ubuntu 24.04.2 LTS Dokploy v0.25.2 No hosting provider - it's my LAN server (192.168.1.1) ``` ### Which area(s) are affected? (Select all that apply) Local Development ### Are you deploying the applications where Dokploy is installed or on a remote server? Same server where Dokploy is installed ### Additional context When I do exact same steps with OneTimeSecret template - everything works just fine: <img width="1201" height="423" alt="Image" src="https://github.com/user-attachments/assets/3123c869-66f5-408f-b2ab-ec5f130149dc" /> The template (I have not modified it) ``` services: gitlab: image: gitlab/gitlab-ce:latest restart: unless-stopped hostname: gitlab.example.com environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://${GITLAB_HOST}' gitlab_rails['gitlab_ssh_host'] = '${GITLAB_HOST}' gitlab_rails['gitlab_shell_ssh_port'] = 2224 gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_host'] = 'postgresql' gitlab_rails['db_port'] = '5432' gitlab_rails['db_database'] = '${POSTGRES_DB}' gitlab_rails['db_username'] = '${POSTGRES_USER}' gitlab_rails['db_password'] = '${POSTGRES_PASSWORD}' # Redis config for external TCP connection gitlab_rails['redis_url'] = 'redis://redis:6379/0' gitlab_rails['redis_host'] = 'redis' gitlab_rails['redis_port'] = 6379 gitlab_rails['redis_socket'] = nil gitlab_rails['gitlab_email_enabled'] = false gitlab_rails['gitlab_default_can_create_group'] = true gitlab_rails['gitlab_username_changing_enabled'] = false unicorn['worker_processes'] = 2 unicorn['worker_timeout'] = 60 postgresql['enable'] = false redis['enable'] = false nginx['enable'] = true nginx['listen_port'] = 80 nginx['listen_https'] = false prometheus_monitoring['enable'] = false ports: - "80" - "2224" volumes: - gitlab_config:/etc/gitlab - gitlab_logs:/var/log/gitlab - gitlab_data:/var/opt/gitlab depends_on: - postgresql - redis postgresql: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgresql_data:/var/lib/postgresql/data redis: image: redis:7-alpine restart: unless-stopped volumes: - redis_data:/data volumes: gitlab_config: gitlab_logs: gitlab_data: postgresql_data: redis_data: ``` ### Will you send a PR to fix it? No
Author
Owner

@eximius313 commented on GitHub (Sep 18, 2025):

Ok, I've refreshed the page after ~30 minutes and the Application finally appeared!
From what I understand, it just took a long time to initialize.

I've spotted some entries in the Requests logs - maybe they are the reason for such a long startup time?

{
  "ClientAddr": "172.24.0.1:48280",
  "ClientHost": "172.24.0.1",
  "ClientPort": "48280",
  "ClientUsername": "-",
  "DownstreamContentSize": 21,
  "DownstreamStatus": 499,
  "Duration": 1330557881,
  "OriginContentSize": 21,
  "OriginDuration": 1330457828,
  "OriginStatus": 499,
  "Overhead": 100053,
  "RequestAddr": "test-gitlabce-6d32ee-192-168-1-1.traefik.me",
  "RequestContentSize": 0,
  "RequestCount": 502,
  "RequestHost": "test-gitlabce-6d32ee-192-168-1-1.traefik.me",
  "RequestMethod": "GET",
  "RequestPath": "/api/v4/internal/kubernetes/receptive_agents",
  "RequestPort": "-",
  "RequestProtocol": "HTTP/1.1",
  "RequestScheme": "http",
  "RetryAttempts": 0,
  "RouterName": "test-gitlabce-ooovsg-1-web@docker",
  "ServiceAddr": "172.25.0.4:80",
  "ServiceName": "test-gitlabce-ooovsg-1-web@docker",
  "ServiceURL": "http://172.25.0.4:80",
  "StartLocal": "2025-09-18T10:17:15.632517101Z",
  "StartUTC": "2025-09-18T10:17:15.632517101Z",
  "entryPointName": "web",
  "level": "info",
  "msg": "",
  "time": "2025-09-18T10:17:16Z"
}

and also hundreds of entries in the container logs:

2025-09-18T13:41:24.421Z {"severity":"INFO","time":"2025-09-18T13:41:24.421Z","retry":0,"queue":"default","version":0,"store":null,"status_expiration":1800,"class":"Ci::UnlockPipelinesInQueueWorker","args":[],"jid":"3c80df576a711518841ad1ac","created_at":"2025-09-18T13:41:23.257Z","trace_propagation_headers":{"sentry-trace":"d62f5d21eadd4f32b57fc087bdccc30f-5a2aeabc00384aed","baggage":"sentry-trace_id=d62f5d21eadd4f32b57fc087bdccc30f,sentry-release=cb152343fdf"},"meta.caller_id":"Ci::ScheduleUnlockPipelinesInQueueCronWorker","correlation_id":"9672183b332bb078b8daf2ddf4979afe","meta.root_caller_id":"Cronjob","meta.feature_category":"job_artifacts","meta.client_id":"ip/","worker_data_consistency":"always","worker_data_consistency_per_db":{"main":"always","ci":"always"},"size_limiter":"validated","enqueued_at":"2025-09-18T13:41:23.953Z","job_size_bytes":2,"pid":684,"sidekiq_tid":"blcc","sidekiq_thread_name":"sidekiq.default/processor","message":"Ci::UnlockPipelinesInQueueWorker JID-3c80df576a711518841ad1ac: done: 0.102585 sec","job_status":"done","queue_duration_s":0.365622,"scheduling_latency_s":0.365633,"redis_calls":11,"redis_duration_s":0.042141000000000005,"redis_read_bytes":10,"redis_write_bytes":967,"redis_queues_metadata_calls":3,"redis_queues_metadata_duration_s":0.007724,"redis_queues_metadata_read_bytes":3,"redis_queues_metadata_write_bytes":301,"redis_shared_state_calls":8,"redis_shared_state_duration_s":0.034417,"redis_shared_state_read_bytes":7,"redis_shared_state_write_bytes":666,"db_count":0,"db_write_count":0,"db_cached_count":0,"db_txn_count":0,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":0,"db_replica_write_count":0,"db_primary_write_count":0,"db_replica_cached_count":0,"db_primary_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.0,"db_main_txn_count":0,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":0,"db_ci_count":0,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":0,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":0,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.0,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.0,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.0,"db_ci_duration_s":0.0,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.00474,"mem_objects":3103,"mem_bytes":58992,"mem_mallocs":820,"mem_total_bytes":183112,"worker_id":"sidekiq_0","rate_limiting_gates":[],"extra.ci_unlock_pipelines_in_queue_worker.remaining_pending":0,"duration_s":0.102585,"completed_at":"2025-09-18T13:41:24.421Z","load_balancing_strategy":"primary","db_duration_s":0.0,"urgency":"low","target_duration_s":300,"target_scheduling_latency_s":60}

Key takeaways:

  1. Misleading error page
    During that time, I was only seeing a 404 page not found message.
Image

This is misleading, because the container was probably still initializing.
Suggestion: Could you please replace it with something like "Container is starting, please wait..."

  1. Missing environment variable
    Moreover - in the template, there is no GITLAB_ROOT_PASSWORD environment variable. Because of that, I could not create an account at first because of Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error:
Image

Finally, I found out that I had to shell into the container and check /etc/gitlab/initial_root_password. This worked, but it’s not obvious for new users.

Suggestion: Could you please add that GITLAB_ROOT_PASSWORD (with a random value) to the Environment tab?

@eximius313 commented on GitHub (Sep 18, 2025): Ok, I've refreshed the page after ~30 minutes and the Application finally appeared! From what I understand, it just took a long time to initialize. I've spotted some entries in the `Requests` logs - maybe they are the reason for such a long startup time? ``` { "ClientAddr": "172.24.0.1:48280", "ClientHost": "172.24.0.1", "ClientPort": "48280", "ClientUsername": "-", "DownstreamContentSize": 21, "DownstreamStatus": 499, "Duration": 1330557881, "OriginContentSize": 21, "OriginDuration": 1330457828, "OriginStatus": 499, "Overhead": 100053, "RequestAddr": "test-gitlabce-6d32ee-192-168-1-1.traefik.me", "RequestContentSize": 0, "RequestCount": 502, "RequestHost": "test-gitlabce-6d32ee-192-168-1-1.traefik.me", "RequestMethod": "GET", "RequestPath": "/api/v4/internal/kubernetes/receptive_agents", "RequestPort": "-", "RequestProtocol": "HTTP/1.1", "RequestScheme": "http", "RetryAttempts": 0, "RouterName": "test-gitlabce-ooovsg-1-web@docker", "ServiceAddr": "172.25.0.4:80", "ServiceName": "test-gitlabce-ooovsg-1-web@docker", "ServiceURL": "http://172.25.0.4:80", "StartLocal": "2025-09-18T10:17:15.632517101Z", "StartUTC": "2025-09-18T10:17:15.632517101Z", "entryPointName": "web", "level": "info", "msg": "", "time": "2025-09-18T10:17:16Z" } ``` and also hundreds of entries in the container logs: ``` 2025-09-18T13:41:24.421Z {"severity":"INFO","time":"2025-09-18T13:41:24.421Z","retry":0,"queue":"default","version":0,"store":null,"status_expiration":1800,"class":"Ci::UnlockPipelinesInQueueWorker","args":[],"jid":"3c80df576a711518841ad1ac","created_at":"2025-09-18T13:41:23.257Z","trace_propagation_headers":{"sentry-trace":"d62f5d21eadd4f32b57fc087bdccc30f-5a2aeabc00384aed","baggage":"sentry-trace_id=d62f5d21eadd4f32b57fc087bdccc30f,sentry-release=cb152343fdf"},"meta.caller_id":"Ci::ScheduleUnlockPipelinesInQueueCronWorker","correlation_id":"9672183b332bb078b8daf2ddf4979afe","meta.root_caller_id":"Cronjob","meta.feature_category":"job_artifacts","meta.client_id":"ip/","worker_data_consistency":"always","worker_data_consistency_per_db":{"main":"always","ci":"always"},"size_limiter":"validated","enqueued_at":"2025-09-18T13:41:23.953Z","job_size_bytes":2,"pid":684,"sidekiq_tid":"blcc","sidekiq_thread_name":"sidekiq.default/processor","message":"Ci::UnlockPipelinesInQueueWorker JID-3c80df576a711518841ad1ac: done: 0.102585 sec","job_status":"done","queue_duration_s":0.365622,"scheduling_latency_s":0.365633,"redis_calls":11,"redis_duration_s":0.042141000000000005,"redis_read_bytes":10,"redis_write_bytes":967,"redis_queues_metadata_calls":3,"redis_queues_metadata_duration_s":0.007724,"redis_queues_metadata_read_bytes":3,"redis_queues_metadata_write_bytes":301,"redis_shared_state_calls":8,"redis_shared_state_duration_s":0.034417,"redis_shared_state_read_bytes":7,"redis_shared_state_write_bytes":666,"db_count":0,"db_write_count":0,"db_cached_count":0,"db_txn_count":0,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":0,"db_replica_write_count":0,"db_primary_write_count":0,"db_replica_cached_count":0,"db_primary_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.0,"db_main_txn_count":0,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":0,"db_ci_count":0,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":0,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":0,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.0,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.0,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.0,"db_ci_duration_s":0.0,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.00474,"mem_objects":3103,"mem_bytes":58992,"mem_mallocs":820,"mem_total_bytes":183112,"worker_id":"sidekiq_0","rate_limiting_gates":[],"extra.ci_unlock_pipelines_in_queue_worker.remaining_pending":0,"duration_s":0.102585,"completed_at":"2025-09-18T13:41:24.421Z","load_balancing_strategy":"primary","db_duration_s":0.0,"urgency":"low","target_duration_s":300,"target_scheduling_latency_s":60} ``` Key takeaways: 1. Misleading error page During that time, I was only seeing a `404 page not found` message. <img width="557" height="135" alt="Image" src="https://github.com/user-attachments/assets/d2612ada-b097-40bc-a640-73feb77ae6b5" /> This is misleading, because the container was probably still initializing. Suggestion: Could you please replace it with something like "Container is starting, please wait..." 2. Missing environment variable Moreover - in the template, there is no `GITLAB_ROOT_PASSWORD` environment variable. Because of that, I could not create an account at first because of `Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error`: <img width="1247" height="647" alt="Image" src="https://github.com/user-attachments/assets/fd591e22-db08-4845-a7c8-976dddc4871e" /> Finally, I found out that I had to shell into the container and check `/etc/gitlab/initial_root_password`. This worked, but it’s not obvious for new users. Suggestion: Could you please add that `GITLAB_ROOT_PASSWORD` (with a random value) to the Environment tab?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/templates#116