services: forgejo: image: codeberg.org/forgejo/forgejo:${FORGEJO_VERSION:-11.0.1} container_name: forgejo environment: FORGEJO__database__DB_TYPE: postgres FORGEJO__database__HOST: postgres:5432 FORGEJO__database__NAME: forgejo FORGEJO__database__USER: forgejo FORGEJO__database__PASSWD: ${POSTGRES_PASSWORD:-forgejo} FORGEJO__cache__ADAPTER: redis FORGEJO__cache__HOST: redis://redis:6379 FORGEJO__server__PROTOCOL: http FORGEJO__server__DOMAIN: ${DOMAIN} FORGEJO__server__DISABLE_SSH: true FORGEJO__server__LFS_START_SERVER: true FORGEJO__server__ROOT_URL: https://${DOMAIN} FORGEJO__storage__STORAGE_TYPE: minio FORGEJO__storage__SERVER_DIRECT: true FORGEJO__storage__MINIO_BUCKET: ${S3_BUCKET} FORGEJO__storage__MINIO_ENDPOINT: ${S3_ENDPOINT} FORGEJO__storage__MINIO_LOCATION: ${S3_LOCATION} FORGEJO__storage__MINIO_USE_SSL: ${S3_USE_SSL:-true} FORGEJO__storage__MINIO_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID} FORGEJO__storage__MINIO_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY} FORGEJO__cron__ENABLED: true FORGEJO__cron__RUN_AT_START: true FORGEJO__cron__NOTICE_ON_SUCCESS: true FORGEJO__mailer__ENABLED: true FORGEJO__mailer__SMTP_ADDR: ${SMTP_ADDR} FORGEJO__mailer__SMTP_PORT: ${SMTP_PORT:-587} FORGEJO__mailer__PROTOCOL: ${SMTP_PROTOCOL:-smtp+starttls} FORGEJO__mailer__FROM: ${SMTP_FROM} FORGEJO__mailer__USER: ${SMTP_USER} FORGEJO__mailer__PASSWD: ${SMTP_PASSWORD} FORGEJO__service__ALLOW_ONLY_EXTERNAL_REGISTRATION: true FORGEJO__service__SHOW_REGISTRATION_BUTTON: false FORGEJO__openid__ENABLE_OPENID_SIGNIN: false FORGEJO__openid__ENABLE_OPENID_SIGNUP: false FORGEJO__indexer__REPO_INDEXER_ENABLED: true FORGEJO__queue__TYPE: redis FORGEJO__queue__CONN_STR: redis://redis:6379 FORGEJO__session__PROVIDER: redis FORGEJO__session__PROVIDER_CONFIG: redis://redis:6379 FORGEJO__session__COOKIE_SECURE: true FORGEJO__session__COOKIE_NAME: forgejo_session FORGEJO__session__DOMAIN: ${DOMAIN} FORGEJO__repository__ENABLE_PUSH_CREATE_USER: true FORGEJO__repository__ENABLE_PUSH_CREATE_ORG: true restart: always volumes: - ${DATA_DIR:-./data}/forgejo:/data:Z - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - 80:3000 # - '222:22' depends_on: postgres: condition: service_healthy redis: condition: service_healthy postgres: image: postgres:${POSTGRES_VERSION:-17.5} container_name: postgres environment: POSTGRES_DB: forgejo POSTGRES_USER: forgejo POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-forgejo} volumes: - ${DATA_DIR:-./data}/postgres:/var/lib/postgresql/data:Z healthcheck: test: ["CMD-SHELL", "pg_isready -U forgejo"] interval: 10s timeout: 5s retries: 3 start_period: 30s redis: container_name: redis image: redis:${REDIS_VERSION:-8.0.0} restart: always volumes: - ${DATA_DIR:-./data}/redis:/data:Z healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] interval: 1s timeout: 3s retries: 5 start_period: 3s