summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/1systems/puyak/config.nix6
-rw-r--r--krebs/2configs/shack/grafana.nix13
-rw-r--r--krebs/2configs/shack/influx.nix10
-rw-r--r--krebs/2configs/shack/power/u300-power.nix29
4 files changed, 53 insertions, 5 deletions
diff --git a/krebs/1systems/puyak/config.nix b/krebs/1systems/puyak/config.nix
index 033cb94d1..931ebe70b 100644
--- a/krebs/1systems/puyak/config.nix
+++ b/krebs/1systems/puyak/config.nix
@@ -46,10 +46,8 @@
# light.shack web-ui
<stockholm/krebs/2configs/shack/light.shack.nix> #light.shack
- # powerraw usb serial to mqtt and raw socket
- <stockholm/krebs/2configs/shack/powerraw.nix> # powerraw.shack standby.shack
- # send power stats to s3
- <stockholm/krebs/2configs/shack/s3-power.nix> # powerraw.shack must be available
+ # fetch the u300 power stats
+ <stockholm/krebs/2configs/shack/power/u300-power.nix>
{ # do not log to /var/spool/log
diff --git a/krebs/2configs/shack/grafana.nix b/krebs/2configs/shack/grafana.nix
index adf0a4bc3..f42f1c4af 100644
--- a/krebs/2configs/shack/grafana.nix
+++ b/krebs/2configs/shack/grafana.nix
@@ -4,7 +4,18 @@ in {
networking.firewall.allowedTCPPorts = [ port ]; # legacy
services.nginx.virtualHosts."grafana.shack" = {
- locations."/".proxyPass = "http://localhost:${toString port}";
+ locations."/" = {
+ proxyPass = "http://localhost:${toString port}";
+ extraConfig =''
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ '';
+
+ };
};
services.grafana = {
enable = true;
diff --git a/krebs/2configs/shack/influx.nix b/krebs/2configs/shack/influx.nix
index 6d090323d..efc88f51d 100644
--- a/krebs/2configs/shack/influx.nix
+++ b/krebs/2configs/shack/influx.nix
@@ -15,6 +15,16 @@ in
'';
locations."/" = {
proxyPass = "http://localhost:${toString port}/";
+ extraConfig = ''
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+
+ proxy_buffering off;
+ '';
};
};
nixpkgs.overlays = [
diff --git a/krebs/2configs/shack/power/u300-power.nix b/krebs/2configs/shack/power/u300-power.nix
new file mode 100644
index 000000000..66e54169a
--- /dev/null
+++ b/krebs/2configs/shack/power/u300-power.nix
@@ -0,0 +1,29 @@
+{ pkgs, ... }:
+let
+ src = pkgs.fetchFromGitHub {
+ repo = "shackstrom";
+ owner = "samularity";
+ rev = "adfbdc7d12000fbc9fd9367c8ef0a53b7d0a9fad";
+ hash = "sha256-77vSX2+1XXaBVgLka+tSEK/XYZASEk9iq+uEuO1aOUQ=";
+ };
+ pkg = pkgs.writers.writePython3 "test_python3" {
+ libraries = [ pkgs.python3Packages.requests pkgs.python3Packages.paho-mqtt ];
+ } (builtins.readFile "${src}/shackstrom.py");
+in
+{
+ systemd.services = {
+ u300-power = {
+ enable = true;
+ environment = {
+ DATA_URL = "http://10.42.20.255/csv.html";
+ BROKER = "mqtt.shack";
+ };
+ serviceConfig = {
+ Restart = "always";
+ ExecStart = pkg;
+ RestartSec = "15s";
+ };
+ wantedBy = [ "multi-user.target" ];
+ };
+ };
+}