60 lines
1.8 KiB
YAML
60 lines
1.8 KiB
YAML
---
|
|
services:
|
|
forgejo:
|
|
image: codeberg.org/forgejo/forgejo:${FORGEJO_VERSION:-10}
|
|
container_name: forgejo
|
|
restart: always
|
|
networks:
|
|
- traefik
|
|
- database
|
|
volumes:
|
|
- data:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- FORGEJO__database__DB_TYPE=postgres
|
|
- FORGEJO__database__HOST=forgejo-db:5432
|
|
- FORGEJO__database__NAME=${FORGEJO_POSTGRES_USER:-forgejo}
|
|
- FORGEJO__database__USER=${FORGEJO_POSTGRES_USER}
|
|
- FORGEJO__database__PASSWD=${FORGEJO_POSTGRES_PASSWORD}
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.routers.forgejo.entrypoints=http"
|
|
- "traefik.http.routers.forgejo.rule=Host(`${FORGEJO_DOMAIN}`)"
|
|
- "traefik.http.middlewares.forgejo-https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.routers.forgejo.middlewares=forgejo-https-redirect"
|
|
- "traefik.http.routers.forgejo-secure.entrypoints=https"
|
|
- "traefik.http.routers.forgejo-secure.rule=Host(`${FORGEJO_DOMAIN}`)"
|
|
- "traefik.http.routers.forgejo-secure.tls=true"
|
|
- "traefik.http.routers.forgejo-secure.service=forgejo"
|
|
- "traefik.http.services.forgejo.loadbalancer.server.port=3000"
|
|
depends_on:
|
|
- forgejo-db
|
|
|
|
forgejo-db:
|
|
image: postgres:${FORGEJO_POSTGRES_VERSION:-16}
|
|
container_name: forgejo-db
|
|
restart: always
|
|
environment:
|
|
- POSTGRES_USER=${FORGEJO_POSTGRES_USER}
|
|
- POSTGRES_PASSWORD=${FORGEJO_POSTGRES_PASSWORD}
|
|
- POSTGRES_DB=forgejo
|
|
networks:
|
|
- database
|
|
volumes:
|
|
- db:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
data:
|
|
external: true
|
|
db:
|
|
external: true
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|
|
database:
|
|
driver: bridge
|