3.8 KiB
gluetun-pia-wireguard-rotator
Sidecar die dagelijks (en bij container-start) een willekeurige PIA WireGuard-region kiest via pia-wg-config, wg0.conf op het gedeelde gluetun-volume schrijft, en de gluetun-container herstart.
Vereisten
- Gluetun met
VPN_SERVICE_PROVIDER=customenVPN_TYPE=wireguard - Gedeeld volume met gluetun (bijv.
/var/dockers/m3u-filter-pia:/gluetunop gluetun,/configop de rotator) - Docker socket (alleen voor
docker restartvan de gluetun-container) - Actief PIA-abonnement
Environment variables
Required
| Variable | Description |
|---|---|
PIA_USER |
PIA-gebruikersnaam |
PIA_PASS |
PIA-wachtwoord |
PIA_REGIONS |
CSV (netherlands,france,belgium) of JSON-array (["netherlands","france"]) |
Region-codes moeten overeenkomen met pia-wg-config (niet de OpenVPN-namen uit Gluetun's ingebouwde PIA-provider).
Lijst opvragen:
docker run --rm --entrypoint pia-wg-config bramkel/gluetun-pia-wireguard-rotator:latest regions
Optional
| Variable | Default | Description |
|---|---|---|
GLUETUN_CONTAINER |
m3u-filter-vpn |
Container name/id om te herstarten |
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) |
TZ |
Europe/Brussels |
Tijdzone voor scheduling |
Output
wireguard/wg0.confop het gedeelde volume — Gluetun leest dit als/gluetun/wireguard/wg0.confen dit overschrijftWIREGUARD_*environment variablesrotator-state.json— laatste gekozen region en timestamp
Compose-integratie
Zie docker-compose.example.yml voor een volledig voorbeeld met m3u-filter-vpn, m3u-editor en xtream-proxy.
Nieuwe service toevoegen
gluetun-pia-wireguard-rotator:
image: bramkel/gluetun-pia-wireguard-rotator:latest
container_name: gluetun-pia-wireguard-rotator
restart: unless-stopped
environment:
- TZ=Europe/Brussels
- PIA_USER=${PIA_USER}
- PIA_PASS=${PIA_PASSWORD}
- PIA_REGIONS=netherlands,france,belgium
- GLUETUN_CONTAINER=m3u-filter-vpn
- ROTATE_AT=03:00
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /var/dockers/m3u-filter-pia:/config
depends_on:
- m3u-filter-vpn
Zet PIA_USER en PIA_PASSWORD in een host-.env (niet inline in compose).
Gluetun opschonen (aanbevolen na eerste succesvolle rotatie)
Zodra wg0.conf bestaat, heeft het bestand voorrang op env-vars. Verwijder uit m3u-filter-vpn om verwarring te voorkomen:
WIREGUARD_ENDPOINT_IPWIREGUARD_PUBLIC_KEYWIREGUARD_PRIVATE_KEYWIREGUARD_ADDRESSES
Behoud minimaal:
environment:
- VPN_SERVICE_PROVIDER=custom
- VPN_TYPE=wireguard
Optioneel host-.env-keys (WIREGUARD_*) opruimen als die niet meer gebruikt worden.
Deploy
- Push/build image (
Dockers/gluetun-pia-wireguard-rotator/**triggert Gitea CI →bramkel/gluetun-pia-wireguard-rotator:latest) docker compose up -d gluetun-pia-wireguard-rotator- Controleer logs:
docker logs gluetun-pia-wireguard-rotatorendocker logs m3u-filter-vpn
Gedrag
- Bij start: direct roteren (nieuwe config + gluetun restart)
- Daarna: elke dag om
ROTATE_ATopnieuw - Willekeurige region uit
PIA_REGIONS
Let op: docker restart op gluetun veroorzaakt kort VPN-verlies voor alle containers met network_mode: service:m3u-filter-vpn.
Security
- De Docker socket geeft de rotator rechten om containers te herstarten; mount read-only waar mogelijk
wg0.confbevat private keys (chmod 600)- Bewaar PIA-credentials in
.env, niet in version control