# /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