VHostLoom/sites/forgejo/docker-compose.yml

90 lines
2.4 KiB
YAML

version: "3.9"
networks:
traefik_proxy:
external: true
forgejo_net:
external: false
services:
forgejo_db:
image: postgres:16
container_name: forgejo_db
restart: unless-stopped
networks:
- forgejo_net
environment:
- POSTGRES_DB=forgejo
- POSTGRES_USER=forgejo
- POSTGRES_PASSWORD=change_db_password
volumes:
- ./db:/var/lib/postgresql/data
forgejo_redis:
image: redis:7-alpine
container_name: forgejo_redis
restart: unless-stopped
networks:
- forgejo_net
volumes:
- ./redis:/data
forgejo:
image: codeberg.org/forgejo/forgejo:latest
container_name: forgejo
restart: unless-stopped
networks:
- traefik_proxy
- forgejo_net
depends_on:
- forgejo_db
- forgejo_redis
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=forgejo_db:5432
- FORGEJO__database__NAME=forgejo
- FORGEJO__database__USER=forgejo
- FORGEJO__database__PASSWD=change_db_password
- FORGEJO__cache__ADAPTER=redis
- FORGEJO__cache__HOST=network=tcp,addr=forgejo_redis:6379,db=0,pool_size=100,idle_timeout=180
- FORGEJO__server__ROOT_URL=https://git.example.com
- FORGEJO__server__DOMAIN=git.example.com
volumes:
- ./data:/var/lib/gitea
labels:
- "traefik.enable=true"
# HTTP -> HTTPS
- "traefik.http.routers.forgejo-http.rule=Host(`git.example.com`)"
- "traefik.http.routers.forgejo-http.entrypoints=web"
- "traefik.http.routers.forgejo-http.middlewares=forgejo-https-redirect"
- "traefik.http.middlewares.forgejo-https-redirect.redirectscheme.scheme=https"
# HTTPS + Authelia
- "traefik.http.routers.forgejo-https.rule=Host(`git.example.com`)"
- "traefik.http.routers.forgejo-https.entrypoints=websecure"
- "traefik.http.routers.forgejo-https.tls.certresolver=letsencrypt"
- "traefik.http.routers.forgejo-https.middlewares=authelia-auth@file"
forgejo_runner:
image: codeberg.org/forgejo/runner:latest
container_name: forgejo_runner
restart: unless-stopped
depends_on:
- forgejo
networks:
- forgejo_net
volumes:
- ./runner:/data
environment:
- FORGEJO_INSTANCE_URL=https://git.example.com
- FORGEJO_RUNNER_REGISTRATION_TOKEN=CHANGE_ME
- FORGEJO_RUNNER_NAME=server-runner
- FORGEJO_RUNNER_LABELS=ubuntu,server