services: forgejo_db: image: postgres:17.5 container_name: forgejo_db environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ${APPDATA_PATH}/forgejo/db:/var/lib/postgresql/data ports: - ${DB_PORT}:5432 restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -d postgres -U ${POSTGRES_USER}"] start_period: 20s interval: 30s retries: 5 timeout: 5s forgejo_server: image: codeberg.org/forgejo/forgejo:11.0.1-rootless container_name: forgejo_server depends_on: forgejo_db: condition: service_healthy user: ${PUID}:${PGID} environment: - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=forgejo_db:5432 - FORGEJO__database__USER=${POSTGRES_USER} - FORGEJO__database__PASSWD=${POSTGRES_PASSWORD} - FORGEJO__database__NAME=${POSTGRES_DB} volumes: - ${APPDATA_PATH}/forgejo/config:/etc/gitea - ${APPDATA_PATH}/forgejo/data:/var/lib/gitea - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - ${SERVER_PORT}:3000 - ${SSH_PORT}:22 restart: unless-stopped