# Quadlet unit: Gluetun VPN tunnel (rootless, boot-persistent). # # Install path on dankclaw: ~/.config/containers/systemd/gluetun.container # Unit name: gluetun.service (container name: gluetun) # # Creates the WireGuard tunnel to ProtonVPN (US-WA). SearXNG reuses this # container's network namespace (see searxng.container), so its outbound search # traffic exits here. The WireGuard credentials live in /opt/searxng/.env # (mode 0600); this file holds no secrets. See serverAppConfigs-docs/Dankclaw/Gluetun.md. [Unit] Description=Gluetun VPN tunnel container Wants=searxng-network.service After=searxng-network.service network.target [Container] ContainerName=gluetun Network=searxng.network Image=docker.io/qmcgaw/gluetun:latest AddCapability=NET_ADMIN AddDevice=/dev/net/tun:/dev/net/tun Environment=VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER} Environment=VPN_TYPE=${VPN_TYPE} Environment=WIREGUARD_PRIVATE_KEY=${WIREGUARD_PRIVATE_KEY} Environment=WIREGUARD_ADDRESSES=${WIREGUARD_ADDRESSES} Environment=WIREGUARD_PUBLIC_KEY=${WIREGUARD_PUBLIC_KEY} Environment=WIREGUARD_ENDPOINT_IP=${WIREGUARD_ENDPOINT_IP} Environment=WIREGUARD_ENDPOINT_PORT=${WIREGUARD_ENDPOINT_PORT} Environment=WIREGUARD_ALLOWED_IPS=${WIREGUARD_ALLOWED_IPS} Environment=WIREGUARD_PERSISTENT_KEEPALIVE_INTERVAL=${WIREGUARD_PERSISTENT_KEEPALIVE_INTERVAL} PublishPort=8081:8080 PublishPort=8082:8085 [Service] EnvironmentFile=/opt/searxng/.env TimeoutStartSec=900 Restart=always [Install] WantedBy=default.target