smart-energy-monitor/software/gateway/default.nix

67 lines
1.6 KiB
Nix

{
lib,
pkgs,
config,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/all-hardware.nix")
(modulesPath + "/profiles/minimal.nix")
(modulesPath + "/profiles/base.nix")
./boot.nix
./hardware.nix
./locale.nix
./networking.nix
./nix.nix
./security.nix
./users.nix
./tools.nix
];
system.stateVersion = lib.mkForce "23.05";
networking.hostName = "fabnet";
networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
networking.firewall.allowedTCPPorts = lib.mkDefault [
1880 # Node-Red
1883 # Mosquitto
5000 # Octoprint
3000 # Grafana
8086 # InfluxDB
9090 # Prometheus
];
services.openssh.enable = lib.mkForce true;
services.haveged.enable = lib.mkDefault true;
services.fail2ban.enable = lib.mkDefault true;
services.node-red.enable = lib.mkDefault true;
services.influxdb2.enable = lib.mkDefault true;
services.prometheus.enable = lib.mkDefault true;
services.octoprint.enable = lib.mkDefault true;
services.grafana.enable = lib.mkDefault true;
services.grafana.settings.server.http_port = 7878;
services.grafana.provision.datasources.settings.datasources = lib.mkForce [
{
name = "influxdb";
type = "influxdb";
url = "http://0.0.0.0:8086";
}
{
type = "prometheus";
name = "prometheus";
url = "http://0.0.0.0:9090";
}
];
services.mosquitto.enable = lib.mkDefault true;
services.mosquitto.listeners = lib.mkDefault [
{
address = "0.0.0.0";
acl = ["pattern readwrite #"];
omitPasswordAuth = lib.mkDefault true;
}
];
}