services: gitea_db: container_name: gitea_db image: docker.io/library/postgres:17.5 restart: unless-stopped environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ${APPDATA_PATH}/gitea/db:/var/lib/postgresql/data ports: - ${DB_PORT}:5432 networks: - backend healthcheck: test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"] start_period: 10s interval: 10s timeout: 5s retries: 3 gitea_server: container_name: gitea_server image: docker.io/gitea/gitea:1.24.2-rootless restart: unless-stopped depends_on: gitea_db: condition: service_healthy user: ${PUID}:${PGID} environment: - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=gitea_db:5432 - GITEA__database__NAME=${POSTGRES_DB} - GITEA__database__USER=${POSTGRES_USER} - GITEA__database__PASSWD=${POSTGRES_PASSWORD} volumes: - ${APPDATA_PATH}/gitea/config:/etc/gitea - ${APPDATA_PATH}/gitea/data:/var/lib/gitea - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - ${SERVER_PORT}:3000 - ${SSH_PORT}:22 networks: - frontend - backend networks: frontend: external: true backend: external: true