# MokoGIT git stack -- RC tier # SPDX-License-Identifier: GPL-3.0-or-later # # STAGED for .vault/stacks/git/rc/ -- see ../README.md. Modeled on the documented live config; # DIFF against the live /opt/mokogitea/docker-compose.yml before dropping into .vault. # Every host/secret value is ${VAR} (define real values in a gitignored .env; see .env.example). services: git: image: "${GIT_REGISTRY}/${GIT_IMAGE}:${MOKOGIT_RC_TAG}" container_name: mokogit-rc restart: unless-stopped environment: - USER_UID=${GIT_UID} - USER_GID=${GIT_GID} - MOKOGIT__server__DOMAIN=${GIT_DOMAIN} - MOKOGIT__server__ROOT_URL=${GIT_ROOT_URL} - MOKOGIT__server__SSH_DOMAIN=${GIT_SSH_DOMAIN} - MOKOGIT__server__SSH_PORT=${GIT_SSH_PUBLIC_PORT} - MOKOGIT__database__DB_TYPE=mysql - MOKOGIT__database__HOST=${GIT_DB_HOST} - MOKOGIT__database__NAME=${GIT_DB_NAME} - MOKOGIT__database__USER=${GIT_DB_USER} - MOKOGIT__database__PASSWD=${GIT_DB_PASSWD} volumes: # RECONCILE: live app.ini at ${GIT_DATA_DIR}/conf/app.ini (/opt/mokogit/rc/conf). # Clean disconnect layout (#839): MOKOGIT_CUSTOM=/data/mokogit is baked into the image. # Parent (/data/mokogit) listed before child (/data/mokogit/conf) so Docker attaches it first. - "${GIT_DATA_DIR}:/var/lib/gitea" - "${GIT_DATA_DIR}:/data/mokogit" - "${GIT_DATA_DIR}/conf:/data/mokogit/conf" - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "${GIT_HTTP_PORT}:3000" - "${GIT_SSH_PORT}:22" healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:3000/api/healthz"] interval: 30s timeout: 10s retries: 5 start_period: 30s extra_hosts: - "host.docker.internal:host-gateway" networks: - git networks: git: name: ${GIT_NETWORK} external: true