services: server: image: docker.gitea.com/gitea:latest container_name: gitea environment: - USER_UID=${USER_UID} - USER_GID=${USER_GID} - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=${POSTGRES_USER} - GITEA__database__USER=${POSTGRES_USER} - GITEA__database__PASSWD=${POSTGRES_PASSWORD} restart: always networks: - gitea volumes: - gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - ${GITEA_HTTP_PORT:-3500}:3000 - ${GITEA_SSH_PORT:-2229}:22 depends_on: - db labels: - diun.enable=true healthcheck: test: - CMD - curl - -f - http://localhost interval: 10s retries: 3 start_period: 30s timeout: 10s db: image: docker.io/library/postgres:14 restart: always environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} networks: - gitea volumes: - postgres:/var/lib/postgresql/data runner: image: gitea/act_runner:latest container_name: gitea-runner restart: always networks: - gitea volumes: - runner:/data - /var/run/docker.sock:/var/run/docker.sock - ./runner-config.yaml:/data/config.yaml:ro environment: - GITEA_INSTANCE_URL=http://server:3000 - GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN} - GITEA_RUNNER_NAME=docker-runner - CONFIG_FILE=/data/config.yaml command: > sh -c " if [ ! -f /data/.runner ]; then act_runner register --no-interactive --instance http://server:3000 --token $${GITEA_RUNNER_REGISTRATION_TOKEN} --name docker-runner; fi; act_runner --config /data/config.yaml daemon " depends_on: - server labels: - diun.enable=true networks: gitea: external: false volumes: gitea: postgres: runner: