- Reorganisation menu admin en 2 rubriques (General / Evenement) - Destinations deplace dans Evenement - Nouveau panneau Videos : upload par situation (montage, depannage, bourrage, rechargement) - Nouveau panneau Surprise : photo/video affichee ~1s avant capture pour provoquer sourire - Toggle rembobinage ruban Mitsubishi (StpiDecklist) pour economiser le ruban sur petits formats - Historique email cloisonne par evenement - Memoire projet consolidee dans memoire.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.7 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| booth-vpn-fix | Procédure urgente pour rétablir le tunnel WireGuard sur la Surface (booth terrain) et installer un watchdog |
|
Problème
Le booth (Surface) est sur un WiFi externe, le tunnel WireGuard ne se connecte pas même après reboot. Dernier handshake : 6+ jours. Aucun accès SSH ni VPN.
Why: Le service wg-quick@wg0 n'est peut-être pas enabled au boot, ou l'Endpoint dans la config WG pointe vers une IP locale (192.168.111.x) au lieu de l'IP publique.
Infos serveur WG (LXC 111)
- IP LXC : 192.168.111.211
- Port WG : 51820 (UDP) — écoute OK
- Clé publique serveur :
g3s7Gh1Er+LIEI/W91HAVDNIo+gsk/KiajdtoDUQRVo= - Le port 51820 est redirigé depuis la box vers le LXC
Étapes à faire sur la Surface (SSH ou clavier physique)
1. Diagnostic
sudo systemctl status wg-quick@wg0
sudo wg show
cat /etc/wireguard/wg0.conf
2. Vérifier l'Endpoint
Dans /etc/wireguard/wg0.conf, le [Peer] doit avoir :
Endpoint = <IP_PUBLIQUE_MAISON>:51820
PAS une IP locale type 192.168.111.x — ça ne marche que depuis le LAN.
Pour trouver l'IP publique depuis le PC fixe :
curl -s ifconfig.me
3. Activer au boot + relancer
sudo systemctl enable wg-quick@wg0
sudo systemctl restart wg-quick@wg0
sudo wg show
Vérifier que le handshake se fait (latest handshake < 1 minute).
4. Installer le watchdog WG (une fois le tunnel rétabli)
Créer /usr/local/bin/wg-watchdog.sh :
#!/bin/bash
IFACE=wg0
MAX_AGE=180 # 3 minutes sans handshake = relance
latest=$(sudo wg show $IFACE latest-handshakes 2>/dev/null | awk '{print $2}')
if [ -z "$latest" ] || [ "$latest" = "0" ]; then
systemctl restart wg-quick@$IFACE
exit 0
fi
now=$(date +%s)
age=$((now - latest))
if [ $age -gt $MAX_AGE ]; then
logger "wg-watchdog: handshake age ${age}s > ${MAX_AGE}s, restarting $IFACE"
systemctl restart wg-quick@$IFACE
fi
sudo chmod +x /usr/local/bin/wg-watchdog.sh
echo "* * * * * root /usr/local/bin/wg-watchdog.sh" | sudo tee /etc/cron.d/wg-watchdog
5. Installer reverse SSH en fallback
sudo apt install -y autossh
Créer /etc/systemd/system/autossh-tunnel.service :
[Unit]
Description=Reverse SSH tunnel fallback
After=network-online.target
Wants=network-online.target
[Service]
User=jules
ExecStart=/usr/bin/autossh -M 0 -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure yes" -R 2222:localhost:22 root@192.168.111.211
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
sudo systemctl enable autossh-tunnel
sudo systemctl start autossh-tunnel
Ensuite depuis le LXC 111 : ssh -p 2222 jules@localhost pour joindre la Surface même si WG est mort.
Prérequis : la clé SSH de jules@surface doit être dans authorized_keys de root@192.168.111.211 (LXC).
6. Déployer les dernières modifs
Une fois le tunnel rétabli :
cd /home/jules/photobooth && git pull && sudo systemctl restart photobooth
Commits non déployés sur Surface :
- Flash blanc capture + printer toast CSS + admin galerie + compteur copies
- Cache versions bump
Changements faits sur LXC 111 (cette session)
- Landing page vitrine complète (tarifs, formulaire résa, calendrier dispo)
- Endpoint
/api/contact: crée événement + email admin (pas client) - Endpoint
/api/contact/valider/{id}: valide résa + envoie email client - Endpoint
/api/disponibilites: dates occupées pour calendrier - ZIP streaming (fix 500 sur gros ZIP)
- Barre progression téléchargement ZIP
- Admin panel : section "Demandes en attente" avec bouton Valider