pinwheel: Add work-vpn in work module (openvpn)

This commit is contained in:
Alexander Heldt
2023-09-30 18:09:08 +02:00
parent ff473fa392
commit 79f694d064
6 changed files with 71 additions and 1 deletions

View File

@@ -23,6 +23,7 @@
./modules/syncthing
./modules/firefox
./modules/mullvad
./modules/openvpn
./modules/calibre
./modules/go
./modules/nix
@@ -122,6 +123,8 @@
}];
};
mod.openvpn.enable = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave

View File

@@ -0,0 +1,22 @@
{ pkgs, lib, config, ... }:
let
enabled = config.mod.openvpn.enable;
in
{
options = {
mod.openvpn = {
enable = lib.mkEnableOption "add openvpn related packages";
};
};
config = lib.mkIf enabled {
home-manager.users.alex = {
home.packages = [
pkgs.openvpn
pkgs.update-systemd-resolved
];
};
services.resolved.enable = true;
};
}

View File

@@ -1,4 +1,26 @@
{ ... }:
{ pkgs, lib, config, ... }:
let
openvpnEnabled = config.mod.openvpn.enable;
work-vpn = let
ovpnconfig = config.age.secrets.work-ovpn.path;
userpass = config.age.secrets.work-ovpn-userpass.path;
in
pkgs.writeShellApplication {
name = "work-vpn";
text = ''
sudo \
${pkgs.openvpn}/bin/openvpn \
--script-security 2 \
--up ${pkgs.update-systemd-resolved}/libexec/openvpn/update-systemd-resolved \
--up-restart \
--down ${pkgs.update-systemd-resolved}/libexec/openvpn/update-systemd-resolved \
--down-pre \
--config ${ovpnconfig} \
--auth-user-pass ${userpass}
'';
};
in
{
home-manager.users.alex = {
programs.git = {
@@ -13,6 +35,8 @@
programs.go = {
goPrivate = [ "gitlab.com/zebware/*" ];
};
home.packages = lib.mkIf openvpnEnabled [ work-vpn ];
};
age.secrets = {
@@ -22,5 +46,13 @@
owner = "alex";
group = "users";
};
"work-ovpn" = lib.mkIf openvpnEnabled {
file = ../../../../secrets/pinwheel/work-ovpn.age;
};
"work-ovpn-userpass" = lib.mkIf openvpnEnabled {
file = ../../../../secrets/pinwheel/work-ovpn-userpass.age;
};
};
}