From a19e4c630d187de61ccc12832ebf5e251204c315 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Thu, 1 Jun 2017 09:21:20 +0200
Subject: shared: move shack config to shack/

---
 shared/1systems/wolf.nix               | 17 +++++++-----
 shared/2configs/shack-drivedroid.nix   | 49 ----------------------------------
 shared/2configs/shack-nix-cacher.nix   | 28 -------------------
 shared/2configs/shack/drivedroid.nix   | 49 ++++++++++++++++++++++++++++++++++
 shared/2configs/shack/mqtt_sub.nix     | 34 +++++++++++++++++++++++
 shared/2configs/shack/muell_caller.nix | 41 ++++++++++++++++++++++++++++
 shared/2configs/shack/nix-cacher.nix   | 28 +++++++++++++++++++
 shared/2configs/shack/share.nix        | 38 ++++++++++++++++++++++++++
 shared/2configs/share-shack.nix        | 38 --------------------------
 9 files changed, 201 insertions(+), 121 deletions(-)
 delete mode 100644 shared/2configs/shack-drivedroid.nix
 delete mode 100644 shared/2configs/shack-nix-cacher.nix
 create mode 100644 shared/2configs/shack/drivedroid.nix
 create mode 100644 shared/2configs/shack/mqtt_sub.nix
 create mode 100644 shared/2configs/shack/muell_caller.nix
 create mode 100644 shared/2configs/shack/nix-cacher.nix
 create mode 100644 shared/2configs/shack/share.nix
 delete mode 100644 shared/2configs/share-shack.nix

diff --git a/shared/1systems/wolf.nix b/shared/1systems/wolf.nix
index c6cc2f8..9acc589 100644
--- a/shared/1systems/wolf.nix
+++ b/shared/1systems/wolf.nix
@@ -6,16 +6,21 @@ in
   imports = [
     ../.
     <nixpkgs/nixos/modules/profiles/qemu-guest.nix>
-    ../2configs/cgit-mirror.nix
     ../2configs/collectd-base.nix
+    ../2configs/shack/share.nix
+    ../2configs/central-stats-client.nix
+    ../2configs/save-diskspace.nix
+
+    ../2configs/cgit-mirror.nix
     ../2configs/graphite.nix
     ../2configs/repo-sync.nix
-    ../2configs/shack-drivedroid.nix
-    ../2configs/shack-nix-cacher.nix
     ../2configs/shared-buildbot.nix
-    ../2configs/share-shack.nix
-    ../2configs/central-stats-client.nix
-    ../2configs/save-diskspace.nix
+    ../2configs/shack/drivedroid.nix
+    ../2configs/shack/nix-cacher.nix
+
+    ../2configs/shack/mqtt_sub.nix
+    ../2configs/shack/muell_caller.nix
+
   ];
   # use your own binary cache, fallback use cache.nixos.org (which is used by
   # apt-cacher-ng in first place)
diff --git a/shared/2configs/shack-drivedroid.nix b/shared/2configs/shack-drivedroid.nix
deleted file mode 100644
index 12e4a39..0000000
--- a/shared/2configs/shack-drivedroid.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ config, pkgs, ... }:
-with import <stockholm/lib>;
-let
-  root = "/var/srv/drivedroid";
-in
-{
-  environment.systemPackages = [ pkgs.drivedroid-gen-repo ];
-
-  services.nginx = {
-    enable = mkDefault true;
-    virtualHosts.shack-drivedroid = {
-      serverAliases = [
-        "drivedroid.shack"
-      ];
-      # TODO: prepare this somehow
-      locations."/".extraConfig = ''
-        root ${root};
-        index main.json;
-      '';
-    };
-  };
-
-  systemd.services.drivedroid-gen-repo = {
-    description = "generates drivedroid repo file";
-    path = [
-      pkgs.coreutils
-      pkgs.drivedroid-gen-repo
-      pkgs.inotify-tools
-    ];
-    wantedBy = [ "multi-user.target" ];
-
-    serviceConfig = {
-      Type = "simple";
-      Restart = "always";
-      ExecStartPre = pkgs.writeDash "prepare-drivedroid-gen-repo" ''
-        mkdir -p ${root}/repos
-      '';
-      ExecStart = pkgs.writeDash "start-drivedroid-gen-repo" ''
-        set -efu
-        cd ${root}
-        while sleep 60; do
-          if inotifywait -r .; then
-            drivedroid-gen-repo repos > main.json
-          fi
-        done
-      '';
-    };
-  };
-}
diff --git a/shared/2configs/shack-nix-cacher.nix b/shared/2configs/shack-nix-cacher.nix
deleted file mode 100644
index 4fcbf3a..0000000
--- a/shared/2configs/shack-nix-cacher.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ config, pkgs, ... }:
-with import <stockholm/lib>;
-let
-  cfg = config.krebs.apt-cacher-ng;
-in
-{
-  krebs.apt-cacher-ng = {
-    enable = true;
-    port = 3142;
-    bindAddress = "localhost";
-    cacheExpiration = 30;
-  };
-
-  services.nginx = {
-    enable = mkDefault true;
-    virtualHosts.shack-nix-cacher = {
-      serverAliases = [
-        "acng.shack"
-      ];
-      locations."/".extraConfig = ''
-        proxy_set_header Host $host;
-        proxy_set_header X-Real-IP $remote_addr;
-        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
-        proxy_pass http://localhost:${toString cfg.port}/;
-      '';
-    };
-  };
-}
diff --git a/shared/2configs/shack/drivedroid.nix b/shared/2configs/shack/drivedroid.nix
new file mode 100644
index 0000000..12e4a39
--- /dev/null
+++ b/shared/2configs/shack/drivedroid.nix
@@ -0,0 +1,49 @@
+{ config, pkgs, ... }:
+with import <stockholm/lib>;
+let
+  root = "/var/srv/drivedroid";
+in
+{
+  environment.systemPackages = [ pkgs.drivedroid-gen-repo ];
+
+  services.nginx = {
+    enable = mkDefault true;
+    virtualHosts.shack-drivedroid = {
+      serverAliases = [
+        "drivedroid.shack"
+      ];
+      # TODO: prepare this somehow
+      locations."/".extraConfig = ''
+        root ${root};
+        index main.json;
+      '';
+    };
+  };
+
+  systemd.services.drivedroid-gen-repo = {
+    description = "generates drivedroid repo file";
+    path = [
+      pkgs.coreutils
+      pkgs.drivedroid-gen-repo
+      pkgs.inotify-tools
+    ];
+    wantedBy = [ "multi-user.target" ];
+
+    serviceConfig = {
+      Type = "simple";
+      Restart = "always";
+      ExecStartPre = pkgs.writeDash "prepare-drivedroid-gen-repo" ''
+        mkdir -p ${root}/repos
+      '';
+      ExecStart = pkgs.writeDash "start-drivedroid-gen-repo" ''
+        set -efu
+        cd ${root}
+        while sleep 60; do
+          if inotifywait -r .; then
+            drivedroid-gen-repo repos > main.json
+          fi
+        done
+      '';
+    };
+  };
+}
diff --git a/shared/2configs/shack/mqtt_sub.nix b/shared/2configs/shack/mqtt_sub.nix
new file mode 100644
index 0000000..dafa06b
--- /dev/null
+++ b/shared/2configs/shack/mqtt_sub.nix
@@ -0,0 +1,34 @@
+{ config, lib, pkgs, ... }:
+
+with import <stockholm/lib>;
+let
+  pkg = pkgs.stdenv.mkDerivation {
+    name = "mqtt2graphite-2017-05-29";
+    src = pkgs.fetchgit {
+      url = "https://github.com/shackspace/mqtt2graphite/";
+      rev = "8c060e6";
+      sha256 = "06x7a1j6sfyvvdxg0366fcslhn478anqh4m5hljyf0z29knvz7pg";
+    };
+    buildInputs = [
+      (pkgs.python35.withPackages (pythonPackages: with pythonPackages; [
+        docopt
+        paho-mqtt
+      ]))
+    ];
+    installPhase = ''
+      install -m755 -D sub.py  $out/bin/sub
+      install -m755 -D sub2.py  $out/bin/sub-new
+    '';
+  };
+in {
+  systemd.services.mqtt_sub  = {
+    description = "subscribe to mqtt, send to graphite";
+    # after = [ (lib.optional config.services.mosqitto.enable "mosquitto.service") ];
+    wantedBy = [ "multi-user.target"  ];
+    serviceConfig = {
+      User = "nobody";
+      ExecStart = "${pkg}/bin/sub-new";
+      PrivateTmp = true;
+    };
+  };
+}
diff --git a/shared/2configs/shack/muell_caller.nix b/shared/2configs/shack/muell_caller.nix
new file mode 100644
index 0000000..613ed2e
--- /dev/null
+++ b/shared/2configs/shack/muell_caller.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+with import <stockholm/lib>;
+let
+  pkg = pkgs.stdenv.mkDerivation {
+    name = "muell_caller-2017-06-01";
+    src = pkgs.fetchgit {
+      url = "https://github.com/shackspace/muell_caller/";
+      rev = "bbd4009";
+      sha256 = "06xaa1j6sfyvvdxg0366fcslhn478anqh4m5hljyf0z29knvz7pg";
+    };
+    buildInputs = [
+      (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
+        docopt
+        requests
+        paramiko
+        python
+      ]))
+    ];
+    installPhase = ''
+      install -m755 -D call.py  $out/bin/call-muell
+    '';
+  };
+  cfg = "${toString <secrets>}/tell.json";
+in {
+  systemd.services.mqtt_sub  = {
+    description = "call muell";
+    wantedBy = [ "multi-user.target" ];
+    serviceConfig = {
+      User = "nobody"; # TODO separate user
+      ExecStartPre = writeDash "call-muell-pre" ''
+        cp ${cfg} /tmp/tell.json
+        chown nobody /tmp/tell.json
+      '';
+      ExecStart = "${pkg}/bin/call-muell --cfg /tmp/tell.json --mode mpd loop 60";
+      Restart = "always";
+      PrivateTmp = true;
+      PermissionsStartOnly = true;
+    };
+  };
+}
diff --git a/shared/2configs/shack/nix-cacher.nix b/shared/2configs/shack/nix-cacher.nix
new file mode 100644
index 0000000..4fcbf3a
--- /dev/null
+++ b/shared/2configs/shack/nix-cacher.nix
@@ -0,0 +1,28 @@
+{ config, pkgs, ... }:
+with import <stockholm/lib>;
+let
+  cfg = config.krebs.apt-cacher-ng;
+in
+{
+  krebs.apt-cacher-ng = {
+    enable = true;
+    port = 3142;
+    bindAddress = "localhost";
+    cacheExpiration = 30;
+  };
+
+  services.nginx = {
+    enable = mkDefault true;
+    virtualHosts.shack-nix-cacher = {
+      serverAliases = [
+        "acng.shack"
+      ];
+      locations."/".extraConfig = ''
+        proxy_set_header Host $host;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        proxy_pass http://localhost:${toString cfg.port}/;
+      '';
+    };
+  };
+}
diff --git a/shared/2configs/shack/share.nix b/shared/2configs/shack/share.nix
new file mode 100644
index 0000000..247b9ee
--- /dev/null
+++ b/shared/2configs/shack/share.nix
@@ -0,0 +1,38 @@
+{config, ... }:{
+  users.users.smbguest = {
+    name = "smbguest";
+    uid = config.ids.uids.smbguest;
+    group = "share";
+    description = "smb guest user";
+    home = "/home/share";
+    createHome = true;
+  };
+
+  networking.firewall.allowedTCPPorts = [
+    139 445 # samba
+  ];
+
+  networking.firewall.allowedUDPPorts = [
+    137 138
+  ];
+  services.samba = {
+    enable = true;
+    shares = {
+      share-home = {
+        path = "/home/share/";
+        "read only" = "no";
+        browseable = "yes";
+        "guest ok" = "yes";
+      };
+    };
+    extraConfig = ''
+      guest account = smbguest
+      map to guest = bad user
+      # disable printing
+      load printers = no
+      printing = bsd
+      printcap name = /dev/null
+      disable spoolss = yes
+    '';
+  };
+}
diff --git a/shared/2configs/share-shack.nix b/shared/2configs/share-shack.nix
deleted file mode 100644
index 247b9ee..0000000
--- a/shared/2configs/share-shack.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{config, ... }:{
-  users.users.smbguest = {
-    name = "smbguest";
-    uid = config.ids.uids.smbguest;
-    group = "share";
-    description = "smb guest user";
-    home = "/home/share";
-    createHome = true;
-  };
-
-  networking.firewall.allowedTCPPorts = [
-    139 445 # samba
-  ];
-
-  networking.firewall.allowedUDPPorts = [
-    137 138
-  ];
-  services.samba = {
-    enable = true;
-    shares = {
-      share-home = {
-        path = "/home/share/";
-        "read only" = "no";
-        browseable = "yes";
-        "guest ok" = "yes";
-      };
-    };
-    extraConfig = ''
-      guest account = smbguest
-      map to guest = bad user
-      # disable printing
-      load printers = no
-      printing = bsd
-      printcap name = /dev/null
-      disable spoolss = yes
-    '';
-  };
-}
-- 
cgit v1.2.3