Newer
Older
skynet-server-web-legacy / docker-compose.yml
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"