at 21.11-pre 1.1 kB view raw
1{ config, lib, pkgs, ... }: 2let 3 cfg = config.services.mullvad-vpn; 4in 5with lib; 6{ 7 options.services.mullvad-vpn.enable = mkOption { 8 type = types.bool; 9 default = false; 10 description = '' 11 This option enables Mullvad VPN daemon. 12 ''; 13 }; 14 15 config = mkIf cfg.enable { 16 boot.kernelModules = [ "tun" ]; 17 18 # mullvad-daemon writes to /etc/iproute2/rt_tables 19 networking.iproute2.enable = true; 20 21 systemd.services.mullvad-daemon = { 22 description = "Mullvad VPN daemon"; 23 wantedBy = [ "multi-user.target" ]; 24 wants = [ "network.target" ]; 25 after = [ 26 "network-online.target" 27 "NetworkManager.service" 28 "systemd-resolved.service" 29 ]; 30 path = [ 31 pkgs.iproute2 32 # Needed for ping 33 "/run/wrappers" 34 ]; 35 startLimitBurst = 5; 36 startLimitIntervalSec = 20; 37 serviceConfig = { 38 ExecStart = "${pkgs.mullvad-vpn}/bin/mullvad-daemon -v --disable-stdout-timestamps"; 39 Restart = "always"; 40 RestartSec = 1; 41 }; 42 }; 43 }; 44 45 meta.maintainers = [ maintainers.xfix ]; 46}