Files
cyper-nix/nixos/roles/wyl.nix

50 lines
1.2 KiB
Nix

{ config, pkgs, ... }:
let
serverIP = builtins.head (
builtins.match "([0-9.]+)/.*" config.systemd.network.networks."10-ethernet".networkConfig.Address
);
iface = config.systemd.network.networks."10-ethernet".matchConfig.Name;
in
{
networking.firewall.allowedTCPPorts = [ 8840 ];
systemd.services.watchyourlan = {
description = "WatchYourLAN network scanner";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = "${pkgs.watchyourlan}/bin/WatchYourLAN";
Restart = "always";
StateDirectory = "watchyourlan";
WorkingDirectory = "/var/lib/watchyourlan";
AmbientCapabilities = [ "CAP_NET_RAW" ];
};
environment = {
IFACES = iface;
GUIIP = "127.0.0.1";
GUIPORT = "8840";
PROMETHEUS = "true";
};
};
services = {
nginx = {
enable = true;
virtualHosts."${serverIP}".locations."/wyl/" = {
proxyPass = "http://127.0.0.1:8840/";
proxyWebsockets = true;
};
};
prometheus.scrapeConfigs = [
{
job_name = "watchyourlan";
static_configs = [
{
targets = [ "127.0.0.1:8840" ];
}
];
}
];
};
}