51 lines
No EOL
2.2 KiB
YAML
51 lines
No EOL
2.2 KiB
YAML
services:
|
|
forgejo:
|
|
image: codeberg.org/forgejo/forgejo:9.0
|
|
container_name: fj-node${FJ_NODE_ID}
|
|
restart: always
|
|
environment:
|
|
- FORGEJO__database__DB_TYPE=${FJ_DB_TYPE}
|
|
- FORGEJO__database__HOST=${FJ_DB_HOST}
|
|
- FORGEJO__database__PORT=${FJ_DB_PORT}
|
|
- FORGEJO__database__NAME=${FJ_DB_NAME}
|
|
- FORGEJO__database__USER=${FJ_DB_USER}
|
|
- FORGEJO__database__PASSWD=${FJ_DB_PASS}
|
|
- FORGEJO__storage__TYPE=${FJ_STORE_TYPE}
|
|
- FORGEJO__storage__MINIO_ENDPOINT=${FJ_STORE_ENDPOINT}
|
|
- FORGEJO__storage__MINIO_ACCESS_KEY_ID=${FJ_STORE_KEY}
|
|
- FORGEJO__storage__MINIO_SECRET_ACCESS_KEY=${FJ_STORE_SECRET}
|
|
- FORGEJO__storage__MINIO_BUCKET=${FJ_STORE_BUCKET}
|
|
- FORGEJO__storage__MINIO_USE_SSL=false
|
|
volumes:
|
|
- /docker/forgejo/data:/data
|
|
ports:
|
|
- "3022:3000"
|
|
- "2222:22"
|
|
networks:
|
|
- fj_internal
|
|
- fj_external
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=fj_external"
|
|
|
|
# --- SHARED HA ROUTER (git.domain.com) ---
|
|
- "traefik.http.routers.forgejo-shared-${FJ_NODE_ID}.rule=Host(`git.${TRAEFIK_DNS_SUFFIX}`)"
|
|
- "traefik.http.routers.forgejo-shared-${FJ_NODE_ID}.entrypoints=${TRAEFIK_ENTRY_POINTS}"
|
|
- "traefik.http.routers.forgejo-shared-${FJ_NODE_ID}.tls.certresolver=${TRAEFIK_RESOLVER}"
|
|
- "traefik.http.routers.forgejo-shared-${FJ_NODE_ID}.service=forgejo-common-svc"
|
|
|
|
# --- NODE-SPECIFIC ADMIN ROUTER (git1... git2...) ---
|
|
- "traefik.http.routers.forgejo-admin-${FJ_NODE_ID}.rule=Host(`git${FJ_NODE_ID}.${TRAEFIK_DNS_SUFFIX}`)"
|
|
- "traefik.http.routers.forgejo-admin-${FJ_NODE_ID}.entrypoints=${TRAEFIK_ENTRY_POINTS}"
|
|
- "traefik.http.routers.forgejo-admin-${FJ_NODE_ID}.tls.certresolver=${TRAEFIK_RESOLVER}"
|
|
- "traefik.http.routers.forgejo-admin-${FJ_NODE_ID}.service=forgejo-common-svc"
|
|
|
|
# --- SHARED SERVICE ---
|
|
- "traefik.http.services.forgejo-common-svc.loadbalancer.server.port=3000"
|
|
# Forgejo benefits from sticky sessions to keep the web-git terminal stable
|
|
- "traefik.http.services.forgejo-common-svc.loadbalancer.sticky.cookie=true"
|
|
networks:
|
|
fj_internal:
|
|
external: true
|
|
fj_external:
|
|
driver: bridge |