diff options
Diffstat (limited to 'makefu')
22 files changed, 235 insertions, 21 deletions
diff --git a/makefu/0tests/data/secrets/ebk-notify.yml b/makefu/0tests/data/secrets/ebk-notify.yml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/makefu/0tests/data/secrets/ebk-notify.yml diff --git a/makefu/1systems/gum/config.nix b/makefu/1systems/gum/config.nix index 8603d7696..7f7330ea6 100644 --- a/makefu/1systems/gum/config.nix +++ b/makefu/1systems/gum/config.nix @@ -137,6 +137,7 @@ in { <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/feed.euer.krebsco.de> <stockholm/makefu/2configs/deployment/boot-euer.nix> <stockholm/makefu/2configs/deployment/gecloudpad> <stockholm/makefu/2configs/deployment/docker/archiveteam-warrior.nix> diff --git a/makefu/1systems/x/config.nix b/makefu/1systems/x/config.nix index 4c479875e..ea92e3485 100644 --- a/makefu/1systems/x/config.nix +++ b/makefu/1systems/x/config.nix @@ -162,7 +162,11 @@ krebs.tinc.retiolum.connectTo = [ "omo" "prism" "nextgum" "wbob" ]; # hard dependency because otherwise the device will not be unlocked - boot.initrd.luks.devices = [ { name = "luksroot"; device = "/dev/sda2"; allowDiscards=true; }]; + boot.initrd.luks.devices.luksroot = + { + device = "/dev/sda2"; + allowDiscards = true; + }; # avoid full boot dir boot.loader.grub.configurationLimit = 3; diff --git a/makefu/2configs/default.nix b/makefu/2configs/default.nix index 0cbb5efe7..0219e9bb7 100644 --- a/makefu/2configs/default.nix +++ b/makefu/2configs/default.nix @@ -30,7 +30,7 @@ with import <stockholm/lib>; }; nix.trustedUsers = [ config.krebs.build.user.name ]; - boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages; nixpkgs.config.allowUnfreePredicate = pkg: packageName pkg == "unrar"; @@ -85,4 +85,8 @@ with import <stockholm/lib>; RuntimeMaxUse=128M ''; environment.pathsToLink = [ "/share" ]; + security.acme = { + email = "letsencrypt@syntax-fehler.de"; + acceptTerms = true; + }; } diff --git a/makefu/2configs/deployment/feed.euer.krebsco.de/default.nix b/makefu/2configs/deployment/feed.euer.krebsco.de/default.nix new file mode 100644 index 000000000..de072092b --- /dev/null +++ b/makefu/2configs/deployment/feed.euer.krebsco.de/default.nix @@ -0,0 +1,52 @@ +{ config, lib, pkgs, ... }: +let + filter-file = ./filter.yml; + pkg = with pkgs.python3Packages;buildPythonPackage rec { + version = "d16ce227dc68c9f60f6dd06e6835bab7cdfdf61b"; + pname = "ebk-notify"; + propagatedBuildInputs = [ + docopt + pyyaml + requests + beautifulsoup4 + dateutil + feedgen + ]; + src = pkgs.fetchgit { + url = "http://cgit.euer.krebsco.de/ebk-notify"; + rev = version; + sha256 = "15dlhp17alm01fw7mzdyh2z9zwz8psrs489lxs3hgg1p5wa0kzsp"; + }; + }; + domain = "feed.euer.krebsco.de"; + path = "/var/www/feed.euer.krebsco.de"; +in +{ + systemd.tmpfiles.rules = [ + "d ${path} nginx nogroup - -" + ]; + krebs.secret.files.ebknotify = { + path = "/etc/ebk-notify.yml"; + owner.name = "nginx"; + source-path = "${<secrets/ebk-notify.yml>}"; + }; + systemd.services.ebk-notify = { + startAt = "*:0/10"; + serviceConfig = { + User = "nginx"; # TODO better permission setting + # PrivateTmp = true; + ExecStart = "${pkg}/bin/ebk-notify --atom --outdir ${path} --config /etc/ebk-notify.yml --cache /tmp/ebk-cache.json --filter ${filter-file} --wait 30"; + }; + }; + systemd.timers.ebk-notify.timerConfig.RandomizedDelaySec = "120"; + services.nginx = { + virtualHosts."${domain}" = { + forceSSL = true; + enableACME = true; + locations."/" = { + root = path; + index = "root.atom"; + }; + }; + }; +} diff --git a/makefu/2configs/deployment/feed.euer.krebsco.de/filter.yml b/makefu/2configs/deployment/feed.euer.krebsco.de/filter.yml new file mode 100644 index 000000000..50058f32b --- /dev/null +++ b/makefu/2configs/deployment/feed.euer.krebsco.de/filter.yml @@ -0,0 +1,44 @@ +- name: Free Stuff by Category + zipcode: 70378 + distance: 2 + categoryId: 192 +- name: Kies + zipcode: 70378 + q: grobkies + distance: 2 +- name: pflanzkübel + zipcode: 70378 + q: Pflanzkübel + distance: 3 +- name: Ikea Samla + zipcode: 70378 + q: samla + distance: 5 +- name: Duplo + zipcode: 70378 + q: Duplo + distance: 10 +- name: Baby Gummistiefel + zipcode: 70378 + q: Gummistiefel + distance: 5 +- name: Werkbank + zipcode: 70378 + q: Werkbank + distance: 5 +- name: Stirnthermometer + zipcode: 70378 + q: Stirnthermometer + distance: 5 +- name: Ohrthermometer + zipcode: 70378 + q: Ohrthermometer + distance: 5 +- name: Fieberthermometer + zipcode: 70378 + q: Fieberthermometer + distance: 5 +- name: Einhell + zipcode: 70378 + q: Einhell + distance: 5 diff --git a/makefu/2configs/deployment/owncloud.nix b/makefu/2configs/deployment/owncloud.nix index ed3155efc..753fc963b 100644 --- a/makefu/2configs/deployment/owncloud.nix +++ b/makefu/2configs/deployment/owncloud.nix @@ -15,6 +15,7 @@ with lib; let # TODO: copy-paste from lass/2/websites/util.nix + nextcloud = nextcloud18; serveCloud = domains: let domain = head domains; @@ -23,9 +24,9 @@ let in { system.activationScripts."prepare-nextcloud-${domain}" = '' if test ! -e ${root} ;then - echo "copying latest ${pkgs.nextcloud.name} release to ${root}" + echo "copying latest ${nextcloud.name} release to ${root}" mkdir -p $(dirname "${root}") - cp -r ${pkgs.nextcloud} "${root}" + cp -r ${nextcloud} "${root}" chown -R nginx:nginx "${root}" chmod 770 "${root}" fi diff --git a/makefu/2configs/git/cgit-retiolum.nix b/makefu/2configs/git/cgit-retiolum.nix index 2a6e41ad8..639994674 100644 --- a/makefu/2configs/git/cgit-retiolum.nix +++ b/makefu/2configs/git/cgit-retiolum.nix @@ -18,6 +18,7 @@ let yacos-backend = { cgit.desc = "Yet Another Check-Out System"; }; + ebk-notify.cgit.desc = "Ebay Kleinanzeigen Notify"; }; krebs-repos = mapAttrs make-krebs-repo { diff --git a/makefu/2configs/gui/base.nix b/makefu/2configs/gui/base.nix index 5b46c7e2d..854fbfa52 100644 --- a/makefu/2configs/gui/base.nix +++ b/makefu/2configs/gui/base.nix @@ -32,8 +32,11 @@ in default = "awesome"; }; - displayManager.auto.enable = true; - displayManager.auto.user = mainUser; + displayManager.lightdm = { + enable = true; + autoLogin.enable = true; + autoLogin.user = mainUser; + }; desktopManager.xterm.enable = false; }; environment.systemPackages = [ pkgs.gnome3.defaultIconTheme ]; @@ -43,10 +46,9 @@ in i18n.consoleFont = "Lat2-Terminus16"; fonts = { - enableCoreFonts = true; enableFontDir = true; enableGhostscriptFonts = true; - fonts = [ pkgs.terminus_font ]; + fonts = [ pkgs.terminus_font pkgs.corefonts ]; }; users.users.${mainUser} = { diff --git a/makefu/2configs/gui/urxvtd.nix b/makefu/2configs/gui/urxvtd.nix index 286b87ab3..cb6c25840 100644 --- a/makefu/2configs/gui/urxvtd.nix +++ b/makefu/2configs/gui/urxvtd.nix @@ -10,7 +10,7 @@ in { serviceConfig = { SyslogIdentifier = "urxvtd"; ExecReload = "${pkgs.coreutils}/bin/echo NOP"; - ExecStart = "${pkgs.rxvt_unicode_with-plugins}/bin/urxvtd"; + ExecStart = "${pkgs.rxvt_unicode-with-plugins}/bin/urxvtd"; Restart = "always"; RestartSec = "2s"; StartLimitBurst = 0; diff --git a/makefu/2configs/gui/wbob-kiosk.nix b/makefu/2configs/gui/wbob-kiosk.nix index 6da1a37e7..5d409b8df 100644 --- a/makefu/2configs/gui/wbob-kiosk.nix +++ b/makefu/2configs/gui/wbob-kiosk.nix @@ -12,7 +12,7 @@ windowManager = lib.mkForce { awesome.enable = false; - default = "none"; + default = "xfce"; }; desktopManager.xfce = { extraSessionCommands = '' diff --git a/makefu/2configs/ham/androidtv/adbshell.nix b/makefu/2configs/ham/androidtv/adbshell.nix index f5b96c859..0fadeeb05 100644 --- a/makefu/2configs/ham/androidtv/adbshell.nix +++ b/makefu/2configs/ham/androidtv/adbshell.nix @@ -9,11 +9,11 @@ buildPythonPackage rec { pname = "adb_shell"; - version = "0.0.8"; + version = "0.1.1"; src = fetchPypi { inherit pname version; - sha256 = "01f9jinhfyjldg9793gz2i7gcd9xyx0a62r7a5ijssklcnn2rwnm"; + sha256 = "0a4mjrnw2lrhsakb1vjb5l6m3cr1ii7fibs7020nwv08cyx6pq6q"; }; propagatedBuildInputs = [ diff --git a/makefu/2configs/ham/androidtv/default.nix b/makefu/2configs/ham/androidtv/default.nix index 8f3bdc1f3..b7d397db4 100644 --- a/makefu/2configs/ham/androidtv/default.nix +++ b/makefu/2configs/ham/androidtv/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "androidtv"; - version = "0.0.34"; + version = "0.0.38"; src = fetchPypi { inherit pname version; - sha256 = "13078i2a9hglpv4ldycph5n5485np21vs6z2qn830hybmx8kfxsw"; + sha256 = "0ri1fnc63zashc667w2mlpb0c7ri3x6wnhnf54klb89v73pdnb8k"; }; propagatedBuildInputs = [ diff --git a/makefu/2configs/ham/androidtv/purepythonadb.nix b/makefu/2configs/ham/androidtv/purepythonadb.nix index d4e763b70..c9b1ff5e8 100644 --- a/makefu/2configs/ham/androidtv/purepythonadb.nix +++ b/makefu/2configs/ham/androidtv/purepythonadb.nix @@ -5,11 +5,11 @@ buildPythonPackage rec { pname = "pure-python-adb"; - version = "0.2.3.dev0"; + version = "0.2.2.dev0"; src = fetchPypi { inherit pname version; - sha256 = "88e5a4578435197799aa368fb1a5d87fe43e02a888cb7e85c2ad66173b383c89"; + sha256 = "1xigv6c8xyb4g852nr3smz0137rnp81jvlikza071y7rc6pdzwza"; }; meta = with lib; { @@ -18,4 +18,4 @@ buildPythonPackage rec { license = licenses.mit; # maintainers = [ maintainers. ]; }; -}
\ No newline at end of file +} diff --git a/makefu/2configs/ham/default.nix b/makefu/2configs/ham/default.nix index 53723299c..ddcf65b5a 100644 --- a/makefu/2configs/ham/default.nix +++ b/makefu/2configs/ham/default.nix @@ -14,6 +14,7 @@ let #flurlicht = import ./multi/flurlicht.nix; kurzzeitwecker = import ./multi/kurzzeitwecker.nix; firetv_restart = import ./multi/firetv_restart.nix; + the_playlist = import ./multi/the_playlist.nix; # switch # automation # binary_sensor @@ -49,6 +50,8 @@ in { logger = { default = "info"; }; + rest_command = {} + // the_playlist.rest_command; tts = [ { platform = "google_translate"; language = "de"; @@ -131,6 +134,7 @@ in { # https://www.home-assistant.io/cookbook/automation_for_rainy_days/ ] ++ ((import ./sensor/outside.nix) {inherit lib;}) + ++ the_playlist.sensor ++ zigbee.sensor ; frontend = { }; # light = flurlicht.light; @@ -140,6 +144,7 @@ in { ++ (import ./automation/firetv_restart.nix) ++ kurzzeitwecker.automation #++ flurlicht.automation + ++ the_playlist.automation ++ zigbee.automation; script = { } diff --git a/makefu/2configs/ham/multi/the_playlist.nix b/makefu/2configs/ham/multi/the_playlist.nix new file mode 100644 index 000000000..ad090938c --- /dev/null +++ b/makefu/2configs/ham/multi/the_playlist.nix @@ -0,0 +1,83 @@ +# Inputs: +# binary_sensor.playlist_button_good +# binary_sensor.playlist_button_bad + +# outputs +# rest_command +# automation +# sensor +{ + rest_command = { + good_song = { + url = "http://prism.r:8001/good"; + method = "POST"; + }; + bad_song = { + url = "http://prism.r:8001/skip"; + method = "POST"; + }; + }; + automation = [ + { + alias = "playlist song publish"; + trigger = { + #platform = "event"; + #event_data.entity_id = "sensor.the_playlist_song"; + platform = "state"; + entity_id = "sensor.the_playlist_song"; + }; + action = { + service = "mqtt.publish"; + data = { + topic = "/ham/the_playlist/song"; + payload_template = "{{ states.sensor.the_playlist_song.state }}"; + }; + }; + } + { + alias = "playlist upvote on button"; + trigger = { + platform = "state"; + entity_id = "binary_sensor.playlist_button_good"; + from = "off"; + to = "on"; + }; + action.service = "rest_command.good_song"; + } + { + alias = "playlist downvote on button"; + trigger = { + platform = "state"; + entity_id = "binary_sensor.playlist_button_bad"; + from = "off"; + to = "on"; + }; + action.service = "rest_command.bad_song"; + } + ]; + sensor = [ + { platform = "rest"; + name = "pl"; + resource = "http://prism.r:8001/current"; + scan_interval = 30; + value_template = "1"; + json_attributes = [ "name" "filename" "youtube" ]; + } + { platform = "template"; + sensors = { + the_playlist_song = { + friendly_name = "Current Song"; + value_template = ''{{ states.sensor.pl.attributes['name'] }}''; + }; + the_playlist_url = { + friendly_name = "Song Youtube URL"; + value_template = ''{{ states.sensor.pl.attributes['youtube'] }}''; + }; + the_playlist_filename = { + friendly_name = "Song Filename"; + value_template = ''{{ states.sensor.pl.attributes['filename'] }}''; + }; + }; + } + ]; +} diff --git a/makefu/2configs/home-manager/zsh.nix b/makefu/2configs/home-manager/zsh.nix index 4cd9becc7..1f4ceea6c 100644 --- a/makefu/2configs/home-manager/zsh.nix +++ b/makefu/2configs/home-manager/zsh.nix @@ -8,7 +8,8 @@ { # bat home-manager.users.makefu.home.packages = [ pkgs.bat ]; home-manager.users.makefu.programs.zsh.shellAliases = { - cat = "bat"; + cat = "bat --style=header,snip"; + mirage = "sxiv"; # only available when tools/extra-gui is in use catn = "${pkgs.coreutils}/bin/cat"; ncat = "${pkgs.coreutils}/bin/cat"; }; diff --git a/makefu/2configs/nur.nix b/makefu/2configs/nur.nix index 891144957..65cf836c4 100644 --- a/makefu/2configs/nur.nix +++ b/makefu/2configs/nur.nix @@ -1,8 +1,8 @@ { pkgs, ... }:{ nixpkgs.config.packageOverrides = pkgs: { nur = import (builtins.fetchTarball { - url = "https://github.com/nix-community/NUR/archive/7bfd0117b359d0f72d086ff7e1f0ba3aeaf8d91e.tar.gz"; - sha256 = "0gb2np1r2m9kkz1s374gxdqrwhkzx48iircy00y6mjr7h14rhyxk"; + url = "https://github.com/nix-community/NUR/archive/b7f7e072b3fa56aa0d86dfe3689cb13f0615bbbe.tar.gz"; + sha256 = "0slxxg3r460aa1rc83j0rklmr0i1hyzfbjy0kn30fyh1l3lqb22m"; } ){ inherit pkgs; diff --git a/makefu/2configs/share/omo.nix b/makefu/2configs/share/omo.nix index ed5066787..929e5c601 100644 --- a/makefu/2configs/share/omo.nix +++ b/makefu/2configs/share/omo.nix @@ -42,6 +42,18 @@ in { browseable = "yes"; "guest ok" = "yes"; }; + anime = { + path = "/media/cryptX/anime"; + "read only" = "yes"; + browseable = "yes"; + "guest ok" = "yes"; + }; + serien = { + path = "/media/cryptX/series"; + "read only" = "yes"; + browseable = "yes"; + "guest ok" = "yes"; + }; crypX-games = { path = "/media/cryptX/games"; "read only" = "yes"; diff --git a/makefu/2configs/tools/dev.nix b/makefu/2configs/tools/dev.nix index 43892ed2c..f184b5be5 100644 --- a/makefu/2configs/tools/dev.nix +++ b/makefu/2configs/tools/dev.nix @@ -21,6 +21,7 @@ brain whatsupnix nixpkgs-pytools + hydra-check # git-related git-preview tig diff --git a/makefu/2configs/tools/extra-gui.nix b/makefu/2configs/tools/extra-gui.nix index 7c01104a0..49b36a5d7 100644 --- a/makefu/2configs/tools/extra-gui.nix +++ b/makefu/2configs/tools/extra-gui.nix @@ -4,7 +4,7 @@ users.users.makefu.packages = with pkgs;[ # media gimp - mirage + # mirage - last time available in 19.09 inkscape libreoffice # skype diff --git a/makefu/2configs/tools/studio.nix b/makefu/2configs/tools/studio.nix index 2c8ca399d..0998a695e 100644 --- a/makefu/2configs/tools/studio.nix +++ b/makefu/2configs/tools/studio.nix @@ -1,6 +1,9 @@ { pkgs, ... }: { + nixpkgs.config.permittedInsecurePackages = [ + "openssl-1.0.2u" # required for studio-link + ]; users.users.makefu.packages = with pkgs; [ obs-studio studio-link |