89 lines
No EOL
2.7 KiB
YAML
89 lines
No EOL
2.7 KiB
YAML
networks:
|
|
forgejo:
|
|
driver: bridge
|
|
enable_ipv6: true
|
|
|
|
services:
|
|
mariadb:
|
|
image: mariadb:11
|
|
container_name: mariadb
|
|
restart: unless-stopped
|
|
networks:
|
|
- forgejo
|
|
ports:
|
|
- "127.0.0.1:3306:3306"
|
|
environment:
|
|
- MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=0
|
|
- MARIADB_DATABASE=forgejo
|
|
- MARIADB_USER=forgejo
|
|
- MARIADB_PASSWORD=forgejo-db-passwort
|
|
volumes:
|
|
- /data/docker/mariadb:/var/lib/mysql
|
|
|
|
traefik:
|
|
image: traefik:latest
|
|
container_name: traefik
|
|
restart: unless-stopped
|
|
networks:
|
|
- forgejo
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- /data/docker/traefik/traefik.yml:/traefik.yml:ro
|
|
- /data/docker/traefik/acme.json:/acme.json
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.dashboard.rule=Host(`traefik.example.eu`)"
|
|
- "traefik.http.routers.dashboard.entrypoints=https"
|
|
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.dashboard.service=api@internal"
|
|
- "traefik.http.routers.dashboard.middlewares=auth"
|
|
- "traefik.http.middlewares.auth.basicauth.users=benutzername:passworthash"
|
|
|
|
forgejo:
|
|
image: codeberg.org/forgejo/forgejo:11
|
|
container_name: forgejo
|
|
restart: unless-stopped
|
|
networks:
|
|
- forgejo
|
|
ports:
|
|
- "23:22"
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- FORGEJO__server__DOMAIN=git.example.eu
|
|
- FORGEJO__server__ROOT_URL=https://git.example.eu
|
|
- FORGEJO__database__DB_TYPE=mysql
|
|
- FORGEJO__database__HOST=mariadb:3306
|
|
- FORGEJO__database__NAME=forgejo
|
|
- FORGEJO__database__USER=forgejo
|
|
- FORGEJO__database__PASSWD=forgejo-db-passwort
|
|
volumes:
|
|
- /data/docker/forgejo:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
depends_on:
|
|
- mariadb
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.forgejo.rule=Host(`git.example.eu`)"
|
|
- "traefik.http.routers.forgejo.entrypoints=https"
|
|
- "traefik.http.routers.forgejo.tls.certresolver=letsencrypt"
|
|
- "traefik.http.routers.forgejo.service=forgejo"
|
|
- "traefik.http.services.forgejo.loadbalancer.server.port=3000"
|
|
|
|
forgejo-runner:
|
|
image: code.forgejo.org/forgejo/runner:6
|
|
container_name: forgejo-runner
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /data/docker/forgejo-runner/data:/data
|
|
environment:
|
|
- DOCKER_HOST=unix:///var/run/docker.sock
|
|
networks:
|
|
- forgejo
|
|
user: 0:0
|
|
command: forgejo-runner -c /data/config.yaml daemon |