« Wireguard VPN » : différence entre les versions
De EC_Wiki
Autres actions
Page créée avec « # 🧱 WireGuard : fichier wg0.conf déplacé **Contexte :** backend Python plante sur `/wireguard/` **Cause :** fichier `wg0.conf` placé dans `/etc/wireguard/peers/` **Solution :** créer un symlink ```bash sudo ln -s /etc/wireguard/peers/wg0.conf /etc/wireguard/wg0.conf » |
Aucun résumé des modifications |
||
| Ligne 1 : | Ligne 1 : | ||
==== Guide complet clé-en-main pour avoir WireTunnel fonctionnel sur Debian/Ubuntu avec venv Python propre, Gunicorn et Nginx, sans conflitsni erreurs. ==== | |||
=== 1️⃣ Arrêter et nettoyer l’ancien service === | |||
sudo systemctl stop wiretunnel | |||
sudo systemctl disable wiretunnel | |||
sudo killall gunicorn | |||
Supprime ou renomme l’ancien venv : | |||
cd /var/www/wiretunnel | |||
mv venv venv_old | |||
=== 2️⃣ Créer un venv Python propre === | |||
python3.11 -m venv venv | |||
source venv/bin/activate | |||
pip install --upgrade pip setuptools wheel | |||
=== 3️⃣ Installer les dépendances Python nécessaires === | |||
Si tu as un requirements.txt fiable : | |||
pip install -r requirements.txt | |||
Sinon, installe directement les paquets essentiels : | |||
pip install flask gunicorn python-dotenv qrcode pillow requests | |||
=== 4️⃣ Vérifier que ton app.py est correct === | |||
Assure-toi que l’ordre des blueprints et routes est comme ceci : | |||
from flask import Flask, Blueprint, render_template, request, redirect, url_for, session | |||
# Création du blueprint | |||
wireguard_bp = Blueprint("wiretunnel", __name__, | |||
template_folder="templates", | |||
static_folder="static", | |||
static_url_path="/static") | |||
# Toutes les routes ici | |||
@wireguard_bp.route("/") | |||
def index(): | |||
return redirect(url_for("wiretunnel.login")) | |||
@wireguard_bp.route("/login", methods=["GET", "POST"]) | |||
def login(): | |||
return "Page login" | |||
# Enregistrer le blueprint seulement à la fin | |||
app = Flask(__name__, | |||
template_folder="templates", | |||
static_folder="static") | |||
app.secret_key = "change_this_secret" | |||
app.register_blueprint(wireguard_bp) | |||
if __name__ == "__main__": | |||
app.run(host="127.0.0.1", port=5051) | |||
Tout @wiretunnel_bp.route doit être défini avant app.register_blueprint. | |||
=== 5️⃣ Tester Gunicorn manuellement === | |||
cd /var/www/wiretunnel | |||
source venv/bin/activate | |||
gunicorn app:app --bind 127.0.0.1:5051 | |||
Vérifie avec : | |||
curl http://127.0.0.1:5051/wiretunnel/ | |||
Tu devrais voir soit la redirection vers /login, soit la page “Interface WireTunnel OK”. | |||
=== 6️⃣ Créer un service systemd propre === | |||
Crée ou modifie /etc/systemd/system/wiretunnel.service : | |||
sudo nano /etc/systemd/system/wiretunnel.service | |||
[Unit] | |||
Description=WireTunnel Web Interface | |||
After=network.target | |||
[Service] | |||
User=www-data | |||
Group=www-data | |||
WorkingDirectory=/var/www/wiretunnel | |||
Environment="PATH=/var/www/wiretunnel/venv/bin" | |||
ExecStart=/var/www/wiretunnel/venv/bin/gunicorn app:app --bind 127.0.0.1:5051 --workers 3 --timeout 120 | |||
Restart=on-failure | |||
[Install] | |||
WantedBy=multi-user.target | |||
=== 7️⃣ Activer et démarrer le service === | |||
sudo systemctl daemon-reload | |||
sudo systemctl enable wiretunnel | |||
sudo systemctl start wiretunnel | |||
sudo systemctl status wiretunnel --no-pager -l | |||
=== 8️⃣ Configurer Nginx pour le reverse proxy === | |||
Dans /etc/nginx/sites-available/wiretunnel.conf : | |||
server { | |||
listen 443 ssl; | |||
server_name 192.168.30.11; | |||
ssl_certificate /etc/ssl/certs/euro-selfsigned.crt; | |||
ssl_certificate_key /etc/ssl/private/euro-selfsigned.key; | |||
location /wiretunnel/ { | |||
proxy_pass http://127.0.0.1:5051/wiretunnel/; | |||
proxy_http_version 1.1; | |||
proxy_set_header Host $host; | |||
proxy_set_header X-Real-IP $remote_addr; | |||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
proxy_set_header X-Forwarded-Proto $scheme; | |||
proxy_set_header Upgrade $http_upgrade; | |||
proxy_set_header Connection "upgrade"; | |||
proxy_redirect off; | |||
proxy_cookie_path / "/wiretunnel/"; | |||
proxy_read_timeout 900s; | |||
proxy_send_timeout 900s; | |||
} | |||
} | |||
Test et recharge Nginx : | |||
sudo nginx -t | |||
sudo systemctl reload nginx | |||
=== 9️⃣ Vérification finale === | |||
Test Gunicorn : | |||
curl http://127.0.0.1:5051/wiretunnel/ | |||
Test Nginx : | |||
https://192.168.30.11/wiretunnel/ | |||
On devrait voir la redirection vers /login ou la page WireTunnel. | |||
# 🧱 WireGuard : fichier wg0.conf déplacé | # 🧱 WireGuard : fichier wg0.conf déplacé | ||
Dernière version du 29 octobre 2025 à 18:48
Guide complet clé-en-main pour avoir WireTunnel fonctionnel sur Debian/Ubuntu avec venv Python propre, Gunicorn et Nginx, sans conflitsni erreurs. modifier
1️⃣ Arrêter et nettoyer l’ancien service modifier
sudo systemctl stop wiretunnel sudo systemctl disable wiretunnel sudo killall gunicorn
Supprime ou renomme l’ancien venv :
cd /var/www/wiretunnel mv venv venv_old
2️⃣ Créer un venv Python propre modifier
python3.11 -m venv venv source venv/bin/activate pip install --upgrade pip setuptools wheel
3️⃣ Installer les dépendances Python nécessaires modifier
Si tu as un requirements.txt fiable :
pip install -r requirements.txt
Sinon, installe directement les paquets essentiels :
pip install flask gunicorn python-dotenv qrcode pillow requests
4️⃣ Vérifier que ton app.py est correct modifier
Assure-toi que l’ordre des blueprints et routes est comme ceci :
from flask import Flask, Blueprint, render_template, request, redirect, url_for, session
# Création du blueprint
wireguard_bp = Blueprint("wiretunnel", __name__,
template_folder="templates",
static_folder="static",
static_url_path="/static")
# Toutes les routes ici
@wireguard_bp.route("/")
def index():
return redirect(url_for("wiretunnel.login"))
@wireguard_bp.route("/login", methods=["GET", "POST"])
def login():
return "Page login"
# Enregistrer le blueprint seulement à la fin
app = Flask(__name__,
template_folder="templates",
static_folder="static")
app.secret_key = "change_this_secret"
app.register_blueprint(wireguard_bp)
if __name__ == "__main__":
app.run(host="127.0.0.1", port=5051)
Tout @wiretunnel_bp.route doit être défini avant app.register_blueprint.
5️⃣ Tester Gunicorn manuellement modifier
cd /var/www/wiretunnel source venv/bin/activate gunicorn app:app --bind 127.0.0.1:5051
Vérifie avec :
curl http://127.0.0.1:5051/wiretunnel/
Tu devrais voir soit la redirection vers /login, soit la page “Interface WireTunnel OK”.
6️⃣ Créer un service systemd propre modifier
Crée ou modifie /etc/systemd/system/wiretunnel.service :
sudo nano /etc/systemd/system/wiretunnel.service
[Unit] Description=WireTunnel Web Interface After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/wiretunnel Environment="PATH=/var/www/wiretunnel/venv/bin" ExecStart=/var/www/wiretunnel/venv/bin/gunicorn app:app --bind 127.0.0.1:5051 --workers 3 --timeout 120 Restart=on-failure [Install] WantedBy=multi-user.target
7️⃣ Activer et démarrer le service modifier
sudo systemctl daemon-reload sudo systemctl enable wiretunnel sudo systemctl start wiretunnel sudo systemctl status wiretunnel --no-pager -l
8️⃣ Configurer Nginx pour le reverse proxy modifier
Dans /etc/nginx/sites-available/wiretunnel.conf :
server {
listen 443 ssl;
server_name 192.168.30.11;
ssl_certificate /etc/ssl/certs/euro-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/euro-selfsigned.key;
location /wiretunnel/ {
proxy_pass http://127.0.0.1:5051/wiretunnel/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_cookie_path / "/wiretunnel/";
proxy_read_timeout 900s;
proxy_send_timeout 900s;
}
}
Test et recharge Nginx :
sudo nginx -t sudo systemctl reload nginx
9️⃣ Vérification finale modifier
Test Gunicorn :
curl http://127.0.0.1:5051/wiretunnel/
Test Nginx :
https://192.168.30.11/wiretunnel/
On devrait voir la redirection vers /login ou la page WireTunnel.
- 🧱 WireGuard : fichier wg0.conf déplacé
- Contexte :** backend Python plante sur `/wireguard/`
- Cause :** fichier `wg0.conf` placé dans `/etc/wireguard/peers/`
- Solution :** créer un symlink
```bash sudo ln -s /etc/wireguard/peers/wg0.conf /etc/wireguard/wg0.conf