diff --git a/README.md b/README.md index 681fc5d..18a6083 100644 --- a/README.md +++ b/README.md @@ -5,213 +5,64 @@ - 🇫🇷 [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). +✨ 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. +**Self-hosted VPN management and Zero Trust access control — all on your infrastructure.** -## Features +More than a WireGuard panel: manage peers, firewall rules, DNS, port forwarding, and publish internal apps with proper authentication — without relying on third-party services. Runs on any Linux machine with Docker. Free, open source, nothing leaves your server. -- **Individual Peer Transfer History**: Track individual download and upload volumes for each peer. -- **Advanced Firewall Management**: Experience effortless and comprehensive VPN firewall management, designed for simplicity and effectiveness. -- **Port Forwarding**: Seamlessly redirect TCP or UDP ports to peers or networks located beyond those peers with ease! -- **DNS Server**: Custom hosts and DNS blacklist support for enhanced security, and improved privacy. -- **Multi-User Support**: Manage access with different permission levels for each user. -- **Multiple WireGuard Instances**: Enables separate management for peers across multiple instances. -- **Crypto Key Routing**: Simplifies the configuration for site-to-site interconnections. -- **Seamless VPN Invite Sharing**: Instantly generate and distribute secure, time-sensitive VPN invites via email or WhatsApp, complete with QR code and configuration file options. -- **Routing Templates per Peer**: Define reusable routing templates per WireGuard instance and apply them to peers, ensuring consistent and predictable routing behavior. -- **Route Enforcement with Automatic Firewall Rules**: Enforce routing policies by automatically generating firewall rules that restrict peers to explicitly allowed routes. +- ⚙️ **Manage** — Multiple WireGuard instances, peer traffic graphs, firewall, DNS blacklists, VPN invite links with QR code +- 🔒 **Protect** — Zero Trust application gateway with TOTP, IP ACL, and anti-brute-force (Altcha PoW) +- ⚡ **Automate** — Scheduled peer access, routing templates, expiring invite links, REST API v2 - -This project aims to offer an intuitive and user-friendly solution for WireGuard VPN management without compromising the power and flexibility WireGuard provides. +### 📖 [Full documentation, installation guide and tips at wireguard-webadmin.com](https://wireguard-webadmin.com/) + +--- + +## Quick Install + +```bash +mkdir wireguard_webadmin && cd wireguard_webadmin +wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml +# edit .env with your SERVER_ADDRESS +docker compose up -d +``` + +> For detailed instructions, upgrade guide, and configuration tips visit **[wireguard-webadmin.com](https://wireguard-webadmin.com/)**. + +--- + +## Screenshots + +### Peer List +Real-time status and live bandwidth graphs for every peer across all WireGuard instances. +![Peer List](docs/images/peer_list_dark.png) + +### Peer Details +Traffic history, last handshake, allowed IPs, and QR code — all in one place. +![Peer Details](docs/images/peer_details.png) + +### Zero Trust Application Gateway +Publish internal apps like Proxmox or Grafana with TOTP authentication in front — no open ports needed. +![Zero Trust App Gateway](docs/images/zero_trust_app.png) + +### Firewall Management +Per-instance iptables rules, port forwarding, and outbound ACLs managed from the UI. +![Firewall](docs/images/firewall.png) + +### VPN Invite +Generate a shareable invite with QR code and config file. The user scans or imports it directly into their WireGuard client. +![VPN Invite](docs/images/vpn_invite.png) + +--- ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. -## Screenshots - -### Peer List -Displays a comprehensive list of peers, including their status and other details, allowing for easy monitoring and management of WireGuard VPN connections. -![Wireguard Peer List](screenshots/peerlist.png) - -### Peer Details -Displays key peer information, detailed metrics, and a complete traffic volume history. Also includes a QR code for easy configuration. -![WireGuard Peer Details](screenshots/peerinfo.png) - -### VPN Invite -Generates secure, time-sensitive VPN invites for easy configuration sharing via email or WhatsApp, complete with QR code and configuration file options. -![VPN Invite](screenshots/vpninvite.png) - -### Enhanced DNS Filtering -Block unwanted content with built-in DNS filtering lists. Predefined categories such as porn, gambling, fakenews, adware, and malware are included, with the ability to add custom categories for a tailored security experience. -![DNS Server](screenshots/dns.png) - - -### Firewall Management -Offers a comprehensive interface for managing VPN firewall rules, enabling users to easily create, edit, and delete rules with iptables-style syntax. This feature ensures precise control over network traffic, enhancing security and connectivity for WireGuard VPN instances. -![Firewall Rule List](screenshots/firewall-rule-list.png) -![Firewall Rule Manager](screenshots/firewall-manage-rule.png) - -### WireGuard Instance Settings -A central hub for managing settings across one or multiple WireGuard instances, enabling straightforward configuration adjustments for VPN interfaces. -![Wireguard Server Configuration](screenshots/serverconfig.png) -### Console -Offers quick access to common debugging tools, facilitating the diagnosis and resolution of potential issues within the WireGuard VPN environment. -![Console](screenshots/console.png) -### User Manager -Supports multi-user environments by allowing the assignment of varying permission levels, from restricted access to full administrative rights, ensuring secure and tailored access control. -![User Manager](screenshots/usermanager.png) - - -## Deployment Instructions - -Follow these steps to deploy the WireGuard WebAdmin: - -1.**Prepare the Environment:** - - First, create a directory for the WireGuard WebAdmin project and navigate into it. This will serve as the working directory for the deployment. - - ```bash - mkdir wireguard_webadmin && cd wireguard_webadmin - ``` - -2.**Fetch the Docker Compose File:** - - Depending on your deployment scenario, choose one of the following commands to download the appropriate compose file directly into your working directory. This approach ensures you're using the latest version of the deployment configuration. - - ### Option 1: With Caddy (Recommended) - - For the recommended production deployment with Caddy as a reverse proxy, use: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml - ``` -This is the recommended way to run the web admin interface because it includes all supported reverse proxy features and provides automatic SSL certificate management through Caddy. - -> [!IMPORTANT] -> Caddy requires a valid DNS name, either internal or public, pointing to your server so it can obtain and renew SSL certificates correctly. - - ### Option 2: Without Caddy - - If you prefer to use your own reverse proxy or run the application without Caddy, use: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-caddy.yml - ``` - -> [!CAUTION] -> Running without Caddy means you lose the built-in secure publishing experience, including automatic SSL certificates and the recommended reverse proxy setup. If you choose this option, make sure you provide your own secure exposure layer. - -3.**Create the `.env` File:** - - Create a `.env` file in the same directory as your `docker-compose.yml`, adjusting `my_server_address` to your server's DNS name or IP address. This step is crucial for ensuring the application functions correctly. - - ```env - # Configure SERVER_ADDRESS to match the address of the server. If you don't have a DNS name, you can use the IP address. - # A missconfigured SERVER_ADDRESS will cause the app to have CSRF errors. - SERVER_ADDRESS=my_server_address - DEBUG_MODE=False - - # Choose a timezone from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TIMEZONE=America/Sao_Paulo - - # WireGuard status caching settings - # This improves performance by reducing the number of calls to `wg` command and storing recent results. - # WIREGUARD_STATUS_CACHE_ENABLED=True - # - # How many cached WireGuard status snapshots should be preloaded on page load. - # This allows traffic charts to be displayed already populated instead of starting empty. - # Lower this value if the initial peer list feels slow. - # 0 = disable preload, 9 = fully prefill traffic charts.# - # WIREGUARD_STATUS_CACHE_WEB_LOAD_PREVIOUS_COUNT=9 - # - # How often (in seconds) the cache should be refreshed. - # Allowed values: 30, 60, 150, 300. Default: 60. - # WIREGUARD_STATUS_CACHE_REFRESH_INTERVAL=60 - - # If you need additional hosts to be allowed, you can specify them here. - # The SERVER_ADDRESS will always be allowed. - # Example: EXTRA_ALLOWED_HOSTS=app1.example.com,app2.example.com:8443,app3.example.com - #EXTRA_ALLOWED_HOSTS=app1.example.com,app2.example.com:8443,app3.example.com - ``` - - Replace `my_server_address` with your actual server address. - -4.**Run Docker Compose:** - - Execute the Docker Compose command to start your deployment. - - ```bash - docker compose up -d - ``` - - Access the web interface using `https://yourserver.example.com`. When using the recommended Caddy deployment, SSL certificates are obtained and renewed automatically. - -After completing these steps, your WireGuard WebAdmin should be up and running. Begin the configuration by accessing your server's web interface. - -## Upgrade Instructions - -Upgrading your WireGuard WebAdmin installation ensures you have access to the latest features, security improvements, and bug fixes. Follow these instructions for a smooth upgrade: - -### Preparing for Upgrade: - - 1.**Navigate to the Project Directory:** - - Navigate to your `wireguard_webadmin` directory: - ```bash - cd wireguard_webadmin - ``` - -2.**Shutdown Services:** - - Stop all running services to prevent data loss during the upgrade. - ```bash - docker compose down - ``` - -3.**Pull latest images:** - - Update your local images - ```bash - docker compose pull - ``` - - -4.**Backup Your Data:** - - Before making any changes, back up your database and any other important data. This step is crucial for restoring your setup if needed. - - - **Backup Database Command:** - ```bash - tar cvfz wireguard-webadmin-backup-$(date +%Y-%m-%d-%H%M%S).tar.gz /var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/ - ``` - - Replace `/var/lib/docker/volumes/wireguard_webadmin_wireguard/_data/` with the actual path to your Docker volume data if it's different. This command saves the backup to the current directory. - - -5.**Deploy Using Docker Compose:** - - Follow the previously outlined [Deployment Instructions](#deployment-instructions). - -Don't forget to update your compose file to the latest version by re-downloading it from the repository. - - -### Post-Upgrade Checks: - -- **Verify Operation:** After the services start, access the web interface to ensure WireGuard WebAdmin functions as expected. Examine the application logs for potential issues. -- **Support and Troubleshooting:** For any complications or need for further information, consult the project's [Discussions](https://github.com/eduardogsilva/wireguard_webadmin/discussions) page or relevant documentation. - -By adhering to these instructions, you will update your WireGuard WebAdmin to the latest version, incorporating all available enhancements and security updates. Remember, regular backups and following these upgrade steps will help maintain your deployment's health and security. - - ## Contributing -Contributions make the open-source community an amazing place to learn, inspire, and create. Your contributions are **greatly appreciated**. - -## Support - -If you encounter any issues or require assistance, please open an issue on the project's GitHub page. +Contributions are welcome and greatly appreciated. Feel free to open issues or pull requests on [GitHub](https://github.com/eduardogsilva/wireguard_webadmin). diff --git a/docs/README.de.md b/docs/README.de.md index 6d7c738..696dd98 100644 --- a/docs/README.de.md +++ b/docs/README.de.md @@ -7,200 +7,62 @@ ✨ 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: +**Self-hosted VPN-Verwaltung und Zero-Trust-Zugangskontrolle — alles auf deiner eigenen Infrastruktur.** -- mehrere Benutzer mit unterschiedlichen Berechtigungsstufen, -- mehrere WireGuard‑Instanzen mit individueller Peer‑Verwaltung sowie -- Crypto‑Key‑Routing für Site‑to‑Site‑Verbindungen. +Mehr als ein WireGuard-Panel: Verwalte Peers, Firewall-Regeln, DNS und Port-Weiterleitungen und veröffentliche interne Anwendungen mit echter Authentifizierung — ohne Abhängigkeit von Drittanbietern. Läuft auf jeder Linux-Maschine mit Docker. Kostenlos, open source, nichts verlässt deinen Server. -## Funktionen +- ⚙️ **Verwalten** — Mehrere WireGuard-Instanzen, Traffic-Graphen pro Peer, Firewall, DNS-Blacklists, VPN-Einladungen mit QR-Code +- 🔒 **Schützen** — Zero-Trust-Anwendungs-Gateway mit TOTP, IP-ACL und Brute-Force-Schutz (Altcha PoW) +- ⚡ **Automatisieren** — Zeitgesteuerter Peer-Zugang, Routing-Templates, ablaufende Einladungslinks, REST API v2 -- **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. -- **Routing-Vorlagen pro Peer**: Definieren Sie wiederverwendbare Routing-Vorlagen pro WireGuard-Instanz und wenden Sie diese auf Peers an, um ein konsistentes und vorhersehbares Routing-Verhalten zu gewährleisten. -- **Routenzwang mit automatischen Firewall-Regeln**: Erwingen Sie Routing-Richtlinien durch automatisches Erstellen von Firewall-Regeln, die Peers auf explizit erlaubte Routen beschränken. +### 📖 [Vollständige Dokumentation, Installationsanleitung und Tipps auf wireguard-webadmin.com](https://wireguard-webadmin.com/) -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 +## Schnellinstallation -Dieses Projekt steht unter der MIT‑Lizenz – siehe [LICENSE](../LICENSE) für Details. +```bash +mkdir wireguard_webadmin && cd wireguard_webadmin +wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml +# .env mit deiner SERVER_ADDRESS bearbeiten +docker compose up -d +``` + +> Für detaillierte Anleitungen, Upgrade-Guide und Konfigurationstipps besuche **[wireguard-webadmin.com](https://wireguard-webadmin.com/)**. + +--- ## 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-Liste +Echtzeit-Status und Live-Bandbreitengraphen für jeden Peer über alle WireGuard-Instanzen hinweg. +![Peer-Liste](images/peer_list_dark.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) +### Peer-Details +Traffic-Historie, letzter Handshake, erlaubte IPs und QR-Code — alles an einem Ort. +![Peer-Details](images/peer_details.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) +### Zero-Trust-Anwendungs-Gateway +Veröffentliche interne Apps wie Proxmox oder Grafana mit TOTP-Authentifizierung davor — ohne offene Ports. +![Zero-Trust-Gateway](images/zero_trust_app.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 +iptables-Regeln pro Instanz, Port-Weiterleitungen und ausgehende ACLs direkt über die Oberfläche verwalten. +![Firewall](images/firewall.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) +### VPN-Einladung +Erstelle einen teilbaren Einladungslink mit QR-Code und Konfigurationsdatei. Der Nutzer scannt oder importiert ihn direkt in seinen WireGuard-Client. +![VPN-Einladung](images/vpn_invite.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) +## Lizenz -### 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 Compose-Datei herunterzuladen. So nutzt du stets die aktuelle Version der Deployment-Datei. - - ### Option 1: Mit Caddy (empfohlen) - - Für das empfohlene produktive Deployment mit Caddy als Reverse-Proxy: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml - ``` - - Dies ist die empfohlene Methode zum Betrieb der Web-Administrationsoberfläche, da sie alle unterstützten Reverse-Proxy-Funktionen umfasst und eine automatische SSL-Zertifikatsverwaltung über Caddy bietet. - -> [!IMPORTANT] -> Caddy benötigt einen gültigen DNS-Namen, intern oder öffentlich, der auf Ihren Server zeigt, damit SSL-Zertifikate korrekt ausgestellt und erneuert werden können. - - ### Option 2: Ohne Caddy - - Wenn Sie Ihren eigenen Reverse-Proxy verwenden oder die Anwendung ohne Caddy betreiben möchten, nutzen Sie: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-caddy.yml - ``` - -> [!CAUTION] -> Wenn Sie die Anwendung ohne Caddy betreiben, verlieren Sie die integrierte sichere Veröffentlichung, einschließlich automatischer SSL-Zertifikate und des empfohlenen Reverse-Proxy-Setups. Wenn Sie diese Option wählen, müssen Sie selbst für eine sichere Veröffentlichung sorgen. - -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 - - # Wähle eine Zeitzone aus https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TIMEZONE=Europe/Berlin - - # WireGuard‑Status‑Caching‑Einstellungen - # Dies verbessert die Leistung, indem die Anzahl der Aufrufe des `wg`-Befehls reduziert und aktuelle Ergebnisse gespeichert werden. - # WIREGUARD_STATUS_CACHE_ENABLED=True - # - # Wie viele zwischengespeicherte WireGuard-Status-Snapshots beim Laden der Seite vorgeladen werden sollen. - # Dies ermöglicht es, dass Traffic-Diagramme bereits ausgefüllt angezeigt werden, anstatt leer zu beginnen. - # Verringern Sie diesen Wert, wenn sich die initiale Peer-Liste langsam anfühlt. - # 0 = Vorladen deaktivieren, 9 = Traffic-Diagramme vollständig ausfüllen. - # WIREGUARD_STATUS_CACHE_WEB_LOAD_PREVIOUS_COUNT=9 - # - # Wie oft (in Sekunden) der Cache aktualisiert werden soll. - # Erlaubte Werte: 30, 60, 150, 300. Standard: 60. - # WIREGUARD_STATUS_CACHE_REFRESH_INTERVAL=60 - - # Wenn Sie zusätzliche erlaubte Hosts benötigen, können Sie diese hier angeben. - # Die SERVER_ADDRESS wird immer erlaubt sein. - # Beispiel: EXTRA_ALLOWED_HOSTS=app1.beispiel.com,app2.beispiel.com:8443,app3.beispiel.com - #EXTRA_ALLOWED_HOSTS=app1.beispiel.com,app2.beispiel.com:8443,app3.beispiel.com - ``` - -4. **Docker Compose ausführen** - - Führen Sie den Docker Compose-Befehl aus, um Ihr Deployment zu starten: - - ```bash - docker compose up -d - ``` - - Öffnen Sie die Weboberfläche unter `https://yourserver.example.com`. Beim empfohlenen Deployment mit Caddy werden SSL-Zertifikate automatisch ausgestellt und erneuert. - -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. **In das Projektverzeichnis wechseln** - - ```bash - cd wireguard_webadmin - ``` - -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). +Dieses Projekt steht unter der MIT-Lizenz – siehe [LICENSE](../LICENSE) für Details. ## 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. +Beiträge sind willkommen und sehr geschätzt. Öffne gerne Issues oder Pull Requests auf [GitHub](https://github.com/eduardogsilva/wireguard_webadmin). diff --git a/docs/README.es.md b/docs/README.es.md index 7a86548..95954b2 100644 --- a/docs/README.es.md +++ b/docs/README.es.md @@ -7,214 +7,62 @@ ✨ 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*. +**Gestión de VPN self-hosted y control de acceso Zero Trust — todo en tu infraestructura.** -## Funcionalidades +Más que un panel de WireGuard: gestiona peers, reglas de firewall, DNS, redirección de puertos y publica aplicaciones internas con autenticación adecuada — sin depender de servicios de terceros. Funciona en cualquier máquina Linux con Docker. Gratuito, open source, nada sale de tu servidor. -- **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. -- **Plantillas de Enrutamiento por Peer**: Defina plantillas de enrutamiento reutilizables por instancia de WireGuard y aplíquelas a los pares, asegurando un comportamiento de enrutamiento consistente y predecible. -- **Cumplimiento de Rutas con Reglas de Firewall Automáticas**: Imponga políticas de enrutamiento generando automáticamente reglas de firewall que restrinjan los pares a las rutas explícitamente permitidas. +- ⚙️ **Gestionar** — Múltiples instancias WireGuard, gráficos de tráfico por peer, firewall, listas de bloqueo DNS, invitaciones VPN con código QR +- 🔒 **Proteger** — Gateway de aplicaciones Zero Trust con TOTP, ACL por IP y anti-fuerza-bruta (Altcha PoW) +- ⚡ **Automatizar** — Acceso programado por peer, plantillas de enrutamiento, enlaces de invitación con expiración, API REST v2 -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. +### 📖 [Documentación completa, guía de instalación y consejos en wireguard-webadmin.com](https://wireguard-webadmin.com/) + +--- + +## Instalación Rápida + +```bash +mkdir wireguard_webadmin && cd wireguard_webadmin +wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml +# edite .env con su SERVER_ADDRESS +docker compose up -d +``` + +> Para instrucciones detalladas, guía de actualización y consejos de configuración visite **[wireguard-webadmin.com](https://wireguard-webadmin.com/)**. + +--- + +## Capturas de Pantalla + +### Lista de Peers +Estado en tiempo real y gráficos de ancho de banda en vivo para cada peer en todas las instancias WireGuard. +![Lista de Peers](images/peer_list_dark.png) + +### Detalles del Peer +Historial de tráfico, último handshake, IPs permitidas y código QR — todo en un solo lugar. +![Detalles del Peer](images/peer_details.png) + +### Gateway de Aplicaciones Zero Trust +Publique apps internas como Proxmox o Grafana con autenticación TOTP por delante — sin abrir puertos. +![Gateway Zero Trust](images/zero_trust_app.png) + +### Gestión de Firewall +Reglas iptables por instancia, redirección de puertos y ACLs de salida gestionados desde la interfaz. +![Firewall](images/firewall.png) + +### Invitación VPN +Genere un enlace de invitación con código QR y archivo de configuración. El usuario lo escanea o importa directamente en su cliente WireGuard. +![Invitación VPN](images/vpn_invite.png) + +--- ## 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 compose correspondiente directamente en su directorio de trabajo. Este método garantiza que utilice la versión más reciente de la configuración. - - ### Opción 1: Con Caddy (Recomendado) - - Para el despliegue de producción recomendado con Caddy como *reverse proxy*, use: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml - ``` - - Esta es la forma recomendada de ejecutar la interfaz web de administración porque incluye todas las funciones compatibles del proxy inverso y proporciona gestión automática de certificados SSL mediante Caddy. - -> [!IMPORTANT] -> Caddy requiere un nombre DNS válido, interno o público, apuntando a su servidor para poder obtener y renovar correctamente los certificados SSL. - - ### Opción 2: Sin Caddy - - Si prefiere usar su propio proxy inverso o ejecutar la aplicación sin Caddy, use: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-caddy.yml - ``` - -> [!CAUTION] -> Ejecutar sin Caddy significa perder la experiencia integrada de publicación segura, incluidos los certificados SSL automáticos y la configuración recomendada de proxy inverso. Si elige esta opción, asegúrese de proporcionar su propia capa segura de exposición. - -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 - - # Elija una zona horaria de https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TIMEZONE=America/Sao_Paulo - - # Configuración de caché de estado de WireGuard - # Esto mejora el rendimiento al reducir el número de llamadas al comando `wg` y almacenar resultados recientes. - # WIREGUARD_STATUS_CACHE_ENABLED=True - # - # Cuántas instantáneas del estado de WireGuard almacenadas en caché deben precargarse al cargar la página. - # Esto permite que los gráficos de tráfico se muestren ya poblados en lugar de comenzar vacíos. - # Reduzca este valor si la lista inicial de pares parece lenta. - # 0 = desactivar precarga, 9 = completar totalmente los gráficos de tráfico. - # WIREGUARD_STATUS_CACHE_WEB_LOAD_PREVIOUS_COUNT=9 - # - # Con qué frecuencia (en segundos) se debe refrescar la caché. - # Valores permitidos: 30, 60, 150, 300. Predeterminado: 60. - # WIREGUARD_STATUS_CACHE_REFRESH_INTERVAL=60 - - # Si necesita hosts adicionales permitidos, puede especificarlos aquí. - # El SERVER_ADDRESS siempre estará permitido. - # Ejemplo: EXTRA_ALLOWED_HOSTS=app1.ejemplo.com,app2.ejemplo.com:8443,app3.ejemplo.com - #EXTRA_ALLOWED_HOSTS=app1.ejemplo.com,app2.ejemplo.com:8443,app3.ejemplo.com - ``` - - Sustituya `my_server_address` por la dirección real de su servidor. - -4. **Ejecute Docker Compose:** - - Ejecute el comando Docker Compose para iniciar su despliegue. - - ```bash - docker compose up -d - ``` - - Acceda a la interfaz web en `https://suserver.ejemplo.com`. Al usar el despliegue recomendado con Caddy, los certificados SSL se obtienen y renuevan automáticamente. - -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. **Vaya al Directorio del Proyecto:** - - Acceda al directorio `wireguard_webadmin`: - - ```bash - cd wireguard_webadmin - ``` - -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. +Las contribuciones son bienvenidas y muy apreciadas. No dude en abrir issues o pull requests en [GitHub](https://github.com/eduardogsilva/wireguard_webadmin). diff --git a/docs/README.fr.md b/docs/README.fr.md index b6344ce..45c87c6 100644 --- a/docs/README.fr.md +++ b/docs/README.fr.md @@ -1,4 +1,4 @@ -## 🌍 Lire ceci dans d’autres langues: +## 🌍 Lire ceci dans d'autres langues: - 🇬🇧 [English](../README.md) - 🇧🇷 [Português](README.pt-br.md) - 🇪🇸 [Español](README.es.md) @@ -7,194 +7,62 @@ ✨ 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. +**Gestion de VPN self-hosted et contrôle d'accès Zero Trust — entièrement sur votre infrastructure.** -## Fonctionnalités +Plus qu'un simple panneau WireGuard : gérez les pairs, les règles de pare-feu, le DNS, la redirection de ports et publiez des applications internes avec une authentification appropriée — sans dépendre de services tiers. Fonctionne sur n'importe quelle machine Linux avec Docker. Gratuit, open source, rien ne quitte votre serveur. -- **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. -- **Modèles de Routage par Peer**: Définissez des modèles de routage réutilisables par instance WireGuard et appliquez-les aux pairs, garantissant un comportement de routage cohérent et prévisible. -- **Application des Routes avec Règles de Firewall Automatiques**: Appliquez des politiques de routage en générant automatiquement des règles de pare-feu qui restreignent les pairs aux routes explicitement autorisées. +- ⚙️ **Gérer** — Plusieurs instances WireGuard, graphiques de trafic par pair, pare-feu, listes de blocage DNS, invitations VPN avec QR code +- 🔒 **Protéger** — Passerelle d'applications Zero Trust avec TOTP, ACL par IP et anti-force-brute (Altcha PoW) +- ⚡ **Automatiser** — Accès planifié par pair, modèles de routage, liens d'invitation avec expiration, API REST v2 -Ce projet vise à offrir une solution intuitive et conviviale pour l’administration de WireGuard, sans compromettre la puissance et la flexibilité du protocole. +### 📖 [Documentation complète, guide d'installation et conseils sur wireguard-webadmin.com](https://wireguard-webadmin.com/) + +--- + +## Installation Rapide + +```bash +mkdir wireguard_webadmin && cd wireguard_webadmin +wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml +# éditez .env avec votre SERVER_ADDRESS +docker compose up -d +``` + +> Pour des instructions détaillées, un guide de mise à jour et des conseils de configuration, visitez **[wireguard-webadmin.com](https://wireguard-webadmin.com/)**. + +--- + +## Captures d'écran + +### Liste des pairs +Statut en temps réel et graphiques de bande passante en direct pour chaque pair sur toutes les instances WireGuard. +![Liste des pairs](images/peer_list_dark.png) + +### Détails d'un pair +Historique du trafic, dernier handshake, IPs autorisées et QR code — le tout au même endroit. +![Détails d'un pair](images/peer_details.png) + +### Passerelle d'applications Zero Trust +Publiez des applications internes comme Proxmox ou Grafana avec une authentification TOTP devant — sans ouvrir de ports. +![Passerelle Zero Trust](images/zero_trust_app.png) + +### Gestion du pare-feu +Règles iptables par instance, redirection de ports et ACLs sortantes gérées depuis l'interface. +![Pare-feu](images/firewall.png) + +### Invitation VPN +Générez un lien d'invitation avec QR code et fichier de configuration. L'utilisateur le scanne ou l'importe directement dans son client WireGuard. +![Invitation VPN](images/vpn_invite.png) + +--- ## 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 télécharger le fichier compose approprié directement dans votre répertoire de travail. Cela vous garantit d’utiliser la version la plus récente de la configuration de déploiement. - - ### Option 1 : Avec Caddy (recommandé) - - Pour le déploiement de production recommandé avec Caddy comme proxy inverse, utilisez : - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml - ``` - - C’est la manière recommandée d’exécuter l’interface d’administration web, car elle inclut toutes les fonctionnalités prises en charge du proxy inverse et fournit une gestion automatique des certificats SSL via Caddy. - -> [!IMPORTANT] -> Caddy nécessite un nom DNS valide, interne ou public, pointant vers votre serveur afin de pouvoir obtenir et renouveler correctement les certificats SSL. - - ### Option 2 : Sans Caddy - - Si vous préférez utiliser votre propre proxy inverse ou exécuter l’application sans Caddy, utilisez : - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-caddy.yml - ``` - -> [!CAUTION] -> Exécuter l’application sans Caddy signifie perdre l’expérience intégrée de publication sécurisée, y compris les certificats SSL automatiques et la configuration de proxy inverse recommandée. Si vous choisissez cette option, assurez-vous de fournir votre propre couche d’exposition sécurisée. - -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 - - # Choisissez un fuseau horaire parmi https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TIMEZONE=Europe/Paris - - # Paramètres de mise en cache de l'état WireGuard - # Cela améliore les performances en réduisant le nombre d'appels à la commande `wg` et en stockant les résultats récents. - # WIREGUARD_STATUS_CACHE_ENABLED=True - # - # Combien d'instantanés de statut WireGuard mis en cache doivent être préchargés lors du chargement de la page. - # Cela permet d'afficher les graphiques de trafic déjà remplis au lieu de commencer vides. - # Diminuez cette valeur si la liste initiale des pairs semble lente. - # 0 = désactiver le préchargement, 9 = pré-remplir complètement les graphiques de trafic. - # WIREGUARD_STATUS_CACHE_WEB_LOAD_PREVIOUS_COUNT=9 - # - # À quelle fréquence (en secondes) le cache doit être rafraîchi. - # Valeurs autorisées : 30, 60, 150, 300. Par défaut : 60. - # WIREGUARD_STATUS_CACHE_REFRESH_INTERVAL=60 - - # Si vous avez besoin d'hôtes supplémentaires autorisés, vous pouvez les spécifier ici. - # Le SERVER_ADDRESS sera toujours autorisé. - # Exemple : EXTRA_ALLOWED_HOSTS=app1.exemple.com,app2.exemple.com:8443,app3.exemple.com - #EXTRA_ALLOWED_HOSTS=app1.exemple.com,app2.exemple.com:8443,app3.exemple.com - ``` - - Remplacez `my_server_address` par l’adresse réelle de votre serveur. - - 4. **Lancer Docker Compose** - - Exécutez la commande Docker Compose pour démarrer votre déploiement. - - ```bash - docker compose up -d - ``` - - Accédez à l’interface via `https://votreserveur.exemple.com`. Avec le déploiement recommandé utilisant Caddy, les certificats SSL sont obtenus et renouvelés automatiquement. - -Après ces étapes, WireGuard WebAdmin sera opérationnel. - -## Instructions de mise à jour - -Pour profiter des dernières fonctionnalités et correctifs: - - 1. **Allez dans le répertoire du projet** - - ```bash - cd wireguard_webadmin - ``` - -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. +Les contributions sont les bienvenues et très appréciées. N'hésitez pas à ouvrir des issues ou des pull requests sur [GitHub](https://github.com/eduardogsilva/wireguard_webadmin). diff --git a/docs/README.pt-br.md b/docs/README.pt-br.md index a0eb406..f289d38 100644 --- a/docs/README.pt-br.md +++ b/docs/README.pt-br.md @@ -7,214 +7,62 @@ ✨ 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*. +**Gerenciamento de VPN self-hosted e controle de acesso Zero Trust — tudo na sua infraestrutura.** -## Funcionalidades +Mais do que um painel WireGuard: gerencie peers, regras de firewall, DNS, redirecionamento de portas e publique aplicações internas com autenticação — sem depender de serviços de terceiros. Roda em qualquer máquina Linux com Docker. Gratuito, open source, nada sai do seu servidor. -- **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. -- **Modelos de Roteamento por Peer**: Defina modelos de roteamento reutilizáveis por instância do WireGuard e aplique-os aos peers, garantindo um comportamento de roteamento consistente e previsível. -- **Aplicação de Rota com Regras de Firewall Automáticas**: Imponha políticas de roteamento gerando automaticamente regras de firewall que restringem os peers às rotas explicitamente permitidas. +- ⚙️ **Gerenciar** — Múltiplas instâncias WireGuard, gráficos de tráfego por peer, firewall, listas de bloqueio DNS, convites VPN com QR code +- 🔒 **Proteger** — Gateway de aplicações Zero Trust com TOTP, ACL por IP e anti-força-bruta (Altcha PoW) +- ⚡ **Automatizar** — Acesso agendado por peer, templates de roteamento, links de convite com expiração, API REST v2 -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. +### 📖 [Documentação completa, guia de instalação e dicas em wireguard-webadmin.com](https://wireguard-webadmin.com/) + +--- + +## Instalação Rápida + +```bash +mkdir wireguard_webadmin && cd wireguard_webadmin +wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml +# edite o .env com seu SERVER_ADDRESS +docker compose up -d +``` + +> Para instruções detalhadas, guia de upgrade e dicas de configuração acesse **[wireguard-webadmin.com](https://wireguard-webadmin.com/)**. + +--- + +## Capturas de Tela + +### Lista de Peers +Status em tempo real e gráficos de banda ao vivo para cada peer em todas as instâncias WireGuard. +![Lista de Peers](images/peer_list_dark.png) + +### Detalhes do Peer +Histórico de tráfego, último handshake, IPs permitidos e QR code — tudo em um só lugar. +![Detalhes do Peer](images/peer_details.png) + +### Gateway de Aplicações Zero Trust +Publique apps internas como Proxmox ou Grafana com autenticação TOTP na frente — sem abrir portas. +![Gateway Zero Trust](images/zero_trust_app.png) + +### Gerenciamento de Firewall +Regras iptables por instância, redirecionamento de portas e ACLs de saída gerenciados pela interface. +![Firewall](images/firewall.png) + +### Convite VPN +Gere um convite compartilhável com QR code e arquivo de configuração. O usuário escaneia ou importa direto no cliente WireGuard. +![Convite VPN](images/vpn_invite.png) + +--- ## 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 compose 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. - - ### Opção 1: Com Caddy (Recomendado) - - Para a implantação recomendada em produção com Caddy como *reverse proxy*, use: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-caddy.yml - ``` - - Esta é a forma recomendada de executar a interface web de administração, pois inclui todos os recursos suportados de proxy reverso e oferece gerenciamento automático de certificados SSL através do Caddy. - -> [!IMPORTANT] -> O Caddy precisa de um nome DNS válido, interno ou público, apontando para o seu servidor para obter e renovar os certificados SSL corretamente. - - ### Opção 2: Sem Caddy - - Se você preferir usar seu próprio proxy reverso ou executar a aplicação sem o Caddy, use: - - ```bash - wget -O docker-compose.yml https://raw.githubusercontent.com/eduardogsilva/wireguard_webadmin/main/docker-compose-no-caddy.yml - ``` - -> [!CAUTION] -> Executar sem o Caddy significa perder a experiência integrada de publicação segura, incluindo certificados SSL automáticos e a configuração recomendada de proxy reverso. Se optar por esta opção, garanta sua própria camada segura de exposição. - -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 - - # Escolha um fuso horário em https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TIMEZONE=America/Sao_Paulo - - # Configurações de cache de status do WireGuard - # Isso melhora o desempenho reduzindo o número de chamadas ao comando `wg` e armazenando resultados recentes. - # WIREGUARD_STATUS_CACHE_ENABLED=True - # - # Quantos instantâneos (snapshots) do status do WireGuard em cache devem ser pré-carregados ao carregar a página. - # Isso permite que os gráficos de tráfego sejam exibidos já preenchidos em vez de começarem vazios. - # Diminua este valor se a lista inicial de peers parecer lenta. - # 0 = desativar pré-carregamento, 9 = preencher totalmente os gráficos de tráfego. - # WIREGUARD_STATUS_CACHE_WEB_LOAD_PREVIOUS_COUNT=9 - # - # Com que frequência (em segundos) o cache deve ser atualizado. - # Valores permitidos: 30, 60, 150, 300. Padrão: 60. - # WIREGUARD_STATUS_CACHE_REFRESH_INTERVAL=60 - - # Se você precisar de hosts adicionais permitidos, pode especificá-los aqui. - # O SERVER_ADDRESS sempre será permitido. - # Exemplo: EXTRA_ALLOWED_HOSTS=app1.exemplo.com,app2.exemplo.com:8443,app3.exemplo.com - #EXTRA_ALLOWED_HOSTS=app1.exemplo.com,app2.exemplo.com:8443,app3.exemplo.com - ``` - - Substitua `my_server_address` pelo endereço real do seu servidor. - - 4. **Execute o Docker Compose:** - - Execute o comando Docker Compose para iniciar sua implantação. - - ```bash - docker compose up -d - ``` - - Acesse a interface web em `https://seuservidor.exemplo.com`. Ao usar a implantação recomendada com Caddy, os certificados SSL são obtidos e renovados automaticamente. - -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. **Navegue até o Diretório do Projeto:** - - Navegue até o diretório `wireguard_webadmin`: - - ```bash - cd wireguard_webadmin - ``` - -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. +Contribuições são bem-vindas e muito apreciadas. Sinta-se à vontade para abrir issues ou pull requests no [GitHub](https://github.com/eduardogsilva/wireguard_webadmin).