fix: nostr-vpn service — set HOME, create dirs, remove strict sandbox
nvpn binary writes to $HOME/.config/nvpn. Set HOME to data dir, create runtime dirs in ExecStartPre, remove overly restrictive ProtectSystem/ProtectHome that blocked the binary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
314497f94d
commit
e10893e3c1
@ -6,7 +6,9 @@ Wants=network-online.target
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=root
|
User=root
|
||||||
|
Environment=HOME=/var/lib/archipelago/nostr-vpn
|
||||||
EnvironmentFile=-/var/lib/archipelago/nostr-vpn/env
|
EnvironmentFile=-/var/lib/archipelago/nostr-vpn/env
|
||||||
|
ExecStartPre=+/bin/bash -c 'mkdir -p /run/nostr-vpn /var/lib/archipelago/nostr-vpn/.config/nvpn'
|
||||||
ExecStartPre=/bin/bash -c 'test -f /var/lib/archipelago/nostr-vpn/env || { echo "NostrVPN not configured — waiting for onboarding"; exit 1; }'
|
ExecStartPre=/bin/bash -c 'test -f /var/lib/archipelago/nostr-vpn/env || { echo "NostrVPN not configured — waiting for onboarding"; exit 1; }'
|
||||||
ExecStart=/usr/local/bin/nvpn daemon
|
ExecStart=/usr/local/bin/nvpn daemon
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
@ -14,18 +16,9 @@ RestartSec=10
|
|||||||
TimeoutStartSec=30
|
TimeoutStartSec=30
|
||||||
TimeoutStopSec=10
|
TimeoutStopSec=10
|
||||||
|
|
||||||
# Networking capabilities (required for TUN/WireGuard)
|
# Security — runs as root for TUN/WireGuard access
|
||||||
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW
|
ReadWritePaths=/var/lib/archipelago/nostr-vpn /run/nostr-vpn
|
||||||
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE
|
|
||||||
|
|
||||||
# Security hardening
|
|
||||||
NoNewPrivileges=yes
|
|
||||||
ProtectSystem=strict
|
|
||||||
ReadWritePaths=/var/lib/archipelago/nostr-vpn /run/nostr-vpn /dev/net/tun
|
|
||||||
ProtectHome=yes
|
|
||||||
PrivateTmp=yes
|
|
||||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
|
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
|
||||||
RestrictRealtime=yes
|
|
||||||
|
|
||||||
# Resource limits
|
# Resource limits
|
||||||
MemoryMax=256M
|
MemoryMax=256M
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user