diff options
Diffstat (limited to 'makefu')
64 files changed, 1311 insertions, 565 deletions
diff --git a/makefu/1systems/gum/config.nix b/makefu/1systems/gum/config.nix index 3b084d35a..8603d7696 100644 --- a/makefu/1systems/gum/config.nix +++ b/makefu/1systems/gum/config.nix @@ -21,11 +21,12 @@ in { ]; }; } + <stockholm/makefu/2configs/nur.nix> <stockholm/makefu/2configs/support-nixos.nix> <stockholm/makefu/2configs/home-manager> <stockholm/makefu/2configs/home-manager/cli.nix> # <stockholm/makefu/2configs/stats/client.nix> - <stockholm/makefu/2configs/stats/netdata-server.nix> + # <stockholm/makefu/2configs/stats/netdata-server.nix> <stockholm/makefu/2configs/headless.nix> <stockholm/makefu/2configs/smart-monitor.nix> @@ -89,8 +90,8 @@ in { # services # <stockholm/makefu/2configs/sabnzbd.nix> - <stockholm/makefu/2configs/mail/mail.euer.nix> - { krebs.exim.enable = mkForce false; } + # <stockholm/makefu/2configs/mail/mail.euer.nix> + { krebs.exim.enable = mkDefault true; } # sharing <stockholm/makefu/2configs/share/gum.nix> @@ -119,7 +120,7 @@ in { <stockholm/makefu/2configs/urlwatch> # Removed until move: avoid letsencrypt ban ### Web - #<stockholm/makefu/2configs/nginx/share-download.nix> + <stockholm/makefu/2configs/nginx/dl.euer.krebsco.de.nix> #<stockholm/makefu/2configs/nginx/euer.test.nix> <stockholm/makefu/2configs/nginx/euer.mon.nix> <stockholm/makefu/2configs/nginx/euer.wiki.nix> @@ -131,10 +132,14 @@ in { # <stockholm/makefu/2configs/nginx/gold.krebsco.de.nix> # <stockholm/makefu/2configs/nginx/iso.euer.nix> - <stockholm/makefu/2configs/deployment/photostore.krebsco.de.nix> + # <stockholm/makefu/2configs/deployment/photostore.krebsco.de.nix> <stockholm/makefu/2configs/deployment/graphs.nix> <stockholm/makefu/2configs/deployment/owncloud.nix> + <stockholm/makefu/2configs/deployment/board.euer.krebsco.de.nix> + <stockholm/makefu/2configs/deployment/rss.euer.krebsco.de.nix> <stockholm/makefu/2configs/deployment/boot-euer.nix> + <stockholm/makefu/2configs/deployment/gecloudpad> + <stockholm/makefu/2configs/deployment/docker/archiveteam-warrior.nix> <stockholm/makefu/2configs/shiori.nix> <stockholm/makefu/2configs/bgt/download.binaergewitter.de.nix> @@ -171,7 +176,8 @@ in { services.nginx.virtualHosts."cgit.euer.krebsco.de" = { forceSSL = true; enableACME = true; - locations."/".proxyPass = "http://cgit.gum.r"; + locations."/".proxyPass = "http://localhost/"; + locations."/".extraConfig = ''proxy_set_header Host cgit;''; }; krebs.build.host = config.krebs.hosts.gum; diff --git a/makefu/1systems/omo/config.nix b/makefu/1systems/omo/config.nix index 9b9b91a6f..37fb9128d 100644 --- a/makefu/1systems/omo/config.nix +++ b/makefu/1systems/omo/config.nix @@ -57,7 +57,7 @@ in { <stockholm/makefu/2configs/stats/telegraf> # <stockholm/makefu/2configs/stats/telegraf/europastats.nix> <stockholm/makefu/2configs/stats/telegraf/hamstats.nix> - <stockholm/makefu/2configs/stats/arafetch.nix> + # <stockholm/makefu/2configs/stats/arafetch.nix> # services { @@ -71,14 +71,9 @@ in { <stockholm/makefu/2configs/virtualisation/docker.nix> <stockholm/makefu/2configs/bluetooth-mpd.nix> - { - # Risikoübernahme - nixpkgs.config.permittedInsecurePackages = [ - "homeassistant-0.77.2" - ]; - } - <stockholm/makefu/2configs/homeautomation> - <stockholm/makefu/2configs/homeautomation/google-muell.nix> + <stockholm/makefu/2configs/ham> + <stockholm/makefu/2configs/ham/google-muell.nix> + <stockholm/makefu/2configs/ham/zigbee2mqtt> { makefu.ps3netsrv = { enable = true; @@ -90,7 +85,6 @@ in { makefu.mpd.musicDirectory = "/media/cryptX/music"; } - # security <stockholm/makefu/2configs/sshd-totp.nix> # <stockholm/makefu/2configs/logging/central-logging-client.nix> @@ -120,7 +114,7 @@ in { gid = (import <stockholm/lib>).genid "share"; members = [ "makefu" "misa" ]; }; - networking.firewall.trustedInterfaces = [ primaryInterface ]; + networking.firewall.trustedInterfaces = [ primaryInterface "docker0" ]; @@ -141,18 +135,18 @@ in { sed-plugin random-emoji ]; }; - krebs.Reaktor.reaktor-bgt = { - nickname = "Reaktor|bgt"; - workdir = "/var/lib/Reaktor/bgt"; - channels = [ "#binaergewitter" ]; - plugins = with pkgs.ReaktorPlugins; - [ titlebot - # stockholm-issue - nixos-version - shack-correct - sed-plugin - random-emoji ]; - }; + #krebs.Reaktor.reaktor-bgt = { + # nickname = "Reaktor|bgt"; + # workdir = "/var/lib/Reaktor/bgt"; + # channels = [ "#binaergewitter" ]; + # plugins = with pkgs.ReaktorPlugins; + # [ titlebot + # # stockholm-issue + # nixos-version + # shack-correct + # sed-plugin + # random-emoji ]; + #}; krebs.build.host = config.krebs.hosts.omo; } diff --git a/makefu/1systems/omo/hw/omo.nix b/makefu/1systems/omo/hw/omo.nix index 31db335bb..87af2a314 100644 --- a/makefu/1systems/omo/hw/omo.nix +++ b/makefu/1systems/omo/hw/omo.nix @@ -26,9 +26,10 @@ let # |_______| # cryptDisk0 = byid "ata-ST2000DM001-1CH164_Z240XTT6"; cryptDisk0 = byid "ata-ST8000DM004-2CX188_ZCT01PLV"; - cryptDisk1 = byid "ata-TP02000GB_TPW151006050068"; - cryptDisk2 = byid "ata-ST4000DM000-1F2168_Z303HVSG"; + cryptDisk1 = byid "ata-WDC_WD80EZAZ-11TDBA0_7SJPVLYW"; cryptDisk3 = byid "ata-ST8000DM004-2CX188_ZCT01SG4"; + cryptDisk2 = byid "ata-WDC_WD80EZAZ-11TDBA0_7SJPWT5W"; + # cryptDisk3 = byid "ata-WDC_WD20EARS-00MVWB0_WD-WMAZA1786907"; # all physical disks @@ -48,8 +49,8 @@ in { makefu.snapraid = { enable = true; - disks = map toMapper [ 0 2 3 ]; - parity = toMapper 1; + disks = map toMapper [ 0 1 3 ]; + parity = toMapper 2; # find -name PARITY_PARTITION }; fileSystems = let cryptMount = name: @@ -102,6 +103,8 @@ in { "firewire_ohci" "usb_storage" "usbhid" + "raid456" + "megaraid_sas" ]; kernelModules = [ "kvm-intel" ]; diff --git a/makefu/1systems/omo/source.nix b/makefu/1systems/omo/source.nix index 0d42cc9e2..05c17377f 100644 --- a/makefu/1systems/omo/source.nix +++ b/makefu/1systems/omo/source.nix @@ -1,4 +1,5 @@ { name="omo"; torrent = true; + unstable = true; } diff --git a/makefu/1systems/x/config.nix b/makefu/1systems/x/config.nix index ea18c68ac..4c479875e 100644 --- a/makefu/1systems/x/config.nix +++ b/makefu/1systems/x/config.nix @@ -58,7 +58,7 @@ # Krebs <stockholm/makefu/2configs/tinc/retiolum.nix> - <stockholm/makefu/2configs/share/gum-client.nix> + # <stockholm/makefu/2configs/share/gum-client.nix> # <stockholm/makefu/2configs/share/temp-share-samba.nix> @@ -103,6 +103,7 @@ # <stockholm/makefu/2configs/hw/malduino_elite.nix> <stockholm/makefu/2configs/hw/switch.nix> # <stockholm/makefu/2configs/hw/rad1o.nix> + <stockholm/makefu/2configs/hw/cc2531.nix> <stockholm/makefu/2configs/hw/smartcard.nix> <stockholm/makefu/2configs/hw/upower.nix> @@ -142,7 +143,6 @@ ]; }; } - ]; makefu.server.primary-itf = "wlp3s0"; diff --git a/makefu/2configs/bureautomation/automation/daily-news.nix b/makefu/2configs/bureautomation/automation/daily-news.nix new file mode 100644 index 000000000..2bafe4795 --- /dev/null +++ b/makefu/2configs/bureautomation/automation/daily-news.nix @@ -0,0 +1,20 @@ +[ + { + alias = "Daily news for Felix"; + trigger = { + platform = "time"; + at = "07:35:00"; + }; + action = + [ + { + service = "notify.telegrambot"; + data_template = { + title = "Daily News"; + # TODO + message = ""; + }; + } + ]; + } +] diff --git a/makefu/2configs/bureautomation/automation/quotes.nix b/makefu/2configs/bureautomation/automation/quotes.nix new file mode 100644 index 000000000..c4625ae30 --- /dev/null +++ b/makefu/2configs/bureautomation/automation/quotes.nix @@ -0,0 +1,4 @@ +# heiss +Lieber Freund, was für ein Sommer! Ich denke Sie mir im Zimmer sitzend, mehr Omelette als Mensch. +Sommer ist die Zeit, in der es zu heiß ist, um das zu tun, wozu es im Winter zu kalt war. + diff --git a/makefu/2configs/bureautomation/automation/schlechteluft.nix b/makefu/2configs/bureautomation/automation/schlechteluft.nix index 8787ee280..370334743 100644 --- a/makefu/2configs/bureautomation/automation/schlechteluft.nix +++ b/makefu/2configs/bureautomation/automation/schlechteluft.nix @@ -66,9 +66,6 @@ in [ language = "de"; }; } - { service = "notify.matrix_notify"; - data_template.message = "Schlechte Luft Alarm seit ${toString long_threshold} Minuten ({{states.sensor.air_quality.state_with_unit}})!"; - } ]; } ] diff --git a/makefu/2configs/bureautomation/camera/stuttgart.nix b/makefu/2configs/bureautomation/camera/stuttgart.nix new file mode 100644 index 000000000..78cbeb3e2 --- /dev/null +++ b/makefu/2configs/bureautomation/camera/stuttgart.nix @@ -0,0 +1,26 @@ + +let + cam = name: still_image_url: + { + inherit name still_image_url; + platform = "generic"; + }; +in [ + ( cam "Max-Eyth-See" https://www.wav-stuttgart.de/webcam/_/webcam1.jpg ) + ( cam "Wilhelma" http://webcam.wilhelma.de/webcam02/webcam02.jpg ) + ( cam "Marktplatz" https://webcam.stuttgart.de/wcam007/current.jpg ) + ( cam "Schoch Areal" https://webcam.stuttgart.de/wcam004/current.jpg ) + ( cam "Leuze" https://webcam.stuttgart.de/wcam005/current.jpg ) + ( cam "Straße Wilhelma" https://webcam.stuttgart.de/wcam006/current.jpg ) + ( cam "Fernsehturm 1" http://webcam.fernsehturmstuttgart.com/current.jpg ) + ( cam "Fernsehturm 2" http://webcam.fernsehturmstuttgart.com/current2.jpg ) + ( cam "Feuerbach Lemberg" http://www.regio7.de/handy/current.jpg ) + ( cam "Flughafen Stuttgart 1" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam2.jpg ) + ( cam "Flughafen Stuttgart 2" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam5.jpg ) + ( cam "Flughafen Stuttgart 3" http://webcam.flughafen-stuttgart.de/Flughafen_Stuttgart_Webcam7.jpg ) + ( cam "S21 1" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-03/s21-turm03.jpg ) + ( cam "S21 2" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-02/s21-turm-02.jpg ) + ( cam "S21 3" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Turm-01/s21-turm-01.jpg ) + ( cam "S21 4" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Jaegerstrasse-Nordkopf/s21-jaegerstrassse-nordkopf.jpg ) + ( cam "S21 5" http://webcam-bahnprojekt-stuttgart-ulm.de/S21-Bahndirektion-Nord/S21-Bundesbahndirektion-Nord.jpg ) +] diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix index c55bc1d14..3c1659558 100644 --- a/makefu/2configs/bureautomation/default.nix +++ b/makefu/2configs/bureautomation/default.nix @@ -11,6 +11,7 @@ in { imports = [ ./ota.nix ./comic-updater.nix + ./puppy-proxy.nix ]; networking.firewall.allowedTCPPorts = [ 8123 ]; state = [ "/var/lib/hass/known_devices.yaml" ]; @@ -33,13 +34,14 @@ in { ''; })).override { extraPackages = ps: with ps; [ - pkgs.pico2wave + pkgs.picotts python-forecastio jsonrpc-async jsonrpc-websocket mpd2 (callPackage ./deps/openwrt-luci-rpc.nix { }) ]; }; autoExtraComponents = true; config = { + discovery = {}; homeassistant = { name = "Bureautomation"; time_zone = "Europe/Berlin"; @@ -72,6 +74,8 @@ in { }; matrix = matrix.matrix; mqtt = { + discovery = true; + discovery_prefix = "homeassistant"; broker = "localhost"; port = 1883; client_id = "home-assistant"; @@ -124,7 +128,7 @@ in { frosch.script ten_hours.script mittagessen.script - standup.script + # standup.script ]; binary_sensor = (import ./binary_sensor/buttons.nix) @@ -145,7 +149,8 @@ in { camera = (import ./camera/verkehrskamera.nix) - ++ (import ./camera/comic.nix); + ++ (import ./camera/comic.nix) + ++ (import ./camera/stuttgart.nix); person = (import ./person/team.nix ); @@ -198,9 +203,10 @@ in { "switch.blitzdings" "switch.fernseher" "switch.feuer" + "switch.frosch_blasen" "light.status_felix" - "light.status_daniel" - "light.buslicht" + # "light.status_daniel" + # "light.buslicht" ]; team = [ "person.thorsten" @@ -212,6 +218,7 @@ in { "person.thierry" "person.frank" "person.emeka" + "person.tancrede" #"device_tracker.felix_phone" #"device_tracker.ecki_tablet" #"device_tracker.daniel_phone" @@ -228,6 +235,7 @@ in { "camera.Baumarkt" "camera.Autobahn_Heilbronn" "camera.Autobahn_Singen" + "camera.puppies" "camera.poorly_drawn_lines" ]; nachtlicht = [ @@ -264,7 +272,6 @@ in { outside = [ # "sensor.ditzingen_pm10" # "sensor.ditzingen_pm25" - "sensor.dark_sky_icon" "sensor.dark_sky_temperature" "sensor.dark_sky_humidity" "sensor.dark_sky_uv_index" @@ -282,7 +289,7 @@ in { ++ (import ./automation/hass-restart.nix) ++ ten_hours.automation ++ matrix.automation - ++ standup.automation + # ++ standup.automation ++ frosch.automation ++ mittagessen.automation; device_tracker = (import ./device_tracker/openwrt.nix ); diff --git a/makefu/2configs/bureautomation/deps/aresponses.nix b/makefu/2configs/bureautomation/deps/aresponses.nix new file mode 100644 index 000000000..9e64d2f65 --- /dev/null +++ b/makefu/2configs/bureautomation/deps/aresponses.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchPypi +# propagatedBuildInputs +, aiohttp +# buildInputs +, pytest +, pytest-asyncio +}: + +buildPythonPackage rec { + pname = "aresponses"; + version = "1.1.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "d1d6ef52b9a97142d106688cf9b112602ef3dc66f6368de8f91f47241d8cfc9c"; + }; + + propagatedBuildInputs = [ + aiohttp + ]; + + buildInputs = [ + pytest + pytest-asyncio + ]; + + # tests only distributed via git repository, not pypi + doCheck = false; + + meta = with lib; { + description = "Asyncio testing server"; + homepage = "https://github.com/circleup/aresponses"; + license = licenses.mit; + maintainers = [ maintainers.makefu ]; + }; +} diff --git a/makefu/2configs/bureautomation/multi/10h_timers.nix b/makefu/2configs/bureautomation/multi/10h_timers.nix index 73709e738..a30fb28b0 100644 --- a/makefu/2configs/bureautomation/multi/10h_timers.nix +++ b/makefu/2configs/bureautomation/multi/10h_timers.nix @@ -2,6 +2,8 @@ let persons = [ "frank" "daniel" "thorsten" "carsten" "ecki" "felix" "thierry" # tjeri + "emeka" + "tancrede" ]; random_zu_lange = name: ''{{ [ "Du musst jetzt endlich nach Hause gehen ${name}!", @@ -20,6 +22,7 @@ let random_announce = name: ''{{ [ "${name} is in da House", "Ahoi ${name}", + "Hallöchen Popöchen ${name}", "Moinsen ${name}", "Moin Moin ${name}", "Palim, Palim ${name}", @@ -55,7 +58,7 @@ let "Und es startet für ${name} wieder ein Tag im Paradies", "Lieber ${name}, Markus Keck hat dich bereits drei mal Versucht anzurufen!", "Trotz schwerer Männergrippe ist ${name} heute im Büro erschienen.", - "${name} kenne keine Parteien mehr, ${name} kenne nur noch Arbeitsplätze", + "${name} kennt keine Parteien mehr, ${name} kennt nur noch Arbeitsplätze", "${name}, Frage nicht, was dein Arbeitsplatz für dich tun kann. Frage, was du für deinen Arbeitsplatz tun kannst", "${name} läuft bis in den Jemen - für sein Unternehmen. ${name} schwimmt bis nach Birma - für seine Firma", "Der Cyberian ${name} ist gekommen um die Bahnwelt vor Cyber-Angriffen zu schützen", @@ -121,7 +124,6 @@ let { alias = "start ${name} 10h"; trigger = { platform = "state"; - # TODO: ecki entity_id = [ "person.${name}"]; from = "not_home"; to = "home"; @@ -129,13 +131,11 @@ let condition = { condition = "and"; conditions = [ - { - condition = "state"; + { condition = "state"; entity_id = "timer.${name}_10h"; state = "idle"; } - { - condition = "time"; + { condition = "time"; after = "06:00:00"; before = "12:00:00"; } @@ -146,8 +146,8 @@ let entity_id = [ "timer.${name}_10h" ] ; } { service = "homeassistant.turn_on"; - entity_id = [ - # "switch.fernseher" + |