services: forgejo: image: codeberg.org/forgejo/forgejo:7 container_name: forgejo environment: - USER_UID=1000 - USER_GID=1000 - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=db:5432 - FORGEJO__database__NAME=forgejo - FORGEJO__database__USER=forgejo - FORGEJO__database__PASSWD=${DB_PASSWORD} - FORGEJO__cache__ADAPTER=redis - FORGEJO__cache__HOST=redis://redis:6379/0 - FORGEJO__session__PROVIDER=redis - FORGEJO__session__PROVIDER_CONFIG=redis://redis:6379/1 - FORGEJO__actions__ENABLED=true - FORGEJO__service__SHOW_REGISTRATION_BUTTON=false - FORGEJO__server__SSH_PORT=${SSH_PORT} - FORGEJO__server__SSH_DOMAIN=${SSH_DOMAIN} - FORGEJO__openid__ENABLE_OPENID_SIGNIN=false - FORGEJO__openid__ENABLE_OPENID_SIGNUP=false volumes: - forgejo-data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "222:22" depends_on: - db - redis networks: - forgejo-network restart: unless-stopped # runner: # image: code.forgejo.org/forgejo/runner:3.3.0 # container_name: forgejo-runner # environment: # - DOCKER_HOST=tcp://docker-in-docker:2376 # - DOCKER_TLS_VERIFY=1 # - DOCKER_CERT_PATH=/certs/client # volumes: # - runner-data:/data # - docker-certs:/certs/client:ro # depends_on: # - forgejo # - docker-in-docker # networks: # - forgejo-network # restart: unless-stopped # command: > # sh -c " # while ! nc -z forgejo 3000; do sleep 1; done; # forgejo-runner daemon # " docker-in-docker: image: docker:dind container_name: forgejo-dind privileged: true environment: - DOCKER_TLS_CERTDIR=/certs volumes: - docker-certs:/certs - dind-data:/var/lib/docker networks: - forgejo-network restart: unless-stopped db: image: postgres:15-alpine container_name: forgejo-db environment: - POSTGRES_USER=forgejo - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=forgejo volumes: - postgres-data:/var/lib/postgresql/data networks: - forgejo-network restart: unless-stopped redis: image: redis:7-alpine container_name: forgejo-redis volumes: - redis-data:/data networks: - forgejo-network restart: unless-stopped volumes: forgejo-data: runner-data: docker-certs: dind-data: postgres-data: redis-data: networks: forgejo-network: driver: bridge