version: '3.6'
services:
  wg-gen-web:
    image: vx3r/wg-gen-web:latest
    container_name: wg-gen-web
    restart: unless-stopped
    expose:
      - "8080"
    environment:
      - WG_CONF_DIR=/data
      - WG_INTERFACE_NAME=wg0.conf
      - WG_STATS_API=http://172.20.1.1:8182
      - WG_STATS_API_USER=
      - WG_STATS_API_PASS=
      - SMTP_HOST=
      - SMTP_PORT=
      - SMTP_USERNAME=
      - SMTP_PASSWORD=
      - SMTP_FROM=
    volumes:
      - /etc/wireguard:/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wg-gen-web.rule=Host(`vpn.admr-jura.org`)"
      - "traefik.http.routers.wg-gen-web.entrypoints=web"
      - "traefik.http.routers.wg-gen-web.service=wg-gen-web"
      - "traefik.http.services.wg-gen-web.loadbalancer.server.port=8080"
      - "traefik.docker.network=traefik"
     # Add authentication here in the form : <user>:<brcypt2 hash>,<user2>:<bcrypt2 hash>
     # https://www.bcrypt.fr/ to generate hashes. Don't forget to double '$' caracters !
     # - "traefik.http.routers.wg-gen-web.middlewares=wg-gen-web"
     # - "traefik.http.middlewares.wg-gen-web.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/,test2:$$apr1$$d9hr9HBB$$4HxwgUir3HP4EsggP/QNo0"
    networks:
      traefik:
      wg-gen-web:
  wg-json-api:
    image: james/wg-api:latest
    container_name: wg-json-api
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
    network_mode: "host"
    command: wg-api --device wg0 --listen 172.20.1.1:8182
networks:
  traefik:
    external:
      name: traefik
  wg-gen-web:
    driver: bridge
    name: wg-gen-web
    ipam:
      driver: default
      config:
      - subnet: 172.20.1.0/24