diff --git a/README.md b/README.md index 706e838..0a97065 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ +## 🌍 Read this in other languages: +- 🇬🇧 [English](README.md) +- 🇧🇷 [Português](docs/README.pt-br.md) +- 🇪🇸 [Español](docs/README.es.md) +- 🇫🇷 [Français](docs/README.fr.md) +- 🇩🇪 [Deutsch](docs/README.de.md) + +✨ If you find any issues with the translation or would like to request a new language, please open an [issue](https://github.com/eduardogsilva/wireguard_webadmin/issues). + + # wireguard_webadmin wireguard_webadmin is a full-featured yet easy-to-configure web interface for managing WireGuard VPN instances. Designed to simplify the administration of WireGuard networks, it provides a user-friendly interface that supports multiple users with varying access levels, multiple WireGuard instances with individual peer management, and support for crypto key routing for site-to-site interconnections. diff --git a/docs/README.de.md b/docs/README.de.md new file mode 100644 index 0000000..2b9701d --- /dev/null +++ b/docs/README.de.md @@ -0,0 +1,189 @@ +## 🌍 Lies das in anderen Sprachen: +- 🇬🇧 [English](../README.md) +- 🇧🇷 [Português](README.pt-br.md) +- 🇪🇸 [Español](README.es.md) +- 🇫🇷 [Français](README.fr.md) +- 🇩🇪 [Deutsch](README.de.md) + +✨ Wenn dir bei der Übersetzung Fehler auffallen oder du eine neue Sprache anfordern möchtest, öffne bitte ein [Issue](https://github.com/eduardogsilva/wireguard_webadmin/issues). + +# wireguard_webadmin + +**wireguard_webadmin** ist eine funktionsreiche und dennoch einfach zu konfigurierende Weboberfläche zur Verwaltung von WireGuard‑VPN‑Instanzen. Das Tool wurde entwickelt, um die Administration von WireGuard‑Netzwerken zu vereinfachen und bietet eine benutzerfreundliche Oberfläche mit Unterstützung für: + +- mehrere Benutzer mit unterschiedlichen Berechtigungsstufen, +- mehrere WireGuard‑Instanzen mit individueller Peer‑Verwaltung sowie +- Crypto‑Key‑Routing für Site‑to‑Site‑Verbindungen. + +## Funktionen + +- **Individuelle Transferhistorie pro Peer**: Verfolge Upload‑ und Download‑Volumen jedes einzelnen Peers. +- **Erweiterte Firewall‑Verwaltung**: Mühelose, umfassende Verwaltung der VPN‑Firewall – konzipiert für Einfachheit und Effektivität. +- **Portweiterleitung**: Leite TCP‑ oder UDP‑Ports bequem an Peers oder an Netzwerke hinter diesen Peers weiter. +- **DNS‑Server**: Benutzerdefinierte Hosts und DNS‑Blacklists für höhere Sicherheit und verbesserten Datenschutz. +- **Mehrbenutzer‑Unterstützung**: Verwalte den Zugriff mit unterschiedlichen Berechtigungsstufen für jeden Benutzer. +- **Mehrere WireGuard‑Instanzen**: Separate Verwaltung der Peers über mehrere Instanzen hinweg. +- **Crypto‑Key‑Routing**: Vereinfacht die Konfiguration von Site‑to‑Site‑Verbindungen. +- **Einfaches Teilen von VPN‑Einladungen**: Erzeuge und verteile sofort sichere, zeitlich begrenzte VPN‑Einladungen per E‑Mail oder WhatsApp – inklusive QR‑Code und Konfigurationsdatei. + +Dieses Projekt zielt darauf ab, eine intuitive und benutzerfreundliche Lösung für das WireGuard‑Management bereitzustellen, ohne die Flexibilität und Leistung von WireGuard einzuschränken. + +## Lizenz + +Dieses Projekt steht unter der MIT‑Lizenz – siehe [LICENSE](../LICENSE) für Details. + +## Screenshots + +### Peer‑Liste +Zeigt eine vollständige Liste der Peers inklusive Status und weiterer Details zur einfachen Überwachung und Verwaltung von WireGuard‑Verbindungen. +![WireGuard Peer List](../screenshots/peerlist.png) + +### Peer‑Details +Zeigt wichtige Peer‑Informationen, detaillierte Metriken sowie eine vollständige Traffic‑Historie. Enthält außerdem einen QR‑Code für die einfache Konfiguration. +![WireGuard Peer Details](../screenshots/peerinfo.png) + +### VPN‑Einladung +Erstellt sichere, zeitlich begrenzte VPN‑Einladungen zum einfachen Teilen per E‑Mail oder WhatsApp – inklusive QR‑Code und Konfigurationsdatei. +![VPN Invite](../screenshots/vpninvite.png) + +### Erweiterte DNS‑Filterung +Blockiere unerwünschte Inhalte mit integrierten DNS‑Filterlisten. Vorgefertigte Kategorien wie Pornografie, Glücksspiel, Fake‑News, Adware und Malware sind enthalten; eigene Kategorien lassen sich hinzufügen, um die Sicherheit anzupassen. +![DNS Server](../screenshots/dns.png) + +### Firewall‑Verwaltung +Bietet eine umfassende Oberfläche zur Verwaltung von VPN‑Firewall‑Regeln. Regeln können mit iptables‑ähnlicher Syntax erstellt, bearbeitet und gelöscht werden und ermöglichen so eine präzise Steuerung des Datenverkehrs. +![Firewall Rule List](../screenshots/firewall-rule-list.png) +![Firewall Rule Manager](../screenshots/firewall-manage-rule.png) + +### WireGuard‑Instanz‑Einstellungen +Zentrale Anlaufstelle für die Verwaltung der Einstellungen einer oder mehrerer WireGuard‑Instanzen. +![WireGuard Server Configuration](../screenshots/serverconfig.png) + +### Konsole +Schneller Zugriff auf häufig genutzte Debugging‑Tools zur Diagnose und Lösung potenzieller Probleme in der WireGuard‑Umgebung. +![Console](../screenshots/console.png) + +### Benutzerverwaltung +Unterstützt Mehrbenutzer‑Umgebungen durch Zuweisung unterschiedlicher Berechtigungsstufen – von eingeschränktem Zugriff bis hin zu vollständigen Administratorrechten. +![User Manager](../screenshots/usermanager.png) + +Auf Basis deiner Anforderungen wurden die folgenden Deploy‑Anweisungen erstellt. Sie verwenden `wget`, um stets die aktuellste `docker-compose.yml` direkt aus deinem GitHub‑Repository abzurufen, und erläutern die Erstellung einer `.env`‑Datei für Umgebungsvariablen. So stellst du sicher, dass Nutzer immer mit der neuesten Deployment‑Konfiguration arbeiten. + +## Deploy‑Anleitung + +Folge diesen Schritten, um WireGuard WebAdmin bereitzustellen: + +1. **Umgebung vorbereiten** + + Erstelle zunächst ein Verzeichnis für WireGuard WebAdmin und wechsle hinein: + + ```bash + mkdir wireguard_webadmin && cd wireguard_webadmin + ``` + +2. **Docker‑Compose‑Datei herunterladen** + + Wähle je nach Szenario einen der folgenden Befehle, um die passende `docker-compose.yml` herunterzuladen. So nutzt du stets die aktuelle Version der Deployment‑Datei. + + ### Mit NGINX (empfohlen) + + Für eine produktionsreife Bereitstellung mit NGINX als Reverse‑Proxy (empfohlen): + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose.yml + ``` + + Im Standard generiert der Container ein selbstsigniertes Zertifikat. Eigene Zertifikate können durch Ersetzen von `nginx.pem` und `nginx.key` im Volume `certificates` hinterlegt werden. + + ### Ohne NGINX (nur Debug/Test) + + Für eine reine Testumgebung ohne NGINX (nicht für Produktion empfohlen): + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-nginx.yml + ``` + +3. **`.env`‑Datei erstellen** + + Erstelle eine `.env`‑Datei im selben Verzeichnis wie deine `docker-compose.yml` und passe `my_server_address` an die DNS‑Adresse oder IP deines Servers an: + + ```env + # SERVER_ADDRESS muss auf den Server zeigen. Ohne DNS‑Namen kann die IP genutzt werden. + # Ein falsch konfigurierter SERVER_ADDRESS führt zu CSRF‑Fehlern. + SERVER_ADDRESS=my_server_address + DEBUG_MODE=False + ``` + +4. **Docker Compose ausführen** + + ### Mit NGINX (empfohlen) + + ```bash + docker compose up -d + ``` + + Web‑Interface unter `https://yourserver.example.com` öffnen. Bei selbstsigniertem Zertifikat muss die Ausnahme akzeptiert werden. + + ### Ohne NGINX (nur Debug/Test) + + ```bash + docker compose -f docker-compose-no-nginx.yml up -d + ``` + + Web‑Interface unter `http://127.0.0.1:8000` öffnen. + +Nach diesen Schritten sollte WireGuard WebAdmin laufen. Konfiguriere anschließend deine Instanzen über das Web‑Interface. + +## Upgrade‑Anleitung + +Regelmäßige Upgrades stellen sicher, dass du die neuesten Funktionen, Sicherheitsverbesserungen und Bugfixes erhältst. + +### Vorbereitung + +1. **Vom Git‑Clone‑Workflow umsteigen** + + ```bash + cd /pfad/zu/wireguard_webadmin + ``` + Befindet sich deine Installation in einem Git‑Clone‑Verzeichnis, wechsle dorthin: + ```bash + cd /pfad/zu/wireguard_webadmin_git_clone + ``` + +2. **Dienste stoppen** + + ```bash + docker compose down + ``` + +3. **Aktuelle Images ziehen** + + ```bash + docker compose pull + ``` + +4. **Daten sichern** + + ```bash + tar cvfz wireguard-webadmin-backup-$(date +%Y-%m-%d-%H%M%S).tar.gz /var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/ + ``` + + Passe den Pfad zum Volume ggf. an. + +5. **Neu deployen** + + Folge anschließend der [Deploy‑Anleitung](#deploy-anleitung) und lade dabei die aktuelle `docker-compose.yml` erneut herunter. + +### Nach dem Upgrade + +- **Funktion prüfen**: Web‑Interface aufrufen und Logs prüfen. +- **Unterstützung**: Bei Problemen siehe [Discussions](https://github.com/eduardogsilva/wireguard_webadmin/discussions). + +## Beitragen + +Beiträge machen die Open‑Source‑Community großartig. **Danke für jede Unterstützung!** + +## Support + +Bei Fragen oder Problemen eröffne bitte ein Issue auf GitHub. + diff --git a/docs/README.es.md b/docs/README.es.md new file mode 100644 index 0000000..8e1d991 --- /dev/null +++ b/docs/README.es.md @@ -0,0 +1,207 @@ +## 🌍 Lea esto en otros idiomas: +- 🇬🇧 [English](../README.md) +- 🇧🇷 [Português](README.pt-br.md) +- 🇪🇸 [Español](README.es.md) +- 🇫🇷 [Français](README.fr.md) +- 🇩🇪 [Deutsch](README.de.md) + +✨ Si encuentra algún problema con la traducción o desea solicitar un nuevo idioma, por favor abra un [issue](https://github.com/eduardogsilva/wireguard_webadmin/issues). + +# wireguard_webadmin + +**wireguard_webadmin** es una interfaz web completa y fácil de configurar para administrar instancias de WireGuard VPN. Diseñada para simplificar la administración de redes WireGuard, ofrece una interfaz intuitiva que admite múltiples usuarios con distintos niveles de acceso, varias instancias de WireGuard con gestión individual de peers y soporte para *crypto‑key routing* en interconexiones *site‑to‑site*. + +## Funcionalidades + +- **Historial de Transferencia por Peer**: Controle los volúmenes de descarga y subida de cada peer individualmente. +- **Gestión Avanzada de Firewall**: Disfrute de una gestión de firewall de VPN integral y sencilla, diseñada para ser eficaz. +- **Redirección de Puertos**: Redirija puertos TCP o UDP a peers o redes detrás de esos peers con facilidad. +- **Servidor DNS**: Soporte para hosts personalizados y listas de bloqueo DNS para mayor seguridad y privacidad. +- **Soporte Multiusuario**: Gestione el acceso con diferentes niveles de permisos para cada usuario. +- **Múltiples Instancias de WireGuard**: Permite la gestión separada de peers en varias instancias. +- **Crypto‑Key Routing**: Simplifica la configuración de interconexiones *site‑to‑site*. +- **Compartir Invitaciones VPN Sin Esfuerzo**: Genere y distribuya al instante invitaciones VPN seguras y temporales por correo electrónico o WhatsApp, con código QR y archivo de configuración. + +Este proyecto tiene como objetivo ofrecer una solución intuitiva y fácil de usar para la gestión de VPN WireGuard sin comprometer la potencia y flexibilidad que proporciona WireGuard. + +## Licencia + +Este proyecto está bajo la licencia MIT. Consulte el archivo [LICENSE](../LICENSE) para más detalles. + +## Capturas de Pantalla + +### Lista de Peers +Muestra una lista completa de peers, incluido su estado y otros detalles, lo que permite supervisar y gestionar fácilmente las conexiones VPN de WireGuard. +![Lista de Peers de WireGuard](../screenshots/peerlist.png) + +### Detalles del Peer +Presenta información clave del peer, métricas detalladas y un historial completo de volumen de tráfico. También incluye un código QR para una configuración sencilla. +![Detalles del Peer](../screenshots/peerinfo.png) + +### Invitación VPN +Genera invitaciones VPN seguras y temporales para compartir fácilmente la configuración por correo electrónico o WhatsApp, con código QR y archivo de configuración. +![Invitación VPN](../screenshots/vpninvite.png) + +### Filtrado DNS Avanzado +Bloquee contenido no deseado mediante listas de filtrado DNS integradas. Incluye categorías predefinidas como pornografía, juegos de azar, noticias falsas, adware y malware, con la posibilidad de agregar categorías personalizadas para una experiencia de seguridad adaptada. +![Servidor DNS](../screenshots/dns.png) + +### Gestión de Firewall +Proporciona una interfaz completa para gestionar reglas de firewall de la VPN, permitiendo crear, editar y eliminar reglas con sintaxis estilo *iptables*. Esta característica garantiza un control preciso del tráfico de red, mejorando la seguridad y la conectividad de las instancias de WireGuard. +![Lista de Reglas de Firewall](../screenshots/firewall-rule-list.png) +![Gestor de Reglas de Firewall](../screenshots/firewall-manage-rule.png) + +### Configuración de Instancias de WireGuard +Un centro de control para gestionar la configuración de una o varias instancias de WireGuard, permitiendo ajustes sencillos de la VPN. +![Configuración del Servidor WireGuard](../screenshots/serverconfig.png) + +### Consola +Acceso rápido a herramientas comunes de depuración, lo que facilita el diagnóstico y la resolución de posibles problemas en el entorno VPN WireGuard. +![Consola](../screenshots/console.png) + +### Gestor de Usuarios +Admite entornos multiusuario permitiendo asignar distintos niveles de permisos, desde acceso restringido hasta derechos administrativos completos, garantizando un control de acceso seguro y personalizado. +![Gestor de Usuarios](../screenshots/usermanager.png) + +--- + +## Instrucciones de Despliegue + +Siga estos pasos para desplegar WireGuard WebAdmin: + +1. **Prepare el Entorno:** + + Cree un directorio para el proyecto WireGuard WebAdmin y acceda a él. Este será el directorio de trabajo para el despliegue. + + ```bash + mkdir wireguard_webadmin && cd wireguard_webadmin + ``` + +2. **Obtenga el Archivo Docker Compose:** + + Según su escenario de despliegue, elija uno de los siguientes comandos para descargar el archivo `docker-compose.yml` correspondiente directamente en su directorio de trabajo. Este método garantiza que utilice la versión más reciente de la configuración. + + ### Con NGINX (Recomendado) + + Para un despliegue de producción con NGINX como *reverse proxy* (recomendado para la mayoría), use: + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose.yml + ``` + + Este modo es el recomendado para ejecutar la interfaz web de administración. El despliegue del contenedor generará automáticamente un certificado autofirmado. Si desea actualizar sus certificados, acceda al volumen `certificates` y sustituya `nginx.pem` y `nginx.key` por sus propios certificados. + + ### Sin NGINX (Solo para Depuración y Pruebas) + + Para un entorno de depuración sin NGINX (no recomendado en producción), use: + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-nginx.yml + ``` + +3. **Cree el Archivo `.env`:** + + Cree un archivo `.env` en el mismo directorio que su `docker-compose.yml` con el siguiente contenido, ajustando `my_server_address` al nombre DNS o IP de su servidor. + + ```env + # Configure SERVER_ADDRESS para que coincida con la dirección de su servidor. Puede usar la IP si no tiene DNS. + # Una SERVER_ADDRESS mal configurada provocará errores CSRF. + SERVER_ADDRESS=my_server_address + DEBUG_MODE=False + ``` + + Sustituya `my_server_address` por la dirección real de su servidor. + +4. **Ejecute Docker Compose:** + + ### Con NGINX (Recomendado) + + ```bash + docker compose up -d + ``` + + Acceda a la interfaz web en `https://suserver.ejemplo.com`. Si utiliza un certificado autofirmado, acepte la excepción de seguridad en su navegador. + + ### Sin NGINX (Solo para Depuración y Pruebas) + + Si eligió la configuración sin NGINX, ejecute el archivo descargado `docker-compose-no-nginx.yml`: + + ```bash + docker compose -f docker-compose-no-nginx.yml up -d + ``` + + Acceda a la interfaz en `http://127.0.0.1:8000`. + +Tras completar estos pasos, WireGuard WebAdmin estará en funcionamiento. Comience la configuración accediendo a la interfaz web de su servidor. + +--- + +## Instrucciones de Actualización + +Actualizar su instalación de WireGuard WebAdmin garantiza acceso a nuevas funciones, mejoras de seguridad y correcciones. Siga estas instrucciones para una actualización sin problemas: + +### Preparación para la Actualización: + +1. **Transición desde un flujo de trabajo *git clone*:** + + Acceda al directorio `wireguard_webadmin`: + + ```bash + cd path/to/wireguard_webadmin + ``` + + Si actualiza desde una instalación realizada con *git clone*, vaya al directorio del proyecto: + + ```bash + cd /path/to/wireguard_webadmin_git_clone + ``` + +2. **Detenga los Servicios:** + + Pare todos los servicios para evitar pérdida de datos durante la actualización. + + ```bash + docker compose down + ``` + +3. **Descargue las Imágenes Más Recientes:** + + Actualice sus imágenes locales: + + ```bash + docker compose pull + ``` + +4. **Haga Copia de Seguridad de Sus Datos:** + + Antes de cualquier cambio, realice una copia de seguridad de la base de datos y de datos importantes. + + ```bash + tar cvfz wireguard-webadmin-backup-$(date +%Y-%m-%d-%H%M%S).tar.gz /var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/ + ``` + + Sustituya la ruta del volumen Docker si es diferente. El archivo se guardará en el directorio actual. + +5. **Despliegue con Docker Compose:** + + Siga las [Instrucciones de Despliegue](#instrucciones-de-despliegue) indicadas anteriormente. + +> **Nota:** No olvide actualizar `docker-compose.yml` a la versión más reciente descargándolo de nuevo del repositorio. + +### Verificaciones Posteriores a la Actualización: + +- **Verifique el Funcionamiento:** Una vez iniciados los servicios, acceda a la interfaz web para comprobar que WireGuard WebAdmin funciona correctamente. Revise los registros de la aplicación para detectar problemas. +- **Soporte y Solución de Problemas:** Si surge alguna complicación, consulte la sección de [Discussions](https://github.com/eduardogsilva/wireguard_webadmin/discussions) o la documentación relacionada. + +Siguiendo estos pasos, actualizará WireGuard WebAdmin a la versión más reciente, incorporando todas las mejoras y correcciones de seguridad. Recuerde que realizar copias de seguridad periódicas y seguir estos pasos ayuda a mantener la salud y seguridad de su implementación. + +--- + +## Contribuir + +Las contribuciones hacen que la comunidad *open‑source* sea un lugar increíble para aprender, inspirar y crear. Sus contribuciones son **muy apreciadas**. + +## Soporte + +Si encuentra problemas o necesita ayuda, abra un *issue* en la página de GitHub del proyecto. + diff --git a/docs/README.fr.md b/docs/README.fr.md new file mode 100644 index 0000000..9361c7a --- /dev/null +++ b/docs/README.fr.md @@ -0,0 +1,175 @@ +## 🌍 Lire ceci dans d’autres langues: +- 🇬🇧 [English](../README.md) +- 🇧🇷 [Português](README.pt-br.md) +- 🇪🇸 [Español](README.es.md) +- 🇫🇷 [Français](README.fr.md) +- 🇩🇪 [Deutsch](README.de.md) + +✨ Si vous constatez un problème dans la traduction ou souhaitez demander une nouvelle langue, veuillez ouvrir une [issue](https://github.com/eduardogsilva/wireguard_webadmin/issues). + +# wireguard_webadmin + +wireguard_webadmin est une interface web complète et facile à configurer pour gérer des instances WireGuard VPN. Conçue pour simplifier l’administration des réseaux WireGuard, elle fournit une interface conviviale prenant en charge plusieurs utilisateurs avec différents niveaux d’accès, plusieurs instances WireGuard avec gestion individuelle des pairs, ainsi que le crypto‑key‑routing pour les interconnexions site‑à‑site. + +## Fonctionnalités + +- **Historique de transfert par pair**: suivez les volumes de téléchargement et d’envoi pour chaque pair. +- **Gestion avancée du pare‑feu**: administration VPN simple et efficace des règles de pare‑feu. +- **Redirection de ports**: redirigez facilement des ports TCP ou UDP vers des pairs ou des réseaux situés derrière ces pairs. +- **Serveur DNS**: prise en charge d’hôtes personnalisés et de listes de blocage pour une sécurité renforcée et une meilleure confidentialité. +- **Prise en charge multi‑utilisateur**: gérez l’accès avec différents niveaux d’autorisation. +- **Instances WireGuard multiples**: gérez séparément les pairs de plusieurs instances. +- **Crypto Key Routing**: simplifie la configuration des interconnexions site‑à‑site. +- **Partage d’invitations VPN**: générez et distribuez instantanément des invitations VPN sécurisées et limitées dans le temps par e‑mail ou WhatsApp, avec QR code et fichier de configuration. + +Ce projet vise à offrir une solution intuitive et conviviale pour l’administration de WireGuard, sans compromettre la puissance et la flexibilité du protocole. + +## Licence + +Ce projet est distribué sous licence MIT – consultez le fichier [LICENSE](../LICENSE) pour plus de détails. + +## Captures d’écran + +### Liste des pairs +Affiche une liste complète des pairs, y compris leur état et d’autres détails, pour un suivi et une gestion aisés des connexions WireGuard. +![WireGuard Peer List](../screenshots/peerlist.png) + +### Détails d’un pair +Affiche les informations clés du pair, des métriques détaillées et un historique complet du volume de trafic. Comprend également un QR code pour une configuration facile. +![WireGuard Peer Details](../screenshots/peerinfo.png) + +### Invitation VPN +Génère des invitations VPN sécurisées et limitées dans le temps pour un partage facile de la configuration via e‑mail ou WhatsApp, avec QR code et fichier de configuration. +![VPN Invite](../screenshots/vpninvite.png) + +### Filtrage DNS avancé +Bloquez les contenus indésirables grâce aux listes de filtrage DNS intégrées. Des catégories prédéfinies comme pornographie, jeux d’argent, fake news, adware et malware sont incluses, avec la possibilité d’ajouter des catégories personnalisées pour une sécurité adaptée. +![DNS Server](../screenshots/dns.png) + +### Gestion du pare‑feu +Interface complète pour créer, modifier et supprimer des règles de pare‑feu avec une syntaxe de type iptables. Permet un contrôle précis du trafic réseau, améliorant la sécurité et la connectivité des instances WireGuard. +![Firewall Rule List](../screenshots/firewall-rule-list.png) +![Firewall Rule Manager](../screenshots/firewall-manage-rule.png) + +### Paramètres de l’instance WireGuard +Un hub centralisé pour gérer les paramètres d’une ou plusieurs instances WireGuard, permettant des ajustements de configuration simples. +![WireGuard Server Configuration](../screenshots/serverconfig.png) + +### Console +Accès rapide aux outils de débogage courants afin de diagnostiquer et résoudre les problèmes potentiels dans l’environnement WireGuard. +![Console](../screenshots/console.png) + +### Gestion des utilisateurs +Prend en charge les environnements multi‑utilisateur en permettant d’assigner différents niveaux d’autorisation, du simple accès restreint aux droits administrateur complets. +![User Manager](../screenshots/usermanager.png) + +## Instructions de déploiement + +Suivez ces étapes pour déployer WireGuard WebAdmin: + +1. **Préparer l’environnement** + + Créez d’abord un répertoire pour le projet et placez‑vous dedans: + + ```bash + mkdir wireguard_webadmin && cd wireguard_webadmin + ``` + +2. **Télécharger le fichier Docker Compose** + + Choisissez l’une des commandes suivantes pour récupérer la dernière version du `docker-compose.yml` directement depuis le dépôt GitHub. + + ### Avec NGINX (recommandé) + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose.yml + ``` + + Ce mode est recommandé pour exécuter l’interface web. Le déploiement générera automatiquement un certificat auto‑signé. Pour utiliser vos propres certificats, remplacez `nginx.pem` et `nginx.key` dans le volume `certificates`. + + ### Sans NGINX (mode debug/test uniquement) + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-nginx.yml + ``` + +3. **Créer le fichier `.env`** + + Dans le même répertoire que `docker-compose.yml`, créez un fichier `.env`: + + ```env + # Configurez SERVER_ADDRESS avec le nom DNS ou l’adresse IP du serveur. + # Une mauvaise valeur provoquera des erreurs CSRF. + SERVER_ADDRESS=my_server_address + DEBUG_MODE=False + ``` + + Remplacez `my_server_address` par l’adresse réelle de votre serveur. + +4. **Lancer Docker Compose** + + #### Avec NGINX (recommandé) + + ```bash + docker compose up -d + ``` + + Accédez à l’interface via `https://votreserveur.exemple.com`. Avec un certificat auto‑signé, votre navigateur demandera une exception. + + #### Sans NGINX (mode debug/test) + + ```bash + docker compose -f docker-compose-no-nginx.yml up -d + ``` + + Accédez à l’interface via `http://127.0.0.1:8000`. + +Après ces étapes, WireGuard WebAdmin sera opérationnel. + +## Instructions de mise à jour + +Pour profiter des dernières fonctionnalités et correctifs: + +1. **Si vous utilisiez un clone Git** + + ```bash + cd /chemin/vers/wireguard_webadmin_git_clone + ``` + +2. **Arrêter les services** + + ```bash + docker compose down + ``` + +3. **Mettre à jour les images** + + ```bash + docker compose pull + ``` + +4. **Sauvegarder vos données** + + ```bash + tar cvfz wireguard-webadmin-backup-$(date +%Y-%m-%d-%H%M%S).tar.gz /var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/ + ``` + + Adaptez le chemin si nécessaire. + +5. **Déployer à nouveau** + + Suivez les [instructions de déploiement](#instructions-de-déploiement) et récupérez la dernière version de `docker-compose.yml`. + +### Vérifications post‑mise à jour + +- Vérifiez l’interface web et les journaux pour détecter d’éventuels problèmes. +- Besoin d’aide ? Consultez la section [Discussions](https://github.com/eduardogsilva/wireguard_webadmin/discussions). + +## Contribuer + +Les contributions sont **grandement appréciées**! Rejoignez‑nous pour améliorer ce projet open‑source. + +## Support + +En cas de problème, ouvrez une *issue* sur la page GitHub du projet. + diff --git a/docs/README.pt-br.md b/docs/README.pt-br.md new file mode 100644 index 0000000..aa0db1a --- /dev/null +++ b/docs/README.pt-br.md @@ -0,0 +1,206 @@ +## 🌍 Leia em outros idiomas: +- 🇬🇧 [English](../README.md) +- 🇧🇷 [Português](README.pt-br.md) +- 🇪🇸 [Español](README.es.md) +- 🇫🇷 [Français](README.fr.md) +- 🇩🇪 [Deutsch](README.de.md) + +✨ Se encontrar algum problema na tradução ou quiser solicitar um novo idioma, por favor abra uma [issue](https://github.com/eduardogsilva/wireguard_webadmin/issues). + +# wireguard_webadmin + +**wireguard_webadmin** é uma interface web completa e fácil de configurar para gerenciar instâncias WireGuard VPN. Projetada para simplificar a administração de redes WireGuard, ela oferece uma interface amigável que suporta múltiplos usuários com diferentes níveis de acesso, várias instâncias WireGuard com gerenciamento individual de peers e suporte a *crypto‑key routing* para interconexões *site‑to‑site*. + +## Funcionalidades + +- **Histórico de Transferência de Cada Peer**: Acompanhe individualmente os volumes de download e upload de cada peer. +- **Gerenciamento Avançado de Firewall**: Experimente um gerenciamento de firewall de VPN abrangente e sem complicações, projetado para ser simples e eficaz. +- **Redirecionamento de Portas**: Redirecione portas TCP ou UDP para peers ou redes além desses peers com facilidade! +- **Servidor DNS**: Suporte a hosts personalizados e listas de bloqueio DNS para maior segurança e privacidade. +- **Suporte Multiusuário**: Gerencie o acesso com diferentes níveis de permissão para cada usuário. +- **Múltiplas Instâncias WireGuard**: Permite o gerenciamento separado de peers em várias instâncias. +- **Crypto‑Key Routing**: Simplifica a configuração de interconexões *site‑to‑site*. +- **Compartilhamento de Convites VPN Sem Atrito**: Gere e distribua instantaneamente convites VPN seguros e com tempo de validade via e‑mail ou WhatsApp, contendo QR code e arquivo de configuração. + +Este projeto tem como objetivo oferecer uma solução intuitiva e fácil de usar para gerenciamento de VPN WireGuard sem comprometer o poder e a flexibilidade que o WireGuard oferece. + +## Licença + +Este projeto é licenciado sob a licença MIT – consulte o arquivo [LICENSE](../LICENSE) para detalhes. + +## Capturas de Tela + +### Lista de Peers +Exibe uma lista abrangente de peers, incluindo seu status e outros detalhes, permitindo monitorar e gerenciar facilmente as conexões VPN do WireGuard. +![Lista de Peers do WireGuard](../screenshots/peerlist.png) + +### Detalhes do Peer +Mostra informações essenciais do peer, métricas detalhadas e um histórico completo de volume de tráfego. Inclui também um QR code para configuração fácil. +![Detalhes do Peer](../screenshots/peerinfo.png) + +### Convite VPN +Gera convites VPN seguros e com tempo de validade para compartilhamento de configurações via e‑mail ou WhatsApp, com QR code e arquivo de configuração. +![Convite VPN](../screenshots/vpninvite.png) + +### Filtragem DNS Avançada +Bloqueie conteúdo indesejado com listas de filtragem DNS integradas. Categorias predefinidas como pornografia, jogos de azar, fake news, adware e malware estão incluídas, com a possibilidade de adicionar categorias personalizadas para uma experiência de segurança sob medida. +![Servidor DNS](../screenshots/dns.png) + +### Gerenciamento de Firewall +Oferece uma interface abrangente para gerenciar regras de firewall da VPN, permitindo criar, editar e excluir regras com sintaxe estilo *iptables*. Este recurso garante controle preciso do tráfego de rede, ampliando a segurança e a conectividade das instâncias WireGuard. +![Lista de Regras de Firewall](../screenshots/firewall-rule-list.png) +![Gerenciador de Regras de Firewall](../screenshots/firewall-manage-rule.png) + +### Configurações da Instância WireGuard +Um hub central para gerenciar configurações de uma ou várias instâncias WireGuard, possibilitando ajustes de configuração de forma simples. +![Configuração do Servidor WireGuard](../screenshots/serverconfig.png) + +### Console +Acesso rápido a ferramentas comuns de depuração, facilitando o diagnóstico e a resolução de possíveis problemas no ambiente VPN WireGuard. +![Console](../screenshots/console.png) + +### Gerenciador de Usuários +Suporta ambientes multiusuário permitindo atribuir níveis de permissão variados, desde acesso restrito até direitos administrativos completos, garantindo controle de acesso seguro e personalizado. +![Gerenciador de Usuários](../screenshots/usermanager.png) + +--- + +## Instruções de Implantação + +Siga estes passos para implantar o WireGuard WebAdmin: + +1. **Prepare o Ambiente:** + + Primeiro, crie um diretório para o projeto WireGuard WebAdmin e navegue até ele. Este será o diretório de trabalho para a implantação. + + ```bash + mkdir wireguard_webadmin && cd wireguard_webadmin + ``` + +2. **Obtenha o Arquivo Docker Compose:** + + Dependendo do seu cenário de implantação, escolha um dos comandos a seguir para baixar o arquivo `docker-compose.yml` apropriado diretamente no seu diretório de trabalho. Esse método garante que você está usando a versão mais recente da configuração de implantação. + + ### Com NGINX (Recomendado) + + Para uma implantação pronta para produção com NGINX como *reverse proxy* (recomendado para a maioria dos usuários), use: + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose.yml + ``` + + Este modo é recomendado para executar a interface web de administração. O *deployment* do contêiner gerará automaticamente um certificado autoassinado para você. Se desejar atualizar seus certificados, basta acessar o volume `certificates` e substituir `nginx.pem` e `nginx.key` pelos seus próprios certificados. + + ### Sem NGINX (Somente para Debug e Testes) + + Para um ambiente de depuração sem NGINX, adequado apenas para testes (não recomendado em produção), use: + + ```bash + wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-nginx.yml + ``` + +3. **Crie o Arquivo `.env`:** + + Crie um arquivo `.env` no mesmo diretório do seu `docker-compose.yml` com o conteúdo abaixo, ajustando `my_server_address` para o DNS ou endereço IP do seu servidor. Este passo é crucial para garantir o funcionamento correto da aplicação. + + ```env + # Configure SERVER_ADDRESS para coincidir com o endereço do servidor. Se não tiver um nome DNS, você pode usar o IP. + # Um SERVER_ADDRESS configurado incorretamente causará erros de CSRF na aplicação. + SERVER_ADDRESS=my_server_address + DEBUG_MODE=False + ``` + + Substitua `my_server_address` pelo endereço real do seu servidor. + +4. **Execute o Docker Compose:** + + ### Com NGINX (Recomendado) + + ```bash + docker compose up -d + ``` + + Acesse a interface web em `https://seuservidor.exemplo.com`. Se estiver usando um certificado autoassinado, será necessário aceitar a exceção de certificado apresentada pelo navegador. + + ### Sem NGINX (Somente para Debug e Testes) + + Caso tenha optado pela configuração sem NGINX, simplesmente execute o arquivo `docker-compose-no-nginx.yml` obtido anteriormente: + + ```bash + docker compose -f docker-compose-no-nginx.yml up -d + ``` + + Acesse a interface web em `http://127.0.0.1:8000`. + +Após concluir esses passos, o WireGuard WebAdmin deverá estar em execução. Inicie a configuração acessando a interface web do seu servidor. + +--- + +## Instruções de Upgrade + +Manter sua instalação do WireGuard WebAdmin atualizada garante acesso aos recursos mais recentes, melhorias de segurança e correções de bugs. Siga estas instruções para um upgrade tranquilo: + +### Preparação para o Upgrade: + +1. **Transição de um Workflow *git clone*:** + + Navegue até o diretório `wireguard_webadmin`: + + ```bash + cd path/to/wireguard_webadmin + ``` + + Se estiver atualizando a partir de uma instalação existente via *git clone*, navegue até o diretório do projeto atual. + + ```bash + cd /path/to/wireguard_webadmin_git_clone + ``` + +2. **Desligue os Serviços:** + + Pare todos os serviços em execução para evitar perda de dados durante o upgrade. + + ```bash + docker compose down + ``` + +3. **Baixe as Imagens Mais Recentes:** + + Atualize suas imagens locais: + + ```bash + docker compose pull + ``` + +4. **Faça Backup dos Seus Dados:** + + Antes de qualquer alteração, faça backup do banco de dados e de outros dados importantes. Este passo é essencial para restaurar sua configuração, se necessário. + + ```bash + tar cvfz wireguard-webadmin-backup-$(date +%Y-%m-%d-%H%M%S).tar.gz /var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/ + ``` + + Substitua `/var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/` pelo caminho real do volume Docker, se diferente. O comando salva o backup no diretório atual. + +5. **Implante Usando Docker Compose:** + + Siga as [Instruções de Implantação](#instruções-de-implantação) descritas anteriormente. + +> **Observação:** Não se esqueça de atualizar o arquivo `docker-compose.yml` para a versão mais recente, baixando-o novamente do repositório. + +### Verificações Pós‑Upgrade: + +- **Verifique a Operação:** Após iniciar os serviços, acesse a interface web para garantir que o WireGuard WebAdmin esteja funcionando como esperado. Examine os logs da aplicação para possíveis problemas. +- **Suporte e Solução de Problemas:** Em caso de complicações ou para mais informações, consulte a página de [Discussions](https://github.com/eduardogsilva/wireguard_webadmin/discussions) do projeto ou a documentação pertinente. + +Seguindo estas instruções, você atualizará seu WireGuard WebAdmin para a versão mais recente, incorporando todas as melhorias e atualizações de segurança disponíveis. Lembre‑se, backups regulares e o cumprimento destes passos de upgrade ajudam a manter a saúde e a segurança da sua implantação. + +--- + +## Contribuindo + +Contribuições tornam a comunidade *open‑source* um lugar incrível para aprender, inspirar e criar. Suas contribuições são **muito bem‑vindas**. + +## Suporte + +Se encontrar qualquer problema ou precisar de assistência, abra uma *issue* na página GitHub do projeto.