summaryrefslogtreecommitdiffstats
path: root/makefu/2configs
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/2configs')
-rw-r--r--makefu/2configs/backup/server.nix20
-rw-r--r--makefu/2configs/bgt/etherpad.euer.krebsco.de.nix (renamed from makefu/2configs/deployment/docker/etherpad.euer.krebsco.de.nix)4
-rw-r--r--makefu/2configs/bgt/social-to-irc.nix32
-rw-r--r--makefu/2configs/bgt/template.md (renamed from makefu/2configs/deployment/docker/template.md)0
-rw-r--r--makefu/2configs/binary-cache/server.nix1
-rw-r--r--makefu/2configs/bureautomation/automation/philosophische-tuer.nix108
-rw-r--r--makefu/2configs/bureautomation/default.nix10
-rw-r--r--makefu/2configs/bureautomation/zigbee2mqtt/default.nix (renamed from makefu/2configs/ham/zigbee2mqtt/default.nix)9
-rw-r--r--makefu/2configs/bureautomation/zigbee2mqtt/hass.nix (renamed from makefu/2configs/ham/zigbee2mqtt/hass.nix)0
-rw-r--r--makefu/2configs/default.nix1
-rw-r--r--makefu/2configs/gui/wbob-kiosk.nix15
-rw-r--r--makefu/2configs/home/airsonic.nix29
-rw-r--r--makefu/2configs/home/ham/automation/fenster_auf.nix33
-rw-r--r--makefu/2configs/home/ham/automation/firetv_restart.nix (renamed from makefu/2configs/ham/automation/firetv_restart.nix)0
-rw-r--r--makefu/2configs/home/ham/automation/giesskanne.nix (renamed from makefu/2configs/ham/automation/giesskanne.nix)0
-rw-r--r--makefu/2configs/home/ham/automation/light_buttons.nix (renamed from makefu/2configs/ham/automation/light_buttons.nix)0
-rw-r--r--makefu/2configs/home/ham/automation/moodlight.nix (renamed from makefu/2configs/ham/automation/moodlight.nix)0
-rw-r--r--makefu/2configs/home/ham/automation/urlaub.nix (renamed from makefu/2configs/ham/automation/urlaub.nix)0
-rw-r--r--makefu/2configs/home/ham/automation/wohnzimmer_rf_fernbedienung.nix (renamed from makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix)0
-rw-r--r--makefu/2configs/home/ham/calendar/nextcloud.nix (renamed from makefu/2configs/ham/calendar/nextcloud.nix)0
-rw-r--r--makefu/2configs/home/ham/default.nix (renamed from makefu/2configs/ham/default.nix)74
-rw-r--r--makefu/2configs/home/ham/deps/dwdwfsapi.nix (renamed from makefu/2configs/ham/deps/dwdwfsapi.nix)0
-rw-r--r--makefu/2configs/home/ham/deps/pykodi.nix (renamed from makefu/2configs/ham/deps/pykodi.nix)0
-rw-r--r--makefu/2configs/home/ham/device_tracker/openwrt.nix (renamed from makefu/2configs/ham/device_tracker/openwrt.nix)0
-rw-r--r--makefu/2configs/home/ham/lib/default.nix (renamed from makefu/2configs/ham/lib/default.nix)0
-rw-r--r--makefu/2configs/home/ham/light/arbeitszimmer.nix (renamed from makefu/2configs/ham/light/arbeitszimmer.nix)0
-rw-r--r--makefu/2configs/home/ham/light/schlafzimmer.nix (renamed from makefu/2configs/ham/light/schlafzimmer.nix)0
-rw-r--r--makefu/2configs/home/ham/light/wohnzimmer.nix (renamed from makefu/2configs/ham/light/wohnzimmer.nix)0
-rw-r--r--makefu/2configs/home/ham/mqtt.nix (renamed from makefu/2configs/ham/mqtt.nix)0
-rw-r--r--makefu/2configs/home/ham/multi/fliegen-couter.nix (renamed from makefu/2configs/ham/multi/fliegen-couter.nix)0
-rw-r--r--makefu/2configs/home/ham/multi/flurlicht.nix (renamed from makefu/2configs/ham/multi/flurlicht.nix)0
-rw-r--r--makefu/2configs/home/ham/multi/kurzzeitwecker.nix (renamed from makefu/2configs/ham/multi/kurzzeitwecker.nix)0
-rw-r--r--makefu/2configs/home/ham/multi/the_playlist.nix (renamed from makefu/2configs/ham/multi/the_playlist.nix)0
-rw-r--r--makefu/2configs/home/ham/nginx.nix15
-rw-r--r--makefu/2configs/home/ham/sensor/outside.nix (renamed from makefu/2configs/ham/sensor/outside.nix)0
-rw-r--r--makefu/2configs/home/ham/signal-rest/default.nix18
-rw-r--r--makefu/2configs/home/ham/zigbee2mqtt/default.nix91
-rw-r--r--makefu/2configs/home/ham/zigbee2mqtt/hass.nix130
-rw-r--r--makefu/2configs/home/ham/zigbee2mqtt/osram.nix (renamed from makefu/2configs/ham/zigbee2mqtt/osram.nix)0
-rw-r--r--makefu/2configs/home/metube.nix35
-rw-r--r--makefu/2configs/home/photoprism.nix147
-rw-r--r--makefu/2configs/hw/tp-x230.nix8
-rw-r--r--makefu/2configs/hw/xmm7360.nix11
-rw-r--r--makefu/2configs/printer.nix6
-rw-r--r--makefu/2configs/share/omo-client.nix28
-rw-r--r--makefu/2configs/stats/server.nix1
-rw-r--r--makefu/2configs/storj/client.nix27
-rw-r--r--makefu/2configs/storj/forward-port.nix22
-rw-r--r--makefu/2configs/systemdultras/ircbot.nix4
-rw-r--r--makefu/2configs/tools/core.nix1
-rw-r--r--makefu/2configs/wireguard/server.nix2
51 files changed, 843 insertions, 39 deletions
diff --git a/makefu/2configs/backup/server.nix b/makefu/2configs/backup/server.nix
index f157e715f..26e53b8c3 100644
--- a/makefu/2configs/backup/server.nix
+++ b/makefu/2configs/backup/server.nix
@@ -1,11 +1,19 @@
-{lib, ... }:
+{lib,config, ... }:
let
hosts = lib.mapAttrsToList (f: _: lib.removeSuffix ".pub" f) (builtins.readDir ./ssh );
in {
# TODO: for all enabled machines
- services.borgbackup.repos = lib.genAttrs hosts (host: {
- authorizedKeys = [ (builtins.readFile (./ssh + "/${host}.pub") ) ];
- path = "/var/lib/borgbackup/${host}";
- user = "borg-${host}";
- }) ;
+ options = {
+ makefu.backup.server.repo = lib.mkOption {
+ type = lib.types.str;
+ default = "/var/lib/borgbackup";
+ };
+ };
+ config = {
+ services.borgbackup.repos = lib.genAttrs hosts (host: {
+ authorizedKeys = [ (builtins.readFile (./ssh + "/${host}.pub") ) ];
+ path = "${config.makefu.backup.server.repo}/${host}";
+ user = "borg-${host}";
+ }) ;
+ };
}
diff --git a/makefu/2configs/deployment/docker/etherpad.euer.krebsco.de.nix b/makefu/2configs/bgt/etherpad.euer.krebsco.de.nix
index 172e69c4d..48b947c58 100644
--- a/makefu/2configs/deployment/docker/etherpad.euer.krebsco.de.nix
+++ b/makefu/2configs/bgt/etherpad.euer.krebsco.de.nix
@@ -6,7 +6,7 @@ in {
services.nginx.virtualHosts."etherpad.euer.krebsco.de" = {
# useACMEHost = "euer.krebsco.de";
extraConfig = ''
- ssl_session_timeout 5m;
+ ssl_session_timeout 30m;
'';
enableACME = true;
forceSSL = true;
@@ -27,7 +27,7 @@ in {
# WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
- proxy_read_timeout 61s;
+ proxy_read_timeout 1799s;
'';
};
docker-containers."etherpad-lite" = {
diff --git a/makefu/2configs/bgt/social-to-irc.nix b/makefu/2configs/bgt/social-to-irc.nix
new file mode 100644
index 000000000..ce89451c1
--- /dev/null
+++ b/makefu/2configs/bgt/social-to-irc.nix
@@ -0,0 +1,32 @@
+{
+ # systemd.services.brockman.environment."BROCKMAN_LOG_LEVEL" = "DEBUG";
+ krebs.brockman = {
+ enable = true;
+ config = {
+ channel = "#binaergewitter";
+ irc = {
+ host = "irc.freenode.net";
+ port = 6667;
+ };
+ #controller = {
+ # nick = "brockman-systemdultras";
+ # channels = [];
+ #};
+ bots = {
+ bgt-mastodon-rss = {
+ feed = "https://jit.social/users/binaergewitter.rss";
+ channels = [ "#binaergewitter" ];
+ delay = 180;
+ notifyErrors = false;
+ };
+ bgt-blog-rss = {
+ feed = "https://blog.binaergewitter.de/rss.xml";
+ channels = [ "#binaergewitter" ];
+ delay = 180;
+ notifyErrors = false;
+ };
+ };
+ };
+
+ };
+}
diff --git a/makefu/2configs/deployment/docker/template.md b/makefu/2configs/bgt/template.md
index e53bad7e8..e53bad7e8 100644
--- a/makefu/2configs/deployment/docker/template.md
+++ b/makefu/2configs/bgt/template.md
diff --git a/makefu/2configs/binary-cache/server.nix b/makefu/2configs/binary-cache/server.nix
index 1d729b9bb..2e05fd52e 100644
--- a/makefu/2configs/binary-cache/server.nix
+++ b/makefu/2configs/binary-cache/server.nix
@@ -5,6 +5,7 @@
# nix-store --generate-binary-cache-key gum nix-serve.key nix-serve.pub
services.nix-serve = {
enable = true;
+ port = 5001;
secretKeyFile = config.krebs.secret.files.nix-serve-key.path;
};
diff --git a/makefu/2configs/bureautomation/automation/philosophische-tuer.nix b/makefu/2configs/bureautomation/automation/philosophische-tuer.nix
new file mode 100644
index 000000000..9ccb81348
--- /dev/null
+++ b/makefu/2configs/bureautomation/automation/philosophische-tuer.nix
@@ -0,0 +1,108 @@
+{ config, pkgs, lib, ... }:
+
+let
+ short_threshold = 30; #seconds
+ long_threshold = 30; #minutes
+ sensor = "binary_sensor.buerotuer_contact";
+
+ # get the list of all
+ name = "tueraudio";
+ prefix = "http://localhost:8123/local/${name}";
+ audiodir = "${config.services.home-assistant.configDir}/www/${name}";
+ recordrepo = pkgs.fetchFromGitHub {
+ owner = "makefu";
+ repo = "philosophische_tuer";
+ rev = "17544c6";
+ sha256 = "0bm0697fyf6s05c6yw6y25cyck04rlxj1dgazkq8mfqk6756v2bq";
+ };
+ samples = user: lib.mapAttrsToList
+ (file: _: ''"${prefix}/${name}/${user}/${file}"'')
+ (builtins.readDir (toString ( recordrepo+ "/recordings/${user}")));
+ random_tuerspruch = ''{{'' + (lib.concatStringsSep "," ((samples "Felix") ++ (samples "Sofia") ++ (samples "Markus"))) + ''| random}}''; # TODO read from derivation
+in
+{
+ systemd.tmpfiles.rules = [
+ "d ${audiodir} - hass hass - -"
+ ];
+
+ systemd.services.copy-philosophische-tuersounds = {
+ description = "copy philosophische tuer";
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ Type = "oneshot";
+ User = "hass";
+ WorkingDirectory = audiodir;
+ ExecStart = pkgs.writeDash "update-samples" ''
+ cp -vr ${recordrepo} ${audiodir}
+ '';
+ };
+ };
+
+ services.home-assistant.config.media_extractor = { };
+ services.home-assistant.config.script."philosophische_tuer" = {
+ alias = "Durchsage der philosophischen Tür";
+ sequence = [
+ { service = "media_player.play_media";
+ data = {
+ entity_id = "media_player.mpd";
+ media_content_type = "playlist";
+ media_content_id = "ansage";
+ };
+ }
+ { delay.seconds = 5; }
+ { service = "media_extractor.play_media";
+ entity_id = "media_player.mpd";
+ data_template = {
+ media_content_id = random_tuerspruch;
+ media_content_type = "MUSIC";
+ };
+ }
+ ];
+ };
+ services.home-assistant.config.automation =
+ [
+ {
+ alias = "Tür offen seit ${toString short_threshold} sekunden";
+ trigger =
+ { platform = "state";
+ entity_id = sensor;
+ to = "on";
+ for.seconds = 60;
+ };
+ condition = { };
+
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = [
+ "script.philosophische_tuer"
+ ];
+ }
+ ];
+ }
+ {
+ alias = "Tür offen seit ${toString long_threshold} minuten";
+ trigger =
+ { platform = "state";
+ entity_id = sensor;
+ to = "on";
+ for.minutes = long_threshold;
+ };
+ condition = { };
+
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = [
+ "script.philosophische_tuer"
+ ];
+ }
+ { service = "tts.google_say";
+ entity_id = "media_player.mpd";
+ data_template = {
+ message = "BEEP BOOP - Die Tür ist schon seit ${toString long_threshold} Minuten offen! Student Nummer {{ range(1,500) | random }}, bitte schliesse die Tür";
+ language = "de";
+ };
+ }
+ ];
+ }
+ ];
+}
diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix
index 7e8b6a4d3..7ac90f5c5 100644
--- a/makefu/2configs/bureautomation/default.nix
+++ b/makefu/2configs/bureautomation/default.nix
@@ -1,12 +1,15 @@
{ config, pkgs, lib, ... }:
let
kodi-host = "192.168.8.11";
+ unstable = import <nixpkgs-unstable> {};
in {
imports = [
./ota.nix
./comic-updater.nix
./puppy-proxy.nix
+ ./zigbee2mqtt
+
# hass config
## complex configs
./multi/daily-standup.nix
@@ -39,15 +42,22 @@ in {
./automation/bureau-shutdown.nix
./automation/nachtlicht.nix
./automation/schlechteluft.nix
+ ./automation/philosophische-tuer.nix
./automation/hass-restart.nix
./device_tracker/openwrt.nix
./person/team.nix
];
+
networking.firewall.allowedTCPPorts = [ 8123 ];
state = [ "/var/lib/hass/known_devices.yaml" ];
services.home-assistant = {
enable = true;
+ package = (unstable.home-assistant.overrideAttrs (old: {
+ doInstallCheck = false;
+ })).override {
+ extraPackages = p: [ p.APScheduler ];
+ };
autoExtraComponents = true;
config = {
config = {};
diff --git a/makefu/2configs/ham/zigbee2mqtt/default.nix b/makefu/2configs/bureautomation/zigbee2mqtt/default.nix
index a75075273..ba10ae74b 100644
--- a/makefu/2configs/ham/zigbee2mqtt/default.nix
+++ b/makefu/2configs/bureautomation/zigbee2mqtt/default.nix
@@ -12,13 +12,18 @@ in
services.zigbee2mqtt = {
enable = true;
inherit dataDir;
+ config = {
+ permit_join = true;
+ serial.port = "/dev/cc2531";
+ homeassistant = true;
+ };
};
- state = [ "${dataDir}/configuration.yaml" "${dataDir}/state.json" ];
+ state = [ "${dataDir}/devices.yaml" "${dataDir}/state.json" ];
systemd.services.zigbee2mqtt = {
# override automatic configuration.yaml deployment
- serviceConfig.ExecStartPre = lib.mkForce "${pkgs.coreutils}/bin/true";
+ environment.ZIGBEE2MQTT_DATA = dataDir;
after = [
"home-assistant.service"
"mosquitto.service"
diff --git a/makefu/2configs/ham/zigbee2mqtt/hass.nix b/makefu/2configs/bureautomation/zigbee2mqtt/hass.nix
index faf864ba6..faf864ba6 100644
--- a/makefu/2configs/ham/zigbee2mqtt/hass.nix
+++ b/makefu/2configs/bureautomation/zigbee2mqtt/hass.nix
diff --git a/makefu/2configs/default.nix b/makefu/2configs/default.nix
index 695e8fee6..be64e402e 100644
--- a/makefu/2configs/default.nix
+++ b/makefu/2configs/default.nix
@@ -57,6 +57,7 @@ with import <stockholm/lib>;
environment.shellAliases = {
# TODO: see .aliases
lsl = "ls -lAtr";
+ ip = "ip -c -br";
dmesg = "dmesg -L --reltime";
psg = "ps -ef | grep";
nmap = "nmap -oN $HOME/loot/scan-`date +\%s`.nmap -oX $HOME/loot/scan-`date +%s`.xml";
diff --git a/makefu/2configs/gui/wbob-kiosk.nix b/makefu/2configs/gui/wbob-kiosk.nix
index 1a5e6d04f..2f6a26d82 100644
--- a/makefu/2configs/gui/wbob-kiosk.nix
+++ b/makefu/2configs/gui/wbob-kiosk.nix
@@ -10,13 +10,14 @@
};
services.xserver = {
- windowManager = lib.mkForce {
- awesome.enable = false;
- };
- desktopManager.xfce = {
+ windowManager = lib.mkForce { awesome.enable = false; };
+ displayManager.gdm.enable = true;
+ displayManager.autoLogin = {
enable = true;
+ user = "makefu";
};
- displayManager.defaultSession = "xfce";
+ displayManager.defaultSession = "gnome";
+ desktopManager.gnome3.enable = true;
displayManager.sessionCommands = ''
${pkgs.xlibs.xset}/bin/xset -display :0 s off -dpms
${pkgs.xlibs.xrandr}/bin/xrandr --output HDMI2 --right-of HDMI1
@@ -25,6 +26,10 @@
# prevent screen from turning off, disable dpms
};
+
+ environment.systemPackages = [ pkgs.gnomeExtensions.appindicator ];
+ services.dbus.packages = with pkgs; [ gnome2.GConf gnome3.gnome-settings-daemon ];
+
systemd.services.xset-off = {
after = [ "display-manager.service" ];
wantedBy = [ "multi-user.target" ];
diff --git a/makefu/2configs/home/airsonic.nix b/makefu/2configs/home/airsonic.nix
new file mode 100644
index 000000000..15e77438d
--- /dev/null
+++ b/makefu/2configs/home/airsonic.nix
@@ -0,0 +1,29 @@
+{ config, ... }:
+let
+ internal-ip = "192.168.1.11";
+ port = 4040;
+in
+{
+ # networking.firewall.allowedTCPPorts = [ 4040 ];
+ services.airsonic = {
+ enable = true;
+ listenAddress = "0.0.0.0";
+ inherit port;
+ };
+ state = [ config.services.airsonic.home ];
+ services.nginx.virtualHosts."airsonic" = {
+ serverAliases = [
+ "airsonic.lan"
+ "music" "music.lan"
+ "musik" "musik.lan"
+ ];
+
+ locations."/".proxyPass = "http://localhost:${toString port}";
+ locations."/".proxyWebsockets = true;
+ extraConfig = ''
+ if ( $server_addr != "${internal-ip}" ) {
+ return 403;
+ }
+ '';
+ };
+}
diff --git a/makefu/2configs/home/ham/automation/fenster_auf.nix b/makefu/2configs/home/ham/automation/fenster_auf.nix
new file mode 100644
index 000000000..ccebd5b00
--- /dev/null
+++ b/makefu/2configs/home/ham/automation/fenster_auf.nix
@@ -0,0 +1,33 @@
+let
+ min = 20;
+ fenster_offen = name: entity:
+ { alias = "${name} seit ${toString min} Minuten offen";
+ trigger = [
+ {
+ platform = "state";
+ entity_id = entity;
+ to = "on";
+ for.minutes = min;
+ }
+ ];
+ action =
+ [
+ {
+ service = "notify.firetv_wohnzimmer";
+ data = {
+ title = "${name} seit ${toString min} Minuten offen";
+ message = "Bitte einmal checken ob das ok ist :)";
+ data = {
+ interrupt = 1;
+ duration = 300;
+ };
+ };
+ }
+ ];
+ };
+in {
+ services.home-assistant.config.automation = [
+ (fenster_offen "Badezimmerfenster" "binary_sensor.badezimmer_fenster_contact")
+ (fenster_offen "Duschfenster" "binary_sensor.dusche_fenster_contact")
+ ];
+}
diff --git a/makefu/2configs/ham/automation/firetv_restart.nix b/makefu/2configs/home/ham/automation/firetv_restart.nix
index 12e0e845a..12e0e845a 100644
--- a/makefu/2configs/ham/automation/firetv_restart.nix
+++ b/makefu/2configs/home/ham/automation/firetv_restart.nix
diff --git a/makefu/2configs/ham/automation/giesskanne.nix b/makefu/2configs/home/ham/automation/giesskanne.nix
index 4b0fb61dd..4b0fb61dd 100644
--- a/makefu/2configs/ham/automation/giesskanne.nix
+++ b/makefu/2configs/home/ham/automation/giesskanne.nix
diff --git a/makefu/2configs/ham/automation/light_buttons.nix b/makefu/2configs/home/ham/automation/light_buttons.nix
index 32d134ecc..32d134ecc 100644
--- a/makefu/2configs/ham/automation/light_buttons.nix
+++ b/makefu/2configs/home/ham/automation/light_buttons.nix
diff --git a/makefu/2configs/ham/automation/moodlight.nix b/makefu/2configs/home/ham/automation/moodlight.nix
index d0e336851..d0e336851 100644
--- a/makefu/2configs/ham/automation/moodlight.nix
+++ b/makefu/2configs/home/ham/automation/moodlight.nix
diff --git a/makefu/2configs/ham/automation/urlaub.nix b/makefu/2configs/home/ham/automation/urlaub.nix
index a6b9be96f..a6b9be96f 100644
--- a/makefu/2configs/ham/automation/urlaub.nix
+++ b/makefu/2configs/home/ham/automation/urlaub.nix
diff --git a/makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix b/makefu/2configs/home/ham/automation/wohnzimmer_rf_fernbedienung.nix
index 4303cdfa5..4303cdfa5 100644
--- a/makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix
+++ b/makefu/2configs/home/ham/automation/wohnzimmer_rf_fernbedienung.nix
diff --git a/makefu/2configs/ham/calendar/nextcloud.nix b/makefu/2configs/home/ham/calendar/nextcloud.nix
index 80e51b348..80e51b348 100644
--- a/makefu/2configs/ham/calendar/nextcloud.nix
+++ b/makefu/2configs/home/ham/calendar/nextcloud.nix
diff --git a/makefu/2configs/ham/default.nix b/makefu/2configs/home/ham/default.nix
index d610fa5c1..e164b177f 100644
--- a/makefu/2configs/ham/default.nix
+++ b/makefu/2configs/home/ham/default.nix
@@ -7,10 +7,15 @@ let
prefix = (import ./lib).prefix;
firetv_stick = "192.168.1.24";
hassdir = "/var/lib/hass";
+ unstable = import <nixpkgs-unstable> {};
+
+
in {
imports = [
+ ./nginx.nix
./mqtt.nix
- ./zigbee2mqtt/default.nix
+ ./zigbee2mqtt
+ ./signal-rest
# hass config
./zigbee2mqtt/hass.nix
@@ -25,11 +30,13 @@ in {
./calendar/nextcloud.nix
+ ./automation/fenster_auf.nix
./automation/firetv_restart.nix
./automation/light_buttons.nix
./automation/wohnzimmer_rf_fernbedienung.nix
./automation/giesskanne.nix
- ./automation/urlaub.nix
+ #./automation/urlaub.nix
+ ./automation/moodlight.nix
./light/arbeitszimmer.nix
./light/schlafzimmer.nix
@@ -37,6 +44,15 @@ in {
];
services.home-assistant = {
+ package = (unstable.home-assistant.overrideAttrs (old: {
+ doInstallCheck = false;
+ })).override {
+ extraPackages = p: [
+ (p.callPackage ./deps/dwdwfsapi.nix {})