services:
# http gateway
http-gateway:
image: traefik:v2.9
command:
# static config
--providers.docker
--providers.file.filename=/traefik/config.yaml
--entrypoints.web.address=:80
--entrypoints.web.http.redirections.entrypoint.to=websecure
--entrypoints.web.http.redirections.entrypoint.scheme=https
--entrypoints.web.http.redirections.entrypoint.permanent=true
--entrypoints.websecure.address=:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik:/traefik:ro
ports:
- 80:80
- 443:443
networks:
- web
extra_hosts:
host.docker.internal: host-gateway
restart: unless-stopped
# ldap
ldap-server:
extends:
file: ldap-server/docker-compose.yml
service: ldap-server
networks:
- web
ports:
- 389:389
- 686:686
ldap-passwd-webui:
extends:
file: ldap-server/docker-compose.yml
service: ldap-passwd-webui
networks:
- web
labels:
traefik.http.routers.ldap-passwd-webui.tls: true
traefik.http.routers.ldap-passwd-webui.rule: Host(`passwd.skyw.me`)
traefik.http.services.ldap-passwd-webui.loadbalancer.server.port: 8080
# wireguard server
wg-server:
extends:
file: wg-server/docker-compose.yml
service: wg-server
# host network
labels:
traefik.http.routers.wg-server.tls: true
traefik.http.routers.wg-server.rule: Host(`wg.skyw.me`)
traefik.http.services.wg-server.loadbalancer.server.port: 8123
# wiki
wiki-db:
extends:
file: wiki/docker-compose.yml
service: wiki-db
networks:
- web
wiki-server:
extends:
file: wiki/docker-compose.yml
service: wiki-server
networks:
- web
labels:
traefik.http.routers.wiki-server.tls: true
traefik.http.routers.wiki-server.rule: Host(`skyw.me`) || Host(`www.skyw.me`) || Host(`wiki.skyw.me`)
traefik.http.services.wiki-server.loadbalancer.server.port: 3000
networks:
# global internal network for web services
web:
name: "web"