50 lines
1.2 KiB
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" ];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
}
|