summaryrefslogtreecommitdiffstats
path: root/krebs/2configs/shack
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/2configs/shack')
-rwxr-xr-xkrebs/2configs/shack/doorstatus.sh74
-rw-r--r--krebs/2configs/shack/glados/default.nix6
-rw-r--r--krebs/2configs/shack/light.shack.nix6
-rw-r--r--krebs/2configs/shack/muell_mail.nix5
-rw-r--r--krebs/2configs/shack/muellshack.nix5
-rw-r--r--krebs/2configs/shack/node-light.nix5
-rw-r--r--krebs/2configs/shack/powerraw.nix6
-rw-r--r--krebs/2configs/shack/reaktor.nix30
-rw-r--r--krebs/2configs/shack/s3-power.nix5
-rw-r--r--krebs/2configs/shack/shackDNS.nix7
-rw-r--r--krebs/2configs/shack/worlddomination.nix5
11 files changed, 135 insertions, 19 deletions
diff --git a/krebs/2configs/shack/doorstatus.sh b/krebs/2configs/shack/doorstatus.sh
new file mode 100755
index 00000000..11e710cf
--- /dev/null
+++ b/krebs/2configs/shack/doorstatus.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+# needs in path:
+# curl jq
+# creates and manages $PWD/state
+set -euf
+
+send_reaktor(){
+ # usage: send_reaktor "text"
+ echo "send_reaktor: $1"
+ curl -fsS http://localhost:7777 \
+ -H content-type:application/json \
+ -d "$(jq -n \
+ --arg text "$1" '{
+ command:"PRIVMSG",
+ params:["#shackspace",$text]
+ }'
+ )"
+}
+
+open=$(shuf -n1 <<EOF
+happy hacking, shack ist offen
+Heureka, der shack ist offen
+Die Türe ist offen, der shack will bespielt werden
+Frohlocket, der shack ist offen
+shack is love, shack is life, shack is offen
+Bin da, wer noch? shack hat geöffnet!
+shack hat geöffnet: Arbeiten Sie sicher, arbeiten Sie klug!
+Bin ich schon drin? Ich bin schon drin.. das war ja einfach. Also im shack.
+Uuuuund es setzt sich in Bewegung, wir öffnen den shack, los, los! Ja da guckt ihr, jetzt gehts looos!
+EOF
+)
+
+close=$(shuf -n1 <<EOF
+Hacking vorbei, shack ist zu!
+Tja, shack ist zu
+Shackie-closie
+Der Sandmann kommt, alle shackies sind zu haus und die Tür ist zu
+shack hat Stromsparmodus aktiviert
+Tür ist zu, shackspace ist jetzt koronakonform
+Oh nein, eine Tür, sie ist verschlossen! Also, die vom shack
+Ihr kennt das ja: Abschalten. Der shack ist zu.
+EOF
+)
+error=$(shuf -n1 <<EOF
+Hase, api ist kaputt! Bitte reparieren
+API liefert kein sinnvolles Ergebnis, keine Ahnung ob shack offen oder zu ist
+shack api defekt :(
+Hubel Hubel, jemand könnte mal die shack api reparieren
+API sagt derp
+Siehste das? API? Da soll ich jetzt nen Request drauf machen? Jetzt werd ich aber langsam n bisschen wild hier langsam!
+Der API ist ein bisschen ein Otto geworden, ischwör der will mich flaxen
+ich möchte den geschäftsführer sprechen, das API geht nicht mehr!
+Herr makefu an Kasse 3 bitte, Kasse 3 bitte Herr makefu. Der API Computer ist mal wieder ausgefallen
+EOF
+)
+
+state=$(curl https://api.shackspace.de/v1/space | jq .doorState.open)
+prevstate=$(cat state ||:)
+
+if test "$state" == "$(cat state)";then
+ #echo "current and last state is the same ($state), doing nothing"
+ :
+else
+ echo "API state and last state differ ( '$state' != '$prevstate')"
+ if test "$state" == "true";then
+ send_reaktor "$open"
+ elif test "$state" == "false";then
+ send_reaktor "$close"
+ else
+ send_reaktor "$error"
+ fi
+ echo "updating state"
+ printf "%s" "$state" > state
+fi
diff --git a/krebs/2configs/shack/glados/default.nix b/krebs/2configs/shack/glados/default.nix
index 53d6e6f4..51c2ad94 100644
--- a/krebs/2configs/shack/glados/default.nix
+++ b/krebs/2configs/shack/glados/default.nix
@@ -112,7 +112,8 @@ in {
}
{ platform = "mpd";
name = "kiosk";
- host = "lounge.kiosk.shack";
+ #host = "lounge.kiosk.shack";
+ host = "kiosk.shack";
}
];
@@ -123,7 +124,7 @@ in {
http = {
base_url = "http://hass.shack";
use_x_forwarded_for = true;
- trusted_proxies = "127.0.0.1";
+ trusted_proxies = [ "127.0.0.1" "::1" ];
};
#conversation = {};
@@ -139,6 +140,7 @@ in {
language = "de";
cache = true;
time_memory = 57600;
+ base_url = "http://hass.shack";
}
];
device_tracker = [];
diff --git a/krebs/2configs/shack/light.shack.nix b/krebs/2configs/shack/light.shack.nix
index 8e01cb1b..715339a6 100644
--- a/krebs/2configs/shack/light.shack.nix
+++ b/krebs/2configs/shack/light.shack.nix
@@ -1,7 +1,9 @@
{ config, pkgs, ... }:
let
- light-shack-src = pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/standby.shack";
+ light-shack-src =
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "standby.shack";
rev = "e1b90a0a";
sha256 = "07fmz63arc5rxa0a3778srwz0jflp4ad6xnwkkc56hwybby0bclh";
};
diff --git a/krebs/2configs/shack/muell_mail.nix b/krebs/2configs/shack/muell_mail.nix
index 95145020..9308c7b1 100644
--- a/krebs/2configs/shack/muell_mail.nix
+++ b/krebs/2configs/shack/muell_mail.nix
@@ -2,8 +2,9 @@
let
pkg = pkgs.callPackage (
- pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/muell_mail";
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "muell_mail";
rev = "c3e43687879f95e01a82ef176fa15678543b2eb8";
sha256 = "0hgchwam5ma96s2v6mx2jfkh833psadmisjbm3k3153rlxp46frx";
}) { mkYarnPackage = pkgs.yarn2nix-moretea.mkYarnPackage; };
diff --git a/krebs/2configs/shack/muellshack.nix b/krebs/2configs/shack/muellshack.nix
index b032b429..cabe72b4 100644
--- a/krebs/2configs/shack/muellshack.nix
+++ b/krebs/2configs/shack/muellshack.nix
@@ -2,8 +2,9 @@
let
pkg = pkgs.callPackage (
- pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/muellshack";
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "muellshack";
rev = "dc80cf1edaa3d86ec2bebae8596ad1d4c4e3650a";
sha256 = "1yipr66zhrg5m20pf3rzvgvvl78an6ddkq6zc45rxb2r0i7ipkyh";
diff --git a/krebs/2configs/shack/node-light.nix b/krebs/2configs/shack/node-light.nix
index 2e69d5aa..7a648d4e 100644
--- a/krebs/2configs/shack/node-light.nix
+++ b/krebs/2configs/shack/node-light.nix
@@ -2,8 +2,9 @@
let
pkg = pkgs.callPackage (
- pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/node-light.git";
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "node-light";
rev = "90a9347b73af3a9960bd992e6293b357226ef6a0";
sha256 = "1av9w3w8aknlra25jw6gqxzbb01i9kdlfziy29lwz7mnryjayvwk";
}) { };
diff --git a/krebs/2configs/shack/powerraw.nix b/krebs/2configs/shack/powerraw.nix
index 43c74358..64e1911c 100644
--- a/krebs/2configs/shack/powerraw.nix
+++ b/krebs/2configs/shack/powerraw.nix
@@ -6,14 +6,16 @@
let
influx-url = "http://influx.shack:8086";
pkg = pkgs.python3.pkgs.callPackage (
- pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/powermeter.git";
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "powermeter";
rev = "438b08f";
sha256 = "0c5czmrwlw985b7ia6077mfrvbf2fq51iajb481pgqbywgxqis5m";
}) {};
in {
# receive response from light.shack / standby.shack
networking.firewall.allowedUDPPorts = [ 11111 ];
+ networking.firewall.allowedTCPPorts = [ 11111 ];
users.users.powermeter = {
extraGroups = [ "dialout" ];
isSystemUser = true;
diff --git a/krebs/2configs/shack/reaktor.nix b/krebs/2configs/shack/reaktor.nix
new file mode 100644
index 00000000..a31c7a68
--- /dev/null
+++ b/krebs/2configs/shack/reaktor.nix
@@ -0,0 +1,30 @@
+{ config, lib, pkgs, ... }:
+{
+ krebs.reaktor2.shackie = {
+ hostname = "irc.libera.chat";
+ port = "6697";
+ nick = "shackie";
+ API.listen = "inet://127.0.0.1:7777";
+ plugins = [
+ {
+ plugin = "register";
+ config = {
+ channels = [
+ "#shackspace"
+ ];
+ };
+ }
+ ];
+ };
+ systemd.services.announce_doorstatus = {
+ startAt = "*:0/1";
+ path = with pkgs; [ curl jq ];
+ script = builtins.readFile ./doorstatus.sh;
+ serviceConfig = {
+ DynamicUser = true;
+ StateDirectory = "doorstatus";
+ WorkingDirectory = "/var/lib/doorstatus";
+ PrivateTmp = true;
+ };
+ };
+}
diff --git a/krebs/2configs/shack/s3-power.nix b/krebs/2configs/shack/s3-power.nix
index 0ce8a878..bed98d86 100644
--- a/krebs/2configs/shack/s3-power.nix
+++ b/krebs/2configs/shack/s3-power.nix
@@ -2,8 +2,9 @@
let
pkg = pkgs.callPackage (
- pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/s3-power";
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "s3-power";
rev = "0687ab64";
sha256 = "1m8h4bwykv24bbgr5v51mam4wsbp5424xcrawhs4izv563jjf130";
}) { mkYarnPackage = pkgs.yarn2nix-moretea.mkYarnPackage; };
diff --git a/krebs/2configs/shack/shackDNS.nix b/krebs/2configs/shack/shackDNS.nix
index c9cdfd24..00f79abc 100644
--- a/krebs/2configs/shack/shackDNS.nix
+++ b/krebs/2configs/shack/shackDNS.nix
@@ -1,9 +1,10 @@
{ config, lib, pkgs, ... }:
let
- pkg =
- pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/shackdns";
+ pkg =
+ pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "shackdns";
rev = "e55cc906c734b398683f9607b93f1ad6435d8575";
sha256 = "1hkwhf3hqb4fz06b1ckh7sl0zcyi4da5fgdlksian8lxyd19n8sq";
};
diff --git a/krebs/2configs/shack/worlddomination.nix b/krebs/2configs/shack/worlddomination.nix
index 4bdb095f..e339d317 100644
--- a/krebs/2configs/shack/worlddomination.nix
+++ b/krebs/2configs/shack/worlddomination.nix
@@ -4,8 +4,9 @@ with import <stockholm/lib>;
let
pkg = pkgs.stdenv.mkDerivation {
name = "worlddomination-2020-12-01";
- src = pkgs.fetchgit {
- url = "https://git.shackspace.de/rz/worlddomination.git";
+ src = pkgs.fetchFromGitHub {
+ owner = "shackspace";
+ repo = "worlddomination";
rev = "c7aedcde7cd1fcb870b5356a6125e1a384b0776c";
sha256 = "0y6haz5apwa33lz64l7b2x78wrrckbw39j4wzyd1hfk46478xi2y";
};