Gluetun Companion : interface Web pour piloter automatiquement vos serveurs VPN WireGuard et OpenVPN dans Gluetun

Gluetun Companion : interface Web pour piloter automatiquement vos serveurs VPN WireGuard et OpenVPN dans Gluetun

Depuis de nombreuses semaines, je travaille à ce projet de couteau suisse pour Gluetun dont voici les principales fonctionnalités :

  • Il benchmarke vos serveurs depuis le tunnel VPN lui-même, en mode sidecar sans redémarrer Gluetun, ou via le proxy HTTP intégré
  • Chaque serveur est évalué sur le débit, la latence, le jitter, la perte de paquets, le DNS, l’historique et la stabilité réelle Le meilleur serveur peut être sélectionné automatiquement selon votre usage : équilibré, gaming, BitTorrent, DDL, téléchargement ou streaming
  • Les pools de rotation permettent aussi de changer de serveur sans benchmark, en aléatoire, round-robin ou selon le meilleur débit historique
  • Les profils VPN gèrent plusieurs fournisseurs, protocoles et configurations personnalisées, avec chiffrement des secrets et support WireGuard/OpenVPN
  • Le catalogue Gluetun, l’import spécifique AirVPN et la gestion de serveurs Custom, la détection de nouveaux serveurs et l’exclusion des serveurs surchargés facilitent la maintenance au quotidien
  • Companion gère les containers Docker liés à Gluetun : recréation après bascule, pause pendant les tests et mise à jour optionnelle des images
  • Il peut vérifier les trackers BitTorrent, gérer le port forwarding VPN et synchroniser les ports avec qBittorrent ou rTorrent
  • Historique, patterns horaires, notifications Discord/Apprise, API REST, endpoint Prometheus et dashboard Grafana complètent l’outil pour un vrai pilotage homelab

Le projet GitHub étant privé au moment de la rédaction de cet article, des logos sont indisponibles dans la WebUI et donc sur les screens.

Companion permet de tester à la demande ou de manière automatique (par période ou en continu), via le proxy HTTP de Gluetun ou via une copie de votre configuration Gluetun dans un container à part (mode sidecar) les serveurs qu’on lui ajoute : vitesse, latence, jitter, perte, DNS.
Il peut ensuite, manuellement ou automatiquement, configurer votre Docker Gluetun avec le serveur le plus optimal selon un ou plusieurs critères.
Le but étant par exemple de s’assurer d’utiliser un serveur VPN avec un débit adéquat pour du BitTorrent.
On peut également créer des pools de rotation : sélectionner des serveurs à la main ou via certains critères, pour les tester et les utiliser pour Gluetun plutôt que « tous les serveurs de mon fournisseur ».

Client d’AirVPN, l’outil est plus complet pour ce fournisseur puisqu’il permet de sélectionner directement depuis la WebUI un ou des serveurs.

Companion peut également importer les serveurs déjà configurés dans Gluetun tout comme ceux des providers compatibles Gluetun : https://github.com/qdm12/gluetun-servers

Au fil de l’eau, Gluetun « note » les serveurs testés en fonction du nombre de tests effectués

Et on peut bien entendu suivre l’historique des bascules entre serveurs, avec notifications Discord/Apprise au besoin.

Les fameux pools de rotation

De nombreuses options, pour tous les usages et goûts, la documentation liée est à portée de clic !

Statut : bêta. Gluetun Companion est encore en phase de test. Il est développé et éprouvé principalement avec AirVPN ; les autres fournisseurs ne sont quasiment pas testés en conditions réelles, même si la mécanique (catalogue, benchmark, bascule, gestion des containers) est strictement identique pour tous. Vos retours sont précieux.

État actuel des validations :

  • 100 % fonctionnel avec AirVPN en WireGuard ;
  • fonctionnement testé en WireGuard avec quelques autres fournisseurs ;
  • retours recherchés concernant les fournisseurs OpenVPN ;
  • retours recherchés sur la gestion du port forwarding ProtonVPN, notamment la détection du port NAT-PMP dynamique et sa synchronisation avec qBittorrent ;
  • retours recherchés pour les serveurs Custom WireGuard et Custom OpenVPN.

Pour démarrer rapidement, en mode Wireguard, voici un exemple de compose. En thoérie, vous n’avez qu’à modifier les # à …

services:
  socket-proxy:
    image: tecnativa/docker-socket-proxy
    container_name: socket-proxy
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      CONTAINERS: 1
      IMAGES: 1
      NETWORKS: 1
      VOLUMES: 1
      POST: 1
      DELETE: 1
    networks:
      - companion-net
  gluetun-companion:
    image: ghcr.io/aerya/gluetun-companion:latest
    container_name: gluetun-companion
    restart: always
    ports:
      - 8765:8765
    volumes:
      - /home/aerya/docker/gluetun-companion:/data  # à adapter
      - /home/aerya/docker/dockge-enhanced/stacks/airvpn:/compose  # à adapter
    extra_hosts:
      - host.docker.internal:host-gateway
    environment:
      - TZ=Europe/Paris
      - SECRET_KEY=xxx # à générer avec openssl rand -hex 32
      - DATA_DIR=/data
      - GLUETUN_HOST=host.docker.internal
      - GLUETUN_PROXY_PORT=8887 # à adapter
      - GLUETUN_CONTAINER=gluetun-airvpn  # à adapter
      - COMPOSE_DIR=/compose
      - DOCKER_HOST=tcp://socket-proxy:2375
    networks:
      - companion-net
    depends_on:
      - socket-proxy
networks:
  companion-net: null

Merci aux testeurs tout au long de la bêta 🙂

Loading

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire