summaryrefslogtreecommitdiffstats
path: root/makefu
diff options
context:
space:
mode:
Diffstat (limited to 'makefu')
-rw-r--r--makefu/1systems/pnp.nix4
-rw-r--r--makefu/1systems/pornocauster.nix2
-rw-r--r--makefu/1systems/wry.nix4
-rw-r--r--makefu/2configs/Reaktor/random-emoji.nix25
-rw-r--r--makefu/2configs/Reaktor/random-emoji.sh5
-rw-r--r--makefu/2configs/Reaktor/shack-correct.nix20
-rw-r--r--makefu/2configs/Reaktor/shack-correct.sh6
-rw-r--r--makefu/2configs/git/cgit-retiolum.nix1
-rw-r--r--makefu/3modules/tinc_graphs.nix29
-rw-r--r--makefu/5pkgs/tinc_graphs/default.nix4
10 files changed, 85 insertions, 15 deletions
diff --git a/makefu/1systems/pnp.nix b/makefu/1systems/pnp.nix
index 7698ea14..e7ceca60 100644
--- a/makefu/1systems/pnp.nix
+++ b/makefu/1systems/pnp.nix
@@ -23,7 +23,9 @@
## \/ are only plugins, must enable Reaktor explicitly
../2configs/Reaktor/stockholmLentil.nix
../2configs/Reaktor/simpleExtend.nix
+ ../2configs/Reaktor/random-emoji.nix
../2configs/Reaktor/titlebot.nix
+ ../2configs/Reaktor/shack-correct.nix
../2configs/exim-retiolum.nix
../2configs/urlwatch.nix
@@ -34,7 +36,7 @@
krebs.Reaktor.debug = true;
krebs.Reaktor.nickname = "Reaktor|bot";
krebs.Reaktor.extraEnviron = {
- REAKTOR_CHANNELS = "#krebs,#binaergewitter";
+ REAKTOR_CHANNELS = "#krebs,#binaergewitter,#shackspace";
};
krebs.build.host = config.krebs.hosts.pnp;
diff --git a/makefu/1systems/pornocauster.nix b/makefu/1systems/pornocauster.nix
index d43f89a0..d208e511 100644
--- a/makefu/1systems/pornocauster.nix
+++ b/makefu/1systems/pornocauster.nix
@@ -42,7 +42,7 @@
krebs.build.user = config.krebs.users.makefu;
krebs.build.target = "root@pornocauster";
-
+ environment.systemPackages = with pkgs;[ get];
networking.firewall.allowedTCPPorts = [
25
];
diff --git a/makefu/1systems/wry.nix b/makefu/1systems/wry.nix
index 9368f1ae..819a208a 100644
--- a/makefu/1systems/wry.nix
+++ b/makefu/1systems/wry.nix
@@ -32,8 +32,8 @@ in {
makefu.tinc_graphs.enable = true;
makefu.tinc_graphs.krebsNginx = {
enable = true;
- hostnames_complete = [ "graphs.wry" "graphs.wry.retiolum" ];
- # TODO: remove hard-coded path
+ # TODO: remove hard-coded hostname
+ hostnames_complete = [ "graphs.wry" ];
hostnames_anonymous = [ "graphs.krebsco.de" ];
};
networking.firewall.allowedTCPPorts = [80];
diff --git a/makefu/2configs/Reaktor/random-emoji.nix b/makefu/2configs/Reaktor/random-emoji.nix
new file mode 100644
index 00000000..b2d99b36
--- /dev/null
+++ b/makefu/2configs/Reaktor/random-emoji.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with pkgs;
+let
+ rpkg = pkgs.substituteAll( {
+ name="random-emoji";
+ dir= "bin";
+ isExecutable=true;
+ src= ./random-emoji.sh;
+ });
+ rpkg-path = lib.makeSearchPath "bin" (with pkgs; [
+ coreutils
+ gnused
+ gnugrep
+ curl]);
+in {
+ # TODO: make origin a variable, <- module is generic enough to handle different origins, not only stockholm
+ krebs.Reaktor.extraConfig = ''
+ public_commands.insert(0,{
+ 'capname' : "emoji",
+ 'pattern' : indirect_pattern.format("emoji"),
+ 'argv' : ["${rpkg}/bin/random-emoji"],
+ 'env' : { 'PATH':'${rpkg-path}' } })
+ '';
+}
diff --git a/makefu/2configs/Reaktor/random-emoji.sh b/makefu/2configs/Reaktor/random-emoji.sh
new file mode 100644
index 00000000..913d615b
--- /dev/null
+++ b/makefu/2configs/Reaktor/random-emoji.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+curl http://emojicons.com/random -s | \
+ grep data-text | \
+ sed -n 's/.*>\(.*\)<\/textarea>/\1/p' | \
+ head -n 1
diff --git a/makefu/2configs/Reaktor/shack-correct.nix b/makefu/2configs/Reaktor/shack-correct.nix
new file mode 100644
index 00000000..8f30807f
--- /dev/null
+++ b/makefu/2configs/Reaktor/shack-correct.nix
@@ -0,0 +1,20 @@
+{ config, lib, pkgs, ... }:
+
+with pkgs;
+let
+ script = pkgs.substituteAll ( {
+ name="shack-correct";
+ isExecutable=true;
+ dir = "";
+ src = ./shack-correct.sh;
+ });
+in {
+ krebs.Reaktor.extraConfig = ''
+ public_commands.insert(0,{
+ 'capname' : "shack-correct",
+ 'pattern' : '^(?P<args>.*Shack.*)$$',
+ 'argv' : ["${script}"],
+ 'env' : { }})
+ '';
+}
+
diff --git a/makefu/2configs/Reaktor/shack-correct.sh b/makefu/2configs/Reaktor/shack-correct.sh
new file mode 100644
index 00000000..3b4d04f8
--- /dev/null
+++ b/makefu/2configs/Reaktor/shack-correct.sh
@@ -0,0 +1,6 @@
+#! /bin/sh
+set -eu
+printf "Sie meinten wohl \""
+echo -n $@ | sed 's/Shack/shack/g'
+echo "\""
+echo "${_from}--"
diff --git a/makefu/2configs/git/cgit-retiolum.nix b/makefu/2configs/git/cgit-retiolum.nix
index 40b51e60..1277a014 100644
--- a/makefu/2configs/git/cgit-retiolum.nix
+++ b/makefu/2configs/git/cgit-retiolum.nix
@@ -29,6 +29,7 @@ let
hooks = {
post-receive = git.irc-announce {
nick = config.networking.hostName;
+ verbose = config.krebs.build.host.name == "pnp";
channel = "#retiolum";
# TODO remove the hardcoded hostname
server = "cd.retiolum";
diff --git a/makefu/3modules/tinc_graphs.nix b/makefu/3modules/tinc_graphs.nix
index 10f1b23a..62d60752 100644
--- a/makefu/3modules/tinc_graphs.nix
+++ b/makefu/3modules/tinc_graphs.nix
@@ -24,21 +24,22 @@ let
# configure krebs nginx to serve the new graphs
enable = mkEnableOption "tinc_graphs nginx";
- hostnames_complete = {
+ hostnames_complete = mkOption {
#TODO: this is not a secure way to serve these graphs,better listen to
# the correct interface, krebs.nginx does not support this yet
type = with types; listOf str;
description = "hostname which serves complete graphs";
- default = config.krebs.build.host.name;
+ default = [ "graphs.${config.krebs.build.host.name}" ];
};
- hostnames_anonymous = {
+ hostnames_anonymous = mkOption {
type = with types; listOf str;
description = ''
hostname which serves anonymous graphs
must be different from hostname_complete
'';
+ default = [ "anongraphs.${config.krebs.build.host.name}" ];
};
};
@@ -63,29 +64,38 @@ let
environment.systemPackages = [ pkgs.tinc_graphs];
systemd.timers.tinc_graphs = {
description = "Build Tinc Graphs via via timer";
-
+ wantedBy = [ "timers.target"];
timerConfig = cfg.timerConfig;
};
systemd.services.tinc_graphs = {
description = "Build Tinc Graphs";
- wantedBy = [ "multi-user.target" ];
- after = [ "network.target" ];
environment = {
EXTERNAL_FOLDER = external_dir;
INTERNAL_FOLDER = internal_dir;
GEODB = cfg.geodbPath;
+ TINC_HOSTPATH=config.krebs.retiolum.hosts;
};
restartIfChanged = true;
serviceConfig = {
Type = "simple";
+
ExecStartPre = pkgs.writeScript "tinc_graphs-init" ''
#!/bin/sh
mkdir -p "${external_dir}" "${internal_dir}"
'';
+
ExecStart = "${pkgs.tinc_graphs}/bin/all-the-graphs";
- User = "root"; # tinc cannot be queried as user,
+
+ ExecStartPost = pkgs.writeScript "tinc_graphs-post" ''
+ #!/bin/sh
+ # TODO: this may break if workingDir is set to something stupid
+ # this is needed because homedir is created with 700
+ chmod 755 "${cfg.workingDir}"
+ '';
+
+ User = "root"; # tinc cannot be queried as user,
# seems to be a tinc-pre issue
privateTmp = true;
};
@@ -93,7 +103,7 @@ let
users.extraUsers.tinc_graphs = {
uid = 3925439960; #genid tinc_graphs
- home = "/var/cache/tinc_graphs";
+ home = "/var/spool/tinc_graphs";
createHome = true;
};
@@ -102,15 +112,16 @@ let
server-names = cfg.krebsNginx.hostnames_complete;
locations = [
(nameValuePair "/" ''
+ autoindex on;
root ${internal_dir};
'')
];
};
tinc_graphs_anonymous = {
server-names = cfg.krebsNginx.hostnames_anonymous;
- #server-names = [ "dick" ];
locations = [
(nameValuePair "/" ''
+ autoindex on;
root ${external_dir};
'')
];
diff --git a/makefu/5pkgs/tinc_graphs/default.nix b/makefu/5pkgs/tinc_graphs/default.nix
index 95f096a3..5bc97415 100644
--- a/makefu/5pkgs/tinc_graphs/default.nix
+++ b/makefu/5pkgs/tinc_graphs/default.nix
@@ -2,14 +2,14 @@
python3Packages.buildPythonPackage rec {
name = "tinc_graphs-${version}";
- version = "0.2.9";
+ version = "0.2.12";
propagatedBuildInputs = with pkgs;[
python3Packages.pygeoip
## ${geolite-legacy}/share/GeoIP/GeoIPCity.dat
];
src = fetchurl {
url = "https://pypi.python.org/packages/source/t/tinc_graphs/tinc_graphs-${version}.tar.gz";
- sha256 = "0fm063qhjlb8g1xahwcqqrd2dxgd38wwi55rhl1k5chr7zajsqfz";
+ sha256 = "03jxvxahpcbpnz4668x32b629dwaaz5jcjkyaijm0zzpgcn4cbgp";
};
preFixup = with pkgs;''
wrapProgram $out/bin/build-graphs --prefix PATH : "$out/bin"