2026-04-07 14:40:33 +01:00
|
|
|
[Unit]
|
2026-04-07 14:49:34 +01:00
|
|
|
Description=Nostr VPN - Mesh VPN with Nostr identity
|
|
|
|
|
After=network-online.target tor.service archipelago.service
|
2026-04-07 14:40:33 +01:00
|
|
|
Wants=network-online.target
|
2026-04-09 20:42:09 +02:00
|
|
|
StartLimitIntervalSec=300
|
|
|
|
|
StartLimitBurst=10
|
2026-04-07 14:40:33 +01:00
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
Type=simple
|
|
|
|
|
User=root
|
2026-04-07 15:57:38 +01:00
|
|
|
Environment=HOME=/var/lib/archipelago/nostr-vpn
|
2026-04-07 14:40:33 +01:00
|
|
|
EnvironmentFile=-/var/lib/archipelago/nostr-vpn/env
|
2026-04-07 15:57:38 +01:00
|
|
|
ExecStartPre=+/bin/bash -c 'mkdir -p /run/nostr-vpn /var/lib/archipelago/nostr-vpn/.config/nvpn'
|
2026-04-07 14:49:34 +01:00
|
|
|
ExecStartPre=/bin/bash -c 'test -f /var/lib/archipelago/nostr-vpn/env || { echo "NostrVPN not configured — waiting for onboarding"; exit 1; }'
|
2026-04-07 14:40:33 +01:00
|
|
|
ExecStart=/usr/local/bin/nvpn daemon
|
|
|
|
|
Restart=on-failure
|
2026-04-08 19:04:53 +02:00
|
|
|
RestartSec=30
|
2026-04-07 14:49:34 +01:00
|
|
|
TimeoutStartSec=30
|
2026-04-07 14:40:33 +01:00
|
|
|
TimeoutStopSec=10
|
|
|
|
|
|
2026-04-07 22:05:08 +01:00
|
|
|
# No sandbox — runs as root for TUN/WireGuard, needs unrestricted filesystem
|
2026-04-07 14:49:34 +01:00
|
|
|
|
|
|
|
|
# Resource limits
|
|
|
|
|
MemoryMax=256M
|
|
|
|
|
TasksMax=64
|
|
|
|
|
|
2026-04-07 14:40:33 +01:00
|
|
|
# Logging
|
|
|
|
|
StandardOutput=journal
|
|
|
|
|
StandardError=journal
|
|
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
|
WantedBy=multi-user.target
|