add pvlog
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
./kavita.nix
|
./kavita.nix
|
||||||
./kop-fileshare.nix
|
./kop-fileshare.nix
|
||||||
./kop-monitor.nix
|
./kop-monitor.nix
|
||||||
|
./kop-pvlog.nix
|
||||||
./kubernetes.nix
|
./kubernetes.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
./opensnitch.nix
|
./opensnitch.nix
|
||||||
|
|||||||
78
modules/services/kop-pvlog.nix
Normal file
78
modules/services/kop-pvlog.nix
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.custom.services.kop-pvlog;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
custom.services.kop-pvlog = {
|
||||||
|
enable = mkEnableOption "Enable the fronius data logger";
|
||||||
|
port = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 7788;
|
||||||
|
description = "Port for the fronius data logger";
|
||||||
|
};
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/var/lib/pvlog";
|
||||||
|
description = "Directory to store the data";
|
||||||
|
};
|
||||||
|
basePath = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "/";
|
||||||
|
description = "Location under which the data logger is reachable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
users.users.kop-pvlog = {
|
||||||
|
home = cfg.dataDir;
|
||||||
|
createHome = true;
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "kop-pvlog";
|
||||||
|
};
|
||||||
|
users.groups.kop-pvlog = { };
|
||||||
|
systemd.services.kop-pvlog = {
|
||||||
|
description = "Fronius data logger";
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
|
after = [
|
||||||
|
"network.target"
|
||||||
|
"network-online.target"
|
||||||
|
];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.kop-pvlog}/bin/kop-pvlog";
|
||||||
|
WorkingDirectory = cfg.dataDir;
|
||||||
|
BindPaths = [ "${cfg.dataDir}" ];
|
||||||
|
User = "kop-pvlog";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
PrivateMounts = mkDefault true;
|
||||||
|
PrivateTmp = mkDefault true;
|
||||||
|
PrivateUsers = mkDefault true;
|
||||||
|
ProtectClock = mkDefault true;
|
||||||
|
ProtectControlGroups = mkDefault true;
|
||||||
|
ProtectHome = mkDefault true;
|
||||||
|
ProtectHostname = mkDefault true;
|
||||||
|
ProtectKernelLogs = mkDefault true;
|
||||||
|
ProtectKernelModules = mkDefault true;
|
||||||
|
ProtectKernelTunables = mkDefault true;
|
||||||
|
ProtectSystem = mkDefault "strict";
|
||||||
|
# Needs network access
|
||||||
|
PrivateNetwork = mkDefault false;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
PORT = "${toString cfg.port}";
|
||||||
|
DATA_PATH = "${toString cfg.dataDir}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ rec {
|
|||||||
ente-frontend = pkgs.callPackage ./ente-frontend/default.nix { };
|
ente-frontend = pkgs.callPackage ./ente-frontend/default.nix { };
|
||||||
kop-fhcalendar = pkgs.callPackage ./kop-fhcalendar/default.nix { };
|
kop-fhcalendar = pkgs.callPackage ./kop-fhcalendar/default.nix { };
|
||||||
kop-fileshare = pkgs.callPackage ./kop-fileshare/default.nix { };
|
kop-fileshare = pkgs.callPackage ./kop-fileshare/default.nix { };
|
||||||
|
kop-pvlog = pkgs.callPackage ./kop-pvlog/default.nix { };
|
||||||
kop-hub = pkgs.callPackage ./hub/default.nix { };
|
kop-hub = pkgs.callPackage ./hub/default.nix { };
|
||||||
kop-monitor = pkgs.callPackage ./kop-monitor/default.nix { };
|
kop-monitor = pkgs.callPackage ./kop-monitor/default.nix { };
|
||||||
kop-newproject = pkgs.callPackage ./kop-newproject/default.nix { };
|
kop-newproject = pkgs.callPackage ./kop-newproject/default.nix { };
|
||||||
|
|||||||
23
pkgs/kop-pvlog/default.nix
Normal file
23
pkgs/kop-pvlog/default.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
buildGoModule,
|
||||||
|
stdenv,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
buildGoModule rec {
|
||||||
|
pname = "kop-pvlog";
|
||||||
|
version = "0.0.1";
|
||||||
|
|
||||||
|
src = fetchGit {
|
||||||
|
url = "gitolite@kopatz.dev:kop-pvlog.git";
|
||||||
|
ref = "master";
|
||||||
|
rev = "23828dfa1275aac2b31e16b5e3cfb452d56aeae6";
|
||||||
|
};
|
||||||
|
vendorHash = "sha256-8wYERVt3PIsKkarkwPu8Zy/Sdx43P6g2lz2xRfvTZ2E=";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Fronius Inverter data logger";
|
||||||
|
license = lib.licenses.gpl3;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -117,6 +117,11 @@
|
|||||||
dataDir = "/1tbssd/kop-fileshare";
|
dataDir = "/1tbssd/kop-fileshare";
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
kop-pvlog = {
|
||||||
|
enable = true;
|
||||||
|
basePath = "/";
|
||||||
|
dataDir = "/data/pvlog";
|
||||||
|
};
|
||||||
nginx.enable = true;
|
nginx.enable = true;
|
||||||
ente.enable = true;
|
ente.enable = true;
|
||||||
kavita = {
|
kavita = {
|
||||||
|
|||||||
Reference in New Issue
Block a user