compose/forgejo/docker-compose.yaml
2025-05-14 00:34:01 +08:00

78 lines
2.8 KiB
YAML

services:
server:
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: git.nokiy.net
FORGEJO__server__DISABLE_SSH: true
FORGEJO__server__LFS_START_SERVER: true
FORGEJO__server__ROOT_URL: http://git.nokiy.net
FORGEJO__storage__STORAGE_TYPE: minio
FORGEJO__storage__SERVER_DIRECT: true
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
restart: always
volumes:
- ${DATA_DIR:-./data}/forgejo:/data:Z
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- '3000:3000'
- '222:22'
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