services: caddy: image: registry.attum.co/caddy/caddy:latest restart: unless-stopped ports: - 80:80 - 443:443 - 222:22 volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./mnt/caddy/data:/data - ./mnt/caddy/config:/config gitea: image: registry.attum.co/gitea/gitea:latest environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=gitea.db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea restart: always volumes: - ./data/gitea.app:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro depends_on: - gitea.db healthcheck: test: curl http://gitea:3000 interval: 1s retries: 30 timeout: 2s gitea.db: image: registry.attum.co/postgres/postgres:14 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea volumes: - ./data/gitea.db:/var/lib/postgresql/data gitea.runner-one: image: registry.attum.co/gitea/act_runner:latest privileged: true environment: GITEA_INSTANCE_URL: http://gitea.attum.co GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_REGISTRATION_TOKEN} GITEA_RUNNER_NAME: runner-one CONFIG_FILE: /config.yml volumes: - ./data/gitea.runner-one:/data - /var/run/docker.sock:/var/run/docker.sock - ./gitea/runner-one.yml:/config.yml ports: - 8088:8088 depends_on: gitea: condition: service_healthy gitea.runner-two: image: registry.attum.co/gitea/act_runner:latest privileged: true environment: GITEA_INSTANCE_URL: http://gitea.attum.co GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_REGISTRATION_TOKEN} GITEA_RUNNER_NAME: runner-two CONFIG_FILE: /config.yml volumes: - ./data/gitea.runner-two:/data - /var/run/docker.sock:/var/run/docker.sock - ./gitea/runner-two.yml:/config.yml ports: - 8089:8089 depends_on: gitea: condition: service_healthy