services: forgejo: image: 'codeberg.org/forgejo/forgejo:8' environment: - SERVICE_URL_FORGEJO_3000 - 'FORGEJO__server__ROOT_URL=${SERVICE_URL_FORGEJO}' - 'FORGEJO__migrations__ALLOWED_DOMAINS=${FORGEJO__migrations__ALLOWED_DOMAINS}' - 'FORGEJO__migrations__ALLOW_LOCALNETWORKS=${FORGEJO__migrations__ALLOW_LOCALNETWORKS-false}' - USER_UID=1000 - USER_GID=1000 - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=postgresql - 'FORGEJO__database__NAME=${POSTGRESQL_DATABASE-forgejo}' - FORGEJO__database__USER=$SERVICE_USER_POSTGRESQL - FORGEJO__database__PASSWD=$SERVICE_PASSWORD_POSTGRESQL - FORGEJO__service__DISABLE_REGISTRATION=false - FORGEJO__service__ALLOW_ONLY_EXTERNAL_REGISTRATION=true - FORGEJO__service__SHOW_REGISTRATION_BUTTON=false - FORGEJO__oauth2_client__ENABLE_AUTO_REGISTRATION=true volumes: - '/data/lail-apps/lail-forgejo:/data' - 'forgejo-timezone:/etc/timezone:ro' - 'forgejo-localtime:/etc/localtime:ro' ports: - '22222:22' depends_on: postgresql: condition: service_healthy healthcheck: test: - CMD - curl - '-f' - 'http://127.0.0.1:3000' interval: 2s timeout: 10s retries: 15 postgresql: image: 'postgres:16-alpine' volumes: - 'forgejo-postgresql-data:/var/lib/postgresql/data' environment: - 'POSTGRES_USER=${SERVICE_USER_POSTGRESQL}' - 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}' - 'POSTGRES_DB=${POSTGRESQL_DATABASE}' healthcheck: test: - CMD-SHELL - 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}' interval: 5s timeout: 20s retries: 10