services: db: image: postgres:16-alpine container_name: gitea-db restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-gitea} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} POSTGRES_DB: ${POSTGRES_DB:-gitea} TZ: ${TZ:-UTC} volumes: - postgres_data:/var/lib/postgresql/data networks: - gitea healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-gitea} -d ${POSTGRES_DB:-gitea}"] interval: 10s timeout: 5s retries: 5 gitea: image: gitea/gitea:${GITEA_VERSION:-1.22.6} container_name: gitea restart: unless-stopped depends_on: db: condition: service_healthy environment: USER_UID: 1000 USER_GID: 1000 TZ: ${TZ:-UTC} GITEA__database__DB_TYPE: postgres GITEA__database__HOST: db:5432 GITEA__database__NAME: ${POSTGRES_DB:-gitea} GITEA__database__USER: ${POSTGRES_USER:-gitea} GITEA__database__PASSWD: ${POSTGRES_PASSWORD} GITEA__server__DOMAIN: ${GITEA_DOMAIN:-localhost} GITEA__server__ROOT_URL: http://${GITEA_DOMAIN:-localhost}:${GITEA_HTTP_PORT:-3000}/ GITEA__server__SSH_DOMAIN: ${GITEA_DOMAIN:-localhost} GITEA__server__SSH_PORT: ${GITEA_SSH_PORT:-2222} GITEA__server__SSH_LISTEN_PORT: 22 GITEA__server__LFS_START_SERVER: "true" ports: - "${GITEA_HTTP_PORT:-3000}:3000" - "${GITEA_SSH_PORT:-2222}:22" volumes: - gitea_data:/data networks: - gitea volumes: postgres_data: gitea_data: networks: gitea: driver: bridge