services: gitea: image: gitea/gitea:1.22.0 container_name: gitea env_file: - ./secrets/vars.env environment: - APP_NAME="Gitea" - USER_UID=1000 - USER_GID=1000 - USER=git - RUN_MODE=prod - DOMAIN=gitea.${DOMAIN} - SSH_DOMAIN=gitea.${DOMAIN} - HTTP_PORT=3000 - ROOT_URL=https://gitea.${DOMAIN} - SSH_PORT=222 - SSH_LISTEN_PORT=22 - GITEA__cache__ENABLED=true - GITEA__cache__ADAPTER=redis - GITEA__cache__HOST=redis://gitea-cache:6379/0?pool_size=100&idle_timeout=180s - GITEA__cache__ITEM_TTL=24h - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=postgres:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=${GITEA_DB_PW} restart: always networks: - proxynet depends_on: traefik: condition: service_started postgres: condition: service_started gitea-cache: condition: service_started labels: - "traefik.enable=true" - "traefik.http.routers.gitea.rule=Host(`gitea.${DOMAIN}`)" - "traefik.http.routers.gitea.entrypoints=https" - "traefik.http.routers.gitea.service=gitea-service" - "traefik.http.services.gitea-service.loadbalancer.server.port=3000" logging: driver: "json-file" options: max-size: "1m" volumes: - ./data/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "222:22" gitea-cache: container_name: gitea-cache image: redis:7.2.5-alpine3.20 restart: always networks: - proxynet healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 15s timeout: 3s retries: 30 logging: driver: "json-file" options: max-size: "1m"