feat(MOMO): setup syncthing and vaultwarden
This commit is contained in:
parent
7968a18271
commit
6ca4dd9e57
33 changed files with 419 additions and 149 deletions
|
|
@ -1,10 +1,22 @@
|
|||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.bchmnn = {
|
||||
network = {
|
||||
nm = {
|
||||
enable = lib.mkEnableOption "nm";
|
||||
};
|
||||
resolved = {
|
||||
enable = lib.mkEnableOption "resolved";
|
||||
};
|
||||
networkd = {
|
||||
enable = lib.mkEnableOption "networkd";
|
||||
};
|
||||
};
|
||||
collections = {
|
||||
vpn = {
|
||||
dryborg = {
|
||||
|
|
@ -15,14 +27,16 @@
|
|||
};
|
||||
config = {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
networkmanager.enable = config.bchmnn.network.nm.enable;
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
systemd.services = lib.mkIf (config.bchmnn.network.nm.enable) {
|
||||
NetworkManager-wait-online.enable = false;
|
||||
};
|
||||
|
||||
services.resolved.enable = config.bchmnn.collections.vpn.enable;
|
||||
services.resolved.enable = (
|
||||
config.bchmnn.network.nm.enable || config.bchmnn.collections.vpn.enable
|
||||
);
|
||||
|
||||
environment.systemPackages = lib.optionals (config.bchmnn.collections.vpn.enable) [
|
||||
pkgs.openvpn3
|
||||
|
|
@ -31,31 +45,35 @@
|
|||
];
|
||||
services.mullvad-vpn.enable = config.bchmnn.collections.vpn.enable;
|
||||
|
||||
age.secrets = lib.mkIf (config.bchmnn.collections.vpn.enable && config.bchmnn.collections.vpn.dryborg.enable) {
|
||||
keys-wireguard-dryborg-privatekey = {
|
||||
file = ../../secrets/keys/wireguard/dryborg/privatekey.age;
|
||||
};
|
||||
keys-wireguard-dryborg-presharedkey = {
|
||||
file = ../../secrets/keys/wireguard/dryborg/presharedkey.age;
|
||||
};
|
||||
};
|
||||
age.secrets =
|
||||
lib.mkIf (config.bchmnn.collections.vpn.enable && config.bchmnn.collections.vpn.dryborg.enable)
|
||||
{
|
||||
keys-wireguard-dryborg-privatekey = {
|
||||
file = ../../secrets/keys/wireguard/dryborg/privatekey.age;
|
||||
};
|
||||
keys-wireguard-dryborg-presharedkey = {
|
||||
file = ../../secrets/keys/wireguard/dryborg/presharedkey.age;
|
||||
};
|
||||
};
|
||||
|
||||
networking.wg-quick.interfaces = lib.mkIf (config.bchmnn.collections.vpn.enable && config.bchmnn.collections.vpn.dryborg.enable) {
|
||||
"vpn.dryb.org" = {
|
||||
autostart = false;
|
||||
privateKeyFile = config.age.secrets.keys-wireguard-dryborg-privatekey.path;
|
||||
address = [ "10.200.200.1/24" ];
|
||||
dns = [ "192.168.2.1" ];
|
||||
peers = [
|
||||
{
|
||||
publicKey = "JY5fb0RS7C8WyPPEeymzuMSUeIhDtICGk1FYJgTRnTs=";
|
||||
presharedKeyFile = config.age.secrets.keys-wireguard-dryborg-presharedkey.path;
|
||||
allowedIPs = [ "0.0.0.0/0" ];
|
||||
endpoint = "vpn.dryb.org:53280";
|
||||
persistentKeepalive = 21;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
networking.wg-quick.interfaces =
|
||||
lib.mkIf (config.bchmnn.collections.vpn.enable && config.bchmnn.collections.vpn.dryborg.enable)
|
||||
{
|
||||
"vpn.dryb.org" = {
|
||||
autostart = false;
|
||||
privateKeyFile = config.age.secrets.keys-wireguard-dryborg-privatekey.path;
|
||||
address = [ "10.200.200.1/24" ];
|
||||
dns = [ "192.168.2.1" ];
|
||||
peers = [
|
||||
{
|
||||
publicKey = "JY5fb0RS7C8WyPPEeymzuMSUeIhDtICGk1FYJgTRnTs=";
|
||||
presharedKeyFile = config.age.secrets.keys-wireguard-dryborg-presharedkey.path;
|
||||
allowedIPs = [ "0.0.0.0/0" ];
|
||||
endpoint = "vpn.dryb.org:53280";
|
||||
persistentKeepalive = 21;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue