diff --git a/system-config/services/containers/netbird/default.nix b/system-config/services/containers/netbird/default.nix new file mode 100644 index 0000000..dc74246 --- /dev/null +++ b/system-config/services/containers/netbird/default.nix @@ -0,0 +1,73 @@ +{ config, lib, pkgs, ... }: { + + options.sysconfig.opts = { + + netbird.enable = lib.options.mkOption { + type = lib.types.bool; + default = false; + }; + + virtualization.netbird = { + enable = lib.options.mkOption { + type = lib.types.bool; + default = false; + }; + }; + }; + + config = { + + services.netbird = { + enable = config.sysconfig.opts.netbird.enable; + }; + + environment.systemPackages = lib.mkIf config.sysconfig.opts.netbird.enable [ pkgs.netbird-ui ]; + + containers.netbird = lib.mkIf config.sysconfig.opts.virtualization.netbird.enable { + + autoStart = true; + privateNetwork = true; + hostAddress = "192.168.100.10"; + localAddress = "192.168.100.21"; + + bindMounts = {}; + + config = { + + services.netbird = { + + enable = true; + + server = { + + enable = true; + domain = "vpn.blunkall.us"; + + management = { + enable = true; + #dnsDomain = ".vpn"; + + enableNginx = true; + }; + + dashboard = { + enable = true; + + enableNginx = true; + }; + + coturn = { + enable = true; + }; + + signal = { + enable = true; + + enableNginx = true; + }; + }; + }; + }; + }; + }; +} diff --git a/system-config/services/dynamicDNS/default.nix b/system-config/services/dynamicDNS/default.nix new file mode 100644 index 0000000..f2ea89e --- /dev/null +++ b/system-config/services/dynamicDNS/default.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: { + + options.sysconfig.opts.dynamicDNS.enable = lib.options.mkOption { + + type = lib.types.bool; + default = false; + }; + + config = lib.mkIf config.sysconfig.opts.dynamicDNS { + + systemd.timers.dynamicDNS = { + + wantedBy = [ "timers.target" ]; + + timerConfig = { + + OnBootSec = "5m"; + + OnUnitActiveSec = "1h"; + + Unit = "dynamicDNS.service"; + }; + }; + + systemd.services.dynamicDNS = { + + name = "dynamicDNS.service"; + + serviceConfig = { + + Type = "oneshot"; + + LoadCredential = [ "cloudflare-api-key" ]; + + }; + + script = ''''; + }; + }; +}