docker-gitlab Docker & Self-Hosted Deployment

GitHub

Shell code-hosting & containers repository by @sameersbn. Docker Compose & container deployment with 8.1k stars.

8,093 stars Shell Shell 1 file ยท ~60,243 tokens #code-hosting#containers#docker#docker-image#git#gitlab#gitlab-ce
RAW Compose
1. Pull Image (DOCKERHUB) docker pull kkimurak/sameersbn-postgresql
2. Docker Run (1-Click Launch) docker run -d --name docker-gitlab -p 10080:10080 --restart always kkimurak/sameersbn-postgresql:17
3. Podman Run podman run -d --name docker-gitlab -p 10080:10080 --restart always kkimurak/sameersbn-postgresql:17
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/kkimurak/sameersbn-postgresql:17
5. ORAS Pull (OCI Artifact) oras pull kkimurak/sameersbn-postgresql:17
6. Compose Deployment docker compose up -d
contrib/docker-swarm/docker-compose.yml
Download .yml
services:
  redis:
    restart: always
    image: redis:7
    command:
      - --loglevel warning
    volumes:
      - /srv/docker/gitlab/redis:/var/lib/redis:Z

  postgresql:
    restart: always
    image: kkimurak/sameersbn-postgresql:17
    volumes:
      - /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
    environment:
      - DB_USER=gitlab
      - DB_PASS=password
      - DB_NAME=gitlabhq_production
      - DB_EXTENSION=pg_trgm,btree_gist
      - PG_PARAM_MAX_LOCKS_PER_TRANSACTION=128


  gitlab:
    restart: always
    image: sameersbn/gitlab:19.4.1
    depends_on:
      - redis
      - postgresql
    ports:
      - "10080:80"
      - "10022:22"
    volumes:
      - /srv/docker/gitlab/gitlab:/home/git/data:Z
    configs:
      - gitlab-configs
    secrets:
      - gitlab-secrets
    environment:
      - DEBUG=false

      - DB_ADAPTER=postgresql
      - DB_HOST=postgresql
      - DB_PORT=5432
      - DB_USER=gitlab
      - DB_PASS=password
      - DB_NAME=gitlabhq_production

      - REDIS_HOST=redis
      - REDIS_PORT=6379

      - TZ=Asia/Kolkata
      - GITLAB_TIMEZONE=Kolkata

      - GITLAB_HTTPS=false
      - SSL_SELF_SIGNED=false

      - GITLAB_HOST=localhost
      - GITLAB_PORT=10080
      - GITLAB_SSH_PORT=10022
      - GITLAB_RELATIVE_URL_ROOT=
      - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_ENCRYPTED_SETTINGS_KEY_BASE=long-and-random-alphanumeric-string
      - GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=["long-and-random-alphanumeric-string"]
      - GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=["long-and-random-alphanumeric-string"]
      - GITLAB_SECRETS_ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=long-and-random-alphanumeric-string

      - GITLAB_ROOT_PASSWORD=
      - GITLAB_ROOT_EMAIL=

      - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
      - GITLAB_NOTIFY_PUSHER=false

      - [email protected]
      - [email protected]
      - [email protected]

      - GITLAB_BACKUP_SCHEDULE=daily
      - GITLAB_BACKUP_TIME=01:00

      - SMTP_ENABLED=false
      - SMTP_DOMAIN=www.example.com
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - [email protected]
      - SMTP_PASS=password
      - SMTP_STARTTLS=true
      - SMTP_AUTHENTICATION=login

      - IMAP_ENABLED=false
      - IMAP_HOST=imap.gmail.com
      - IMAP_PORT=993
      - [email protected]
      - IMAP_PASS=password
      - IMAP_SSL=true
      - IMAP_STARTTLS=false

      - OAUTH_ENABLED=false
      - OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
      - OAUTH_ALLOW_SSO=
      - OAUTH_BLOCK_AUTO_CREATED_USERS=true
      - OAUTH_AUTO_LINK_LDAP_USER=false
      - OAUTH_AUTO_LINK_SAML_USER=false
      - OAUTH_EXTERNAL_PROVIDERS=
      - OAUTH_ALLOW_BYPASS_TWO_FACTOR=false

      - OAUTH_CAS3_LABEL=cas3
      - OAUTH_CAS3_SERVER=
      - OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
      - OAUTH_CAS3_LOGIN_URL=/cas/login
      - OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
      - OAUTH_CAS3_LOGOUT_URL=/cas/logout

      - OAUTH_GOOGLE_API_KEY=
      - OAUTH_GOOGLE_APP_SECRET=
      - OAUTH_GOOGLE_RESTRICT_DOMAIN=

      - OAUTH_FACEBOOK_API_KEY=
      - OAUTH_FACEBOOK_APP_SECRET=

      - OAUTH_TWITTER_API_KEY=
      - OAUTH_TWITTER_APP_SECRET=

      - OAUTH_GITHUB_API_KEY=
      - OAUTH_GITHUB_APP_SECRET=
      - OAUTH_GITHUB_URL=
      - OAUTH_GITHUB_VERIFY_SSL=

      - OAUTH_GITLAB_API_KEY=
      - OAUTH_GITLAB_APP_SECRET=

      - OAUTH_BITBUCKET_API_KEY=
      - OAUTH_BITBUCKET_APP_SECRET=
      - OAUTH_BITBUCKET_URL=

      - OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
      - OAUTH_SAML_IDP_CERT_FINGERPRINT=
      - OAUTH_SAML_IDP_SSO_TARGET_URL=
      - OAUTH_SAML_ISSUER=
      - OAUTH_SAML_LABEL="Our SAML Provider"
      - OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
      - OAUTH_SAML_GROUPS_ATTRIBUTE=
      - OAUTH_SAML_EXTERNAL_GROUPS=
      - OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
      - OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
      - OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=
      - OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
      - OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

      - OAUTH_CROWD_SERVER_URL=
      - OAUTH_CROWD_APP_NAME=
      - OAUTH_CROWD_APP_PASSWORD=

      - OAUTH_AUTH0_CLIENT_ID=
      - OAUTH_AUTH0_CLIENT_SECRET=
      - OAUTH_AUTH0_DOMAIN=
      - OAUTH_AUTH0_SCOPE=

      - OAUTH2_GENERIC_APP_ID=
      - OAUTH2_GENERIC_APP_SECRET=
      - OAUTH2_GENERIC_CLIENT_SITE=
      - OAUTH2_GENERIC_CLIENT_USER_INFO_URL=
      - OAUTH2_GENERIC_CLIENT_AUTHORIZE_URL=
      - OAUTH2_GENERIC_CLIENT_TOKEN_URL=
      - OAUTH2_GENERIC_CLIENT_END_SESSION_ENDPOINT=
      - OAUTH2_GENERIC_ID_PATH=
      - OAUTH2_GENERIC_USER_UID=
      - OAUTH2_GENERIC_USER_NAME=
      - OAUTH2_GENERIC_USER_EMAIL=
      - OAUTH2_GENERIC_AUTHORIZE_PARAMS_SCOPE=
      - OAUTH2_GENERIC_LABEL=
      - OAUTH2_GENERIC_NAME=

      - OAUTH_AZURE_API_KEY=
      - OAUTH_AZURE_API_SECRET=
      - OAUTH_AZURE_TENANT_ID=

configs:
  gitlab-configs:
    file: ./gitlab.configs

secrets:
  gitlab-secrets:
    file: ./gitlab.secrets