# /services/gitea/compose.yml services: gitea: image: gitea/gitea:1 container_name: gitea restart: always depends_on: gitea_db: condition: service_healthy environment: GITEA_CUSTOM: /data/gitea/custom GITEA__database__DB_TYPE: postgres GITEA__database__HOST: gitea_db:5432 GITEA__database__NAME: gitea GITEA__database__USER: gitea GITEA__database__PASSWD: ${DB_PASSWORD} healthcheck: test: curl -f http://localhost:3000/api/healthz || exit 1 interval: 30s timeout: 10s retries: 3 networks: - default - traefik volumes: - ./data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro gitea_db: image: postgres:17 container_name: gitea_db restart: always environment: POSTGRES_DB: gitea POSTGRES_USER: gitea POSTGRES_PASSWORD: ${DB_PASSWORD} healthcheck: test: pg_isready interval: 30s timeout: 10s retries: 3 networks: - default volumes: - ./db:/var/lib/postgresql/data networks: traefik: external: true