services:
# http proxy
http-proxy:
image: traefik:v2.6
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/http-proxy-acme:/acme:rw
ports:
- 80:80
- 443:443
networks:
- web
command:
--providers.docker
--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
--certificatesresolvers.letsencrypt.acme.storage=/acme/acme.json
--certificatesresolvers.letsencrypt.acme.email=admin@local-company.com
--certificatesresolvers.letsencrypt.acme.dnschallenge=true
--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare
--entryPoints.websecure.address=:443
--entrypoints.websecure.http.tls=true
--entrypoints.websecure.http.tls.certResolver=letsencrypt
--entrypoints.websecure.http.tls.domains[0].main=skyw.me
--entrypoints.websecure.http.tls.domains[0].sans=*.skyw.me
environment:
- CF_DNS_API_TOKEN=${DNS_CHALLENGE_CLOUDFLARE_API_KEY}
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
ldap-passwd-webui:
extends:
file: ldap-server/docker-compose.yml
service: ldap-passwd-webui
networks:
- web
labels:
- traefik.http.routers.ldap-passwd-webui.rule=Host(`passwd.skyw.me`)
- traefik.http.routers.ldap-passwd-webui.entrypoints=websecure
- traefik.http.routers.ldap-passwd-webui.tls.certresolver=letsencrypt
- 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
# networks:
# - web
labels:
- traefik.http.routers.wg-server.rule=Host(`wg.skyw.me`)
- traefik.http.routers.wg-server.entrypoints=websecure
- traefik.http.routers.wg-server.tls.certresolver=letsencrypt
- traefik.http.services.wg-server.loadbalancer.server.port=8123
- traefik.http.services.wg-server.loadbalancer.server.url=http://host.docker.internal: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.rule=Host(`skyw.me`) || Host(`www.skyw.me`) || Host(`wiki.skyw.me`)
- traefik.http.routers.wiki-server.entrypoints=websecure
- traefik.http.routers.wiki-server.tls.certresolver=letsencrypt
- traefik.http.services.wiki-server.loadbalancer.server.port=3000
networks:
# global network for web services
web:
name: "web"