restart containers after rotation
Build and Push Docker Images / build-and-push (push) Successful in 23s

This commit is contained in:
2026-06-04 18:39:34 +02:00
parent 2b25780f3e
commit 34ee842d34
2 changed files with 52 additions and 17 deletions
@@ -1,12 +1,12 @@
# gluetun-pia-wireguard-rotator
Sidecar die dagelijks (en bij container-start) een willekeurige PIA WireGuard-region kiest via [pia-wg-config](https://github.com/kylegrantlucas/pia-wg-config), `wg0.conf` op het gedeelde gluetun-volume schrijft, en de gluetun-container herstart.
Sidecar die dagelijks (en bij container-start) een willekeurige PIA WireGuard-region kiest via [pia-wg-config](https://github.com/kylegrantlucas/pia-wg-config), `wg0.conf` op het gedeelde gluetun-volume schrijft, en een configureerbare lijst containers herstart.
## Vereisten
- Gluetun met `VPN_SERVICE_PROVIDER=custom` en `VPN_TYPE=wireguard`
- Gedeeld volume met gluetun (bijv. `/var/dockers/m3u-filter-pia:/gluetun` op gluetun, `/config` op de rotator)
- Docker socket (alleen voor `docker restart` van de gluetun-container)
- Docker socket (voor `docker restart` van gluetun en eventuele sidecar-containers)
- Actief PIA-abonnement
## Environment variables
@@ -31,7 +31,8 @@ docker run --rm --entrypoint pia-wg-config bramkel/gluetun-pia-wireguard-rotator
| Variable | Default | Description |
|----------|---------|-------------|
| `GLUETUN_CONTAINER` | `m3u-filter-vpn` | Container name/id om te herstarten |
| `RESTART_CONTAINERS` | — | CSV of JSON-array met containers om te herstarten, **in volgorde** (gluetun eerst, daarna sidecars). Voorbeeld: `m3u-filter-vpn,m3u-editor,xtream-proxy` |
| `GLUETUN_CONTAINER` | `m3u-filter-vpn` | Alleen gebruikt als `RESTART_CONTAINERS` leeg is |
| `WG_CONFIG_PATH` | `/config/wireguard/wg0.conf` | Pad waar `wg0.conf` wordt geschreven |
| `ROTATOR_STATE_PATH` | `/config/rotator-state.json` | Laatste rotatie-metadata |
| `ROTATE_AT` | `03:00` | Dagelijks rotatietijdstip (`HH:MM`, in `TZ`) |
@@ -40,7 +41,7 @@ docker run --rm --entrypoint pia-wg-config bramkel/gluetun-pia-wireguard-rotator
## Output
- `wireguard/wg0.conf` op het gedeelde volume — Gluetun leest dit als `/gluetun/wireguard/wg0.conf` en dit **overschrijft** `WIREGUARD_*` environment variables
- `rotator-state.json` — laatste gekozen region en timestamp
- `rotator-state.json` — laatste gekozen region, timestamp en herstartte containers
## Compose-integratie
@@ -58,7 +59,7 @@ Zie [`docker-compose.example.yml`](docker-compose.example.yml) voor een volledig
- PIA_USER=${PIA_USER}
- PIA_PASS=${PIA_PASSWORD}
- PIA_REGIONS=netherlands,france,belgium
- GLUETUN_CONTAINER=m3u-filter-vpn
- RESTART_CONTAINERS=m3u-filter-vpn,m3u-editor,xtream-proxy
- ROTATE_AT=03:00
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
@@ -96,11 +97,14 @@ Optioneel host-`.env`-keys (`WIREGUARD_*`) opruimen als die niet meer gebruikt w
## Gedrag
1. Bij start: direct roteren (nieuwe config + gluetun restart)
1. Bij start: direct roteren (nieuwe config + container-restarts)
2. Daarna: elke dag om `ROTATE_AT` opnieuw
3. Willekeurige region uit `PIA_REGIONS`
4. Containers uit `RESTART_CONTAINERS` worden één voor één herstart in de opgegeven volgorde
**Let op:** `docker restart` op gluetun veroorzaakt kort VPN-verlies voor alle containers met `network_mode: service:m3u-filter-vpn`.
**Let op:** zet gluetun altijd als eerste in `RESTART_CONTAINERS`. Sidecars met `network_mode: service:...` herstarten pas daarna, zodat ze opnieuw aan de VPN-namespace koppelen.
**Let op:** elke rotatie veroorzaakt kort downtime voor alle VPN-afhankelijke services.
## Security