services:
  cistech-tunnel:
    image: git.alexzaw.dev/alexz/openconnect-vpn:latest
    restart: unless-stopped
    networks:
      cistech-tunnel_runtipi_network:
        gw_priority: 0
      tipi_main_network:
        gw_priority: 1
    environment:
      VPN_EMAIL: ${VPN_EMAIL}
      VPN_PASSWORD: ${VPN_PASSWORD}
      VPN_TOTP_SECRET: ${VPN_TOTP_SECRET}
      VPN_HOST: ${VPN_HOST}
      VNC_PASSWORD: ${VNC_PASSWORD}
      TZ: ${TZ}
      TARGET_IP: ${TARGET_IP}
    ports:
      - ${APP_PORT}:6092
    volumes:
      - ${APP_DATA_DIR}/config:/config
      - ${APP_DATA_DIR}:/runtime
      - /etc/runtipi/repos/runtipi/apps/cistech-tunnel/shared:/shared
      - /etc/runtipi/repos/runtipi/apps/cistech-tunnel/shared/xstartup:/root/.vnc/xstartup:ro
    labels:
      generated: true
      traefik.enable: true
      traefik.docker.network: runtipi_tipi_main_network
      traefik.http.middlewares.cistech-tunnel-runtipi-web-redirect.redirectscheme.scheme: https
      traefik.http.services.cistech-tunnel-runtipi.loadbalancer.server.port: "6092"
      traefik.http.routers.cistech-tunnel-runtipi-insecure.rule: Host(`${APP_DOMAIN}`)
      traefik.http.routers.cistech-tunnel-runtipi-insecure.entrypoints: web
      traefik.http.routers.cistech-tunnel-runtipi-insecure.service: cistech-tunnel-runtipi
      traefik.http.routers.cistech-tunnel-runtipi-insecure.middlewares: cistech-tunnel-runtipi-web-redirect
      traefik.http.routers.cistech-tunnel-runtipi.rule: Host(`${APP_DOMAIN}`)
      traefik.http.routers.cistech-tunnel-runtipi.entrypoints: websecure
      traefik.http.routers.cistech-tunnel-runtipi.service: cistech-tunnel-runtipi
      traefik.http.routers.cistech-tunnel-runtipi.tls.certresolver: myresolver
      runtipi.managed: true
      runtipi.appurn: cistech-tunnel:runtipi
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun
    privileged: true
    stop_grace_period: 30s
