summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/2configs/ergo.nix13
-rw-r--r--krebs/2configs/wiki.nix4
-rw-r--r--krebs/3modules/default.nix2
-rw-r--r--krebs/3modules/ergo.nix136
-rw-r--r--krebs/3modules/external/default.nix1
-rw-r--r--krebs/3modules/external/mic92.nix93
-rw-r--r--krebs/3modules/gollum.nix112
-rw-r--r--krebs/3modules/jeschli/default.nix1
-rw-r--r--krebs/5pkgs/haskell/flameshot-once.nix11
-rw-r--r--krebs/5pkgs/simple/flameshot-once/profile.nix4
-rw-r--r--krebs/5pkgs/simple/realwallpaper/default.nix3
-rw-r--r--krebs/nixpkgs-unstable.json8
-rw-r--r--krebs/nixpkgs.json8
-rw-r--r--lass/2configs/radio.nix35
14 files changed, 265 insertions, 166 deletions
diff --git a/krebs/2configs/ergo.nix b/krebs/2configs/ergo.nix
new file mode 100644
index 000000000..db0bc5748
--- /dev/null
+++ b/krebs/2configs/ergo.nix
@@ -0,0 +1,13 @@
+{ config, pkgs, ... }:
+
+{
+ networking.firewall.allowedTCPPorts = [
+ 6667
+ ];
+
+ krebs.ergo = {
+ enable = true;
+ };
+}
+
+
diff --git a/krebs/2configs/wiki.nix b/krebs/2configs/wiki.nix
index e4f05a6e6..7624c2058 100644
--- a/krebs/2configs/wiki.nix
+++ b/krebs/2configs/wiki.nix
@@ -27,7 +27,7 @@ let
in
{
- krebs.gollum = {
+ services.gollum = {
enable = true;
extraConfig = ''
Gollum::Hook.register(:post_commit, :hook_id) do |committer, sha1|
@@ -36,6 +36,8 @@ in
'';
};
+ systemd.services.gollum.environment.LC_ALL = "en_US.UTF-8";
+
networking.firewall.allowedTCPPorts = [ 80 ];
services.nginx = {
enable = true;
diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix
index e75afad1d..30ca82b97 100644
--- a/krebs/3modules/default.nix
+++ b/krebs/3modules/default.nix
@@ -20,6 +20,7 @@ let
./ci.nix
./current.nix
./dns.nix
+ ./ergo.nix
./exim.nix
./exim-retiolum.nix
./exim-smarthost.nix
@@ -28,7 +29,6 @@ let
./github-known-hosts.nix
./git.nix
./go.nix
- ./gollum.nix
./hidden-ssh.nix
./hosts.nix
./htgen.nix
diff --git a/krebs/3modules/ergo.nix b/krebs/3modules/ergo.nix
new file mode 100644
index 000000000..14f85c4d7
--- /dev/null
+++ b/krebs/3modules/ergo.nix
@@ -0,0 +1,136 @@
+{ config, lib, pkgs, ... }:
+
+let
+ inherit (lib) mkEnableOption mkIf mkOption types;
+ inherit (pkgs) coreutils ergo;
+ cfg = config.krebs.ergo;
+
+ configFile = pkgs.writeText "ergo.conf" (builtins.toJSON cfg.config);
+in
+
+{
+
+ ###### interface
+
+ options = {
+
+ krebs.ergo = {
+
+ enable = mkEnableOption "Ergo IRC daemon";
+
+ config = mkOption {
+ type = (pkgs.formats.json {}).type;
+ description = ''
+ Ergo IRC daemon configuration file.
+ '';
+ default = {
+ network = {
+ name = "krebstest";
+ };
+ server = {
+ name = "${config.networking.hostName}.r";
+ listeners = {
+ ":6667" = {};
+ };
+ casemapping = "permissive";
+ enforce-utf = true;
+ lookup-hostnames = false;
+ ip-cloaking = {
+ enabled = false;
+ };
+ forward-confirm-hostnames = false;
+ check-ident = false;
+ relaymsg = {
+ enabled = false;
+ };
+ max-sendq = "1M";
+ ip-limits = {
+ count = false;
+ throttle = false;
+ };
+ };
+ datastore = {
+ path = "${cfg.statedir}/ircd.db";
+ };
+ accounts = {
+ authentication-enabled = true;
+ registration = {
+ enabled = true;
+ email-verification = {
+ enabled = false;
+ };
+ };
+ };
+ channels = {
+ default-modes = "+nt";
+ };
+ limits = {
+ nicklen = 32;
+ identlen = 20;
+ channellen = 64;
+ awaylen = 390;
+ kicklen = 390;
+ topiclen = 390;
+ };
+ };
+ };
+
+ statedir = mkOption {
+ type = types.path;
+ default = "/var/lib/ergo";
+ description = ''
+ Location of the state directory of ergo.
+ '';
+ };
+
+ user = mkOption {
+ type = types.str;
+ default = "ergo";
+ description = ''
+ Ergo IRC daemon user.
+ '';
+ };
+
+ group = mkOption {
+ type = types.str;
+ default = "ergo";
+ description = ''
+ Ergo IRC daemon group.
+ '';
+ };
+
+ };
+
+ };
+
+
+ ###### implementation
+
+ config = mkIf cfg.enable ({
+ users.users.${cfg.user} = {
+ description = "Ergo IRC daemon user";
+ uid = config.ids.uids.ircd;
+ group = cfg.group;
+ };
+
+ users.groups.${cfg.group} = {
+ gid = config.ids.gids.ircd;
+ };
+
+ systemd.tmpfiles.rules = [
+ "d ${cfg.statedir} - ${cfg.user} ${cfg.group} - -"
+ ];
+
+ systemd.services.ergo = {
+ description = "Ergo IRC daemon";
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ ExecStartPre = "${ergo}/bin/ergo initdb --conf ${configFile}";
+ ExecStart = "${ergo}/bin/ergo run --conf ${configFile}";
+ Group = cfg.group;
+ User = cfg.user;
+ };
+ };
+
+ });
+}
diff --git a/krebs/3modules/external/default.nix b/krebs/3modules/external/default.nix
index 31cd9e2c3..8e6fa225a 100644
--- a/krebs/3modules/external/default.nix
+++ b/krebs/3modules/external/default.nix
@@ -701,6 +701,7 @@ in {
1T6DILDF71H92PNylujKSPA0CKI160xJ61Xy/T6MYl5u0+RblAgYr77o5HJwmXCe
jFrCu3SKUIlJWYHWE8yNoR+VVYeXakbDFYE3KpVyBDG+ljUbia+Oel8CAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = 3IKIoZqg0jm9+pOOka2FEtihx0y8qAdJqKTuRfJtMpK
'';
};
};
diff --git a/krebs/3modules/external/mic92.nix b/krebs/3modules/external/mic92.nix
index 15136cbce..bbefb8ed8 100644
--- a/krebs/3modules/external/mic92.nix
+++ b/krebs/3modules/external/mic92.nix
@@ -39,6 +39,7 @@ in {
DKhcgvE6xHCwZnVyJN8MMy1CVyDmnHVYoaTEZ2cCvNi/hXIXgO9KWjSpAv5tP764
UkOE4dlDpEW6G1pNf84BERfRYGDj29A/Jk9LJC/6D09QJXNu18HR0sUCAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = 6VktF9Fg9E0hCW5g+rwGnrPACPSx/8vkl+hPNaFYeND
'';
};
};
@@ -72,6 +73,7 @@ in {
UU8cQZ3yBLIhTtC+38pRlsdBQHt526q0j0rrnd30JXVAUdWBunP2UJ5QGtA8/mWn
cWSlvRf5sfbyrISz6+mLPM2qGHnCkKwORNxmv/1DY07O3Rn6hX0OY4ECAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = qnJmS6W7QSKG3mjW1kPnHGeVmKzhGkyP9xBLGwH5XvD
'';
};
};
@@ -148,6 +150,7 @@ in {
IzbYu49VO/B1rktYzZ2l2ENQy6OILXWbvFjC8Pt8f1ZZQ4A21PyNA1AdyJ/rbVj7
awm3OnnvKSvMCXWnwHPFHjksb3qMx96Aep1cw3ZBx0sQQ41UWBoOsi8CAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = ikUmx5IC1dvfaHFhpZM9xotwF2LH6EkvpcPTRm6TjeD
'';
};
};
@@ -240,10 +243,10 @@ in {
61Oahtwy/szBj9mWIAymMfnvFGpeiIcww3ZGzYNyKBCjp1TkkgFRV3Y6eoq1sJ13
Pxol8FwH5+Q72bLtvg5Zva8D0Vx2U1jYSHEkRDDzaS5Z6Fus+zeZVMsCAwEAAQ==
-----END RSA PUBLIC KEY-----
+
+ Ed25519PublicKey = 7J1JgVyiy540akMdd/kONta0fMHSl5+FQJ1QhN84TzP
'';
tinc.subnets = [
- # ohorn lan
- "fd42:4492:6a6d:500:8526:2adf:7451:8bbb"
# docker network
"42:0000:002b:1605:3::/80"
];
@@ -269,21 +272,26 @@ in {
'';
};
};
- anindya = {
+ aendernix = {
owner = config.krebs.users.mic92;
nets.retiolum = {
- ip4.addr = "10.243.29.191";
+ ip4.addr = "10.243.29.172";
aliases = [
- "anindya.r"
+ "aendernix.r"
];
tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY-----
- MIIBCgKCAQEA8yWr01WlmM4RYuJdxvzvfdN3C5T3DOknWvK7U3y92HYgtQfYtZwu
- +J8r1fpTsdIS8wKdSEqz7Mjhb1JabJBB1fv/2mkAF4V/gkMbP0jqZ6QQL29kgkNP
- aI/+zG1yh4kEDgSn843J6XnTsJ/4Na2zmbVP1iIIQYMXyh+meWsBVR6DKV5ighjz
- 4h3wKbuMmDrS50aTk8ahgWoiqcE2DTUMeprw4SIL+RTepmsCINQtAJui5Ys6AAbK
- ab6gxMzRH2txLBcTfSrbqTX3qHZHLlB9Ai5FEItWqMBxquD6OCxn8DNU+5LgGpt1
- Z37SI1U0c4uu1oo7kOSx6wYP2ZVOatys6QIDAQAB
+ MIICCgKCAgEAt/dCDTvJU5jugP+5pk2CNM8X6cOnFonJv2eS253nsmKI97T9FSUa
+ QDt417MoqAJNEeZw7o4ve1fmdZmtfKgmXYdDJi2HSJCJoKY6FUgVOKevtzGg4akl
+ 4mKTy2z59CxyIbA41MHyLq18W3NLabQ41NpWGBRt9jvHQpZfd+wI8t5IIzdvFrKo
+ JSOFRbzEBL5//Hc3N/443cUg4IMyDBTemS7/jaZ2/Mn+PVZAdoIPLEZjFeWewmTF
+ Jd8Bsc2thzAREYHYnawhq3PLJSebMJd91pCdkD0NB0i59VKORcQTFady3fzE9+w4
+ RSTqAdBTUDuxzU/B8g1dp89/qW+fVPiFuB5Pf7D9t2DgxTDAeSXMiId/4Hwa0B1G
+ QCnCedz0Qk2UdId16BTS8DSq8Pd9fawU6qCmPY6ahSiw5ZQ6odMvDISb480cKj41
+ pslLjhIItTk3WEs8MwnQCzweNABuCK7GzT7CNaYm3f9pznBlOB+KfoZ6mrlzKkEK
+ u+gFJXTFym0ZF0wheXO7FCJ1jp4LFHqKGS3zWQyT7isjLsbcQzpOe8/FdiFlQvlG
+ vltL+5JjcahAMHc/ba+pRa5rSy8ebqf68fg4jlkT94Za13bCIHdK5w7eAXR3s/9z
+ H2wZmhvajUIZAxQSgFUy+7kKWOIkWqFkGPIdmbdwTaHC88OWshvRv8ECAwEAAQ==
-----END RSA PUBLIC KEY-----
'';
};
@@ -356,6 +364,7 @@ in {
4frtEIGbfdKqQ6nNTvTpCrAo+WAm3NE3khTYqGe4LqX/JMoGtWXp/Ex9IdG+sflM
mESMjuHp9vPY4aZGPtYPP93Cxv3q7gm+EfIGebajISpaG28J+XjiNNsCAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = emKq1mfkW4/aCoCwmeFU3DtppKs+KsTvd9YGoFkFgdC
'';
};
};
@@ -381,8 +390,6 @@ in {
/vW066YCTe7wi+YrvrMDgkdbyfn/ecMTn2iXsTb4k9/fuO0+hsqL+isCAwEAAQ==
-----END RSA PUBLIC KEY-----
'';
- # ohorn lan
- tinc.subnets = [ "fd42:4492:6a6d:500::/64" ];
};
};
};
@@ -410,6 +417,7 @@ in {
74oJVJgBT5M1rTH2+u+MU+kC+x2UD+jjXEjS55owFWsEM1jI4rGra+dpsDuzdGdG
67wl9JlpDBy4Tkf2Bl3CQWZHsWDsR6jCqwIDAQAB
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = Z5+fArxMfP8oLqlHpXadkGc9ROOPHBqugAMD2czmNlJ
'';
};
};
@@ -417,6 +425,11 @@ in {
bill = {
owner = config.krebs.users.mic92;
nets = rec {
+ internet = {
+ ip4.addr = "131.159.38.191";
+ ip6.addr = "2a09:80c0:38::191";
+ aliases = [ "bill.i" ];
+ };
retiolum = {
addrs = [
config.krebs.hosts.bill.nets.retiolum.ip4.addr
@@ -426,13 +439,19 @@ in {
aliases = [ "bill.r" ];
tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY-----
- MIIBCgKCAQEAzg0wJuDvsbflRKSJ7+ug9y7Gn+BH3CR44fuCPZpWmIcGIUbA6rXj
- CD8pF5heOvXNCFlEip2wqTkaCJPnUs3x8BRtORmD6OxDdmqt0xH54u7CixKzrPp9
- GIQydv+ZsGA2z3aDbmBydRPDIvYGhW68FJn10qlGRjCZ5zCl1eVEZ/wMddFXc0B8
- KDbxh7qOkjXon6EOGACVbnrnUR3F1GsIvCxX0cCDrO0P8XHwwsZiAfUwXYkiqw7t
- zPcty6Bbr34mSJbb9cFb/qQlfPWT0HVgo+Q65HVkr/64o/9tTyREZcj1dk5PpEPE
- bt7PGlOF1oPZpVFQh8S+NviHTtqrvkuISQIDAQAB
+ MIICCgKCAgEAvzM5dWPpmzzmogjuZC5boNvz+MJcIO0WnE9IINBY+CLSw5ZpNDVB
+ b97EG0Irs92OLJ5eesdPdF5LIyfFcFHOpPN+NdVEfLDWpFZVgOYh4BRy5+JdEk6O
+ ybcxLFIdgBHxahd3W27FxXC1ALu/AInAA2b4rwYoNBi23idj8+wtL4MJldkr5QaQ
+ sx8VQxIMy1xY4AbKcHdOt/nMrPoU6GnE9ObdcLys5cGUl/7Vc0NAMK6RrFQo+jfn
+ 2N0uWA1hZPAfZEEKP91xiOiRSx15WG3q9R/rqPmBh6l+rdPyWdRKcPVndCzVDrgw
+ WWPcR9A9Yzr0ZrpEIHOfrDOqb2Ur1HlrXHZRpt55IYOKwC7ZimZzKkMj7zl1t2Rq
+ nC07IJS7OI38amgLI0PSFI/Mx+mAPdYjd0fDcp8q7reOL63QT7cbrOw+cyOzNzGb
+ I7U7QaHaA2unOa1EYj5Ocd6jI1IyHqQe9FkUqgTaDVU44U3WEo/KY6FZfhqSPPHs
+ PsFzMj9nOWUGUr0cAn7DloIfNL49voO1C4HaiEvvhbSFIT/8suq3JznFxmP/q+Ph
+ qYbXI/LXzU2Ln1Abiu9m1OfxTmEOlH9C54zyUvkAfhjcD2/aZWc76g06Oj2L6kZ6
+ EC9Ku7Hk37rVOgZjtXUjuf3eUAvImknQ/JMRM3YDQgmu4iU0tJ1UnqkCAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = bN+knMGCqK+HkdOucynEXxeqGFOS2u8oWLRDV/gNIZI
'';
};
};
@@ -440,6 +459,11 @@ in {
nardole = {
owner = config.krebs.users.mic92;
nets = rec {
+ internet = {
+ ip4.addr = "131.159.102.2";
+ ip6.addr = "2a09:80c0:102::2";
+ aliases = [ "nardole.i" ];
+ };
retiolum = {
addrs = [
config.krebs.hosts.nardole.nets.retiolum.ip4.addr
@@ -449,13 +473,19 @@ in {
aliases = [ "nardole.r" ];
tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY-----
- MIIBCgKCAQEA05JzZLPH4+t2X8TI1nYsv4WCQ/OUmuMy9YbKUIRITE2EVA+x47Cf
- qdYPucWUpF7ap1rykxHBcPnmORO/NjAymlt25FDyyYQ2uWm17VE7P7jefAUnX7xj
- 80Rt7aWCXfldQuRAbza35G+Kl50Y6ydkZYkKCbyQ8fMhuzNp6Wn/pAJD3yr+zdka
- AsIoir9Ut9/9CKayRqGF+zaIf2Lj7nl5GL8bCAVJydU98GjlnXt7iuaWCt0H7NiK
- FWOjkGhAUlQI9I6l+5ELWClpyk5X+isfbUbYaCCspZJvos+vDE8hJuH5PrH8NuJj
- fJv8HrHkcGphn/Nn1TotpHBkyMyE5h6akwIDAQAB
+ MIICCgKCAgEAyYIN9FYtTmJTXUlBO4QYp9J7SZbglMEq0QCMpF9xQvCqJHl+C1vm
+ NzAswlhbaK5J1spi6+zUXtYJEVQyP1xesDlVm9G+hntS7woEWtuLO7VUL9whWINb
+ mO0OmYIEaWTMPIOKPTgc3tYsUhk7dw962/6I81JQczCHg1z2ItsRho/Kwi/Jo2Gj
+ jnPJQoRek45+xIzlf9Jx38ntioTQIaLuSw7/lplT1cHNcefLje8FQmVEojY79Ijc
+ 6Ij4b9tPln8eQErw2sANS6kSUOVRnVkfeRW+3a4iRtd8SzXJ+aX5TCsq910Z1+/H
+ ClK91GctU0V11s/m8LCp/Wz+o+4Z89JLxnil/ZS/6NHsaHysQPFPbx0Uh5nASF64
+ RoWhzp2CSJTC9/UJKdPIpIokMIEGgKjy8Up3nY4yjoUnf6SZfzr4jmXfRmYmVaMp
+ cCjbMbxBo+MjfXlGRxJAFGkS9zO9/21SEDiWqfOVThg5jbBR/q9ysRGcXndS0ea7
+ NzsCbU1/0StxxmZLpBRz2MxGSHqlZbwInm9RjsXbCGa32tTiUz8VxjR3LTUMU8AP
+ xpPLaIo7TIPdkDvCFL+DtXB9lE2PDpnSHbxyXKVKqxmCW1i/+msrBs/gnQ9VjzyA
+ L1Ip2MBQd+CFUtaj+VdhjfulvpVcpr5e3nZe7cl38qucUp46tbVsJ3UCAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = BA8uWkeHofZb5s9bNy6PjefKNZwemETWAA+Q6okKn1M
'';
};
};
@@ -467,7 +497,6 @@ in {
ip4.addr = "10.243.29.171";
aliases = [
"rock.r"
- "loki.r"
];
tinc.pubkey = ''
-----BEGIN PUBLIC KEY-----
@@ -518,6 +547,7 @@ in {
W3jpl1y5zShr5Hz90QoYcUTsxg9uk/+yqKpwUySZ6Gh4q0bo5k7nkM9i8mCMfNGZ
0UU94QmwS9RoV4Mt4pSLYRcCs0mVeEjLuIfTFHkXc6LCjBWMn8ICfeMCAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = 0O1LrgXAFOuei1NfU0vow+qUfim3htBOyCJvPrQFwHE
'';
};
};
@@ -544,9 +574,8 @@ in {
W5SCP9wx2ONhvZUkRbeihBiTN5/h3DepjOeNWd1DvE6K0Ag8SXMyBGtyKfer4ykW
OR0iCiRQQ5QBmNuJrBLRUyfoPqFUXBATT1SrRj8vzXO1TjTmANEMFD0CAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = bXEnZa/jn2ntL0R4sMsRd7NIoHgzrzUnJ3ReJUQ8iFG
'';
- # ohorn lan
- tinc.subnets = [ "fd42:4492:6a6d:500:f610:15d1:27a3:674b" ];
};
};
};
@@ -621,8 +650,8 @@ in {
nets = rec {
internet = {
# eva.thalheim.io
- ip4.addr = "52.59.172.193";
- ip6.addr = "2a05:d014:301:a601:ef0e:5434:d814:b8ed";
+ ip4.addr = "157.90.232.92";
+ ip6.addr = "2a01:4f8:1c1c:9a9::1";
aliases = [ "eva.i" ];
};
retiolum = {
@@ -630,6 +659,7 @@ in {
ip4.addr = "10.243.29.185";
aliases = [
"eva.r"
+ "loki.r"
"prometheus.r"
"alertmanager.r"
];
@@ -648,6 +678,7 @@ in {
6uuTTsn7s0PYBJDNdccOf1Qt8fqPPgzqUKqeUciHojYDDPTC5KQh5m2PBv4I4iIR
LnKOqNUX7UCqbdaE/tfFRG0CAwEAAQ==
-----END PUBLIC KEY-----
+ Ed25519PublicKey = 7rbs+10zzfwOPj5RoS1i/01QXuw7uIHGOHIgsjB2fHK
'';
};
};
@@ -671,6 +702,7 @@ in {
EMp7y5QJySmKwJ/XsS6yiHeYXLFwWvfReja/IRFL4RiDSW+6ES4PTEXxoLVDpqgv
KF44qim4UBabCMTPVtZcU3Rr+ufBALKJCwIDAQAB
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = PmZ8i6lB0Ij/d8qjA0y3QI2rMAlrTZn1ES/hUSNNWMP
'';
};
};
@@ -699,6 +731,7 @@ in {
fuXAsh5UbnE5kt6vKL5aducScatyd5FRkNumKG5ji26eZR4lZmXn380JLDInV4n7
SODZL2fQFBnSD1wTWcq9Q/luPh4FitzJUZzHexvNxR/KBZycZJtdVw8CAwEAAQ==
-----END RSA PUBLIC KEY-----
+ Ed25519PublicKey = pjCpkZToBUBbjUNVMWfYJePZ6g7m7Ccr9WedfKEFsXD
'';
};
};
diff --git a/krebs/3modules/gollum.nix b/krebs/3modules/gollum.nix
deleted file mode 100644
index 4b4e04d16..000000000
--- a/krebs/3modules/gollum.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
- cfg = config.krebs.gollum;
-in
-
-{
- options.krebs.gollum = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = "Enable the Gollum service.";
- };
-
- address = mkOption {
- type = types.str;
- default = "0.0.0.0";
- description = "IP address on which the web server will listen.";
- };
-
- port = mkOption {
- type = types.int;
- default = 4567;
- description = "Port on which the web server will run.";
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = "Content of the configuration file";
- };
-
- mathjax = mkOption {
- type = types.bool;
- default = false;
- description = "Enable support for math rendering using MathJax";
- };
-
- allowUploads = mkOption {
- type = types.nullOr (types.enum [ "dir" "page" ]);
- default = null;
- description = "Enable uploads of external files";
- };
-
- emoji = mkOption {
- type = types.bool;
- default = false;
- description = "Parse and interpret emoji tags";
- };
-
- branch = mkOption {
- type = types.str;
- default = "master";
- example = "develop";
- description = "Git branch to serve";
- };
-
- stateDir = mkOption {
- type = types.path;
- default = "/var/lib/gollum";
- description = "Specifies the path of the repository directory. If it does not exist, Gollum will create it on startup.";
- };
-
- };
-
- config = mkIf cfg.enable {
-
- users.users.gollum = {
- group = config.users.users.gollum.name;
- description = "Gollum user";
- home = cfg.stateDir;
- createHome = false;
- isSystemUser = true;
- };
-
- users.groups.gollum = { };
-
- systemd.tmpfiles.rules = [
- "d '${cfg.stateDir}' - ${config.users.users.gollum.name} ${config.users.groups.gollum.name} - -"
- ];
-
- systemd.services.gollum = {
- description = "Gollum wiki";
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
- path = [ pkgs.git ];
-
- preStart = ''
- # This is safe to be run on an existing repo
- git init ${cfg.stateDir}
- '';
-
- serviceConfig = {
- User = config.users.users.gollum.name;
- Group = config.users.groups.gollum.name;
- ExecStart = ''
- ${pkgs.gollum}/bin/gollum \
- --port ${toString cfg.port} \
- --host ${cfg.address} \
- --config ${pkgs.writeText "gollum-config.rb" cfg.extraConfig} \
- --ref ${cfg.branch} \
- ${optionalString cfg.mathjax "--mathjax"} \
- ${optionalString cfg.emoji "--emoji"} \
- ${optionalString (cfg.allowUploads != null) "--allow-uploads ${cfg.allowUploads}"} \
- ${cfg.stateDir}
- '';
- };
- };
- };
-}
diff --git a/krebs/3modules/jeschli/default.nix b/krebs/3modules/jeschli/default.nix
index 390f7585f..41743612a 100644
--- a/krebs/3modules/jeschli/default.nix
+++ b/krebs/3modules/jeschli/default.nix
@@ -49,6 +49,7 @@ in {
};
};
enklave = {
+ ci = false;
nets = rec {
internet = {
ip4.addr = "88.198.164.182";
diff --git a/krebs/5pkgs/haskell/flameshot-once.nix b/krebs/5pkgs/haskell/flameshot-once.nix
index 1b54f7db6..c8007ce9e 100644
--- a/krebs/5pkgs/haskell/flameshot-once.nix
+++ b/krebs/5pkgs/haskell/flameshot-once.nix
@@ -1,14 +1,13 @@
{ mkDerivation, async, base, blessings, bytestring, dbus, fetchgit
-, iso8601-time, process, random, stdenv, text, time, unagi-chan
-, unix
+, iso8601-time, lib, process, random, text, time, unagi-chan, unix
}:
mkDerivation {
pname = "flameshot-once";
- version = "1.3.0";
+ version = "1.4.0";
src = fetchgit {
url = "https://cgit.krebsco.de/flameshot-once";
- sha256 = "1jy73379srnkq79i7k3al406r0kb3pxwgg6f64i89jhzxjn7zmzl";
- rev = "81ce6b9bb68c2739ec5bda067fcfaeab931d55dd";
+ sha256 = "13szgsiwn29aixm5xvs1m7128y5km5xss0ry5ii5y068rc2vysw8";
+ rev = "4475893c2081b3d9db4b7a54d0ce38d0914a17bf";
fetchSubmodules = true;
};
isLibrary = false;
@@ -17,5 +16,5 @@ mkDerivation {
async base blessings bytestring dbus iso8601-time process random
text time unagi-chan unix
];
- license = stdenv.lib.licenses.mit;
+ license = lib.licenses.mit;
}
diff --git a/krebs/5pkgs/simple/flameshot-once/profile.nix b/krebs/5pkgs/simple/flameshot-once/profile.nix
index 5aed99597..d70e2be1a 100644
--- a/krebs/5pkgs/simple/flameshot-once/profile.nix
+++ b/krebs/5pkgs/simple/flameshot-once/profile.nix
@@ -157,7 +157,7 @@ let
"QList<${t}>${le.x4 0}${le.x4 (length xs)}${concatMapStrings le.x4 xs}";
XDG_CONFIG_HOME = pkgs.write "flameshot-config" {
- "/Dharkael/flameshot.ini".text = ''
+ "/flameshot/flameshot.ini".text = ''
[General]
buttons=@Variant(\0\0\0\x7f\0\0\0\v${toQList "int" cfg.buttons})
disabledTrayIcon=${toJSON cfg.disabledTrayIcon}
@@ -166,6 +166,8 @@ let
savePath=${toJSON cfg.savePath}
showDesktopNotification=${toJSON cfg.showDesktopNotification}
showHelp=${toJSON cfg.showHelp}
+ [Shortcuts]
+ TYPE_COPY=Return
'';
};
diff --git a/krebs/5pkgs/simple/realwallpaper/default.nix b/krebs/5pkgs/simple/realwallpaper/default.nix
index 8728c0ae7..2fbc7ff86 100644
--- a/krebs/5pkgs/simple/realwallpaper/default.nix
+++ b/krebs/5pkgs/simple/realwallpaper/default.nix
@@ -9,8 +9,7 @@ pkgs.writers.writeDashBin "generate-wallpaper" ''
gnused
file
findutils
- grib2json
- imagemagick
+ imagemagick6
inkscape
jq
nomads-cloud
diff --git a/krebs/nixpkgs-unstable.json b/krebs/nixpkgs-unstable.json
index fe46ec022..aaf66e428 100644
--- a/krebs/nixpkgs-unstable.json
+++ b/krebs/nixpkgs-unstable.json
@@ -1,9 +1,9 @@
{
"url": "https://github.com/NixOS/nixpkgs",
- "rev": "7a1fbc38a4b538450ac0d42aec8a3e513b4d723e",
- "date": "2021-05-16T12:16:31+02:00",
- "path": "/nix/store/iq2sy65gmwad2prm8lcdh6k5f7ywxci5-nixpkgs",
- "sha256": "0jg8dilsw0gr4jfshkk3wd50gddd11hvd836fxkw43m6m47885p7",
+ "rev": "fbfb79400a08bf754e32b4d4fc3f7d8f8055cf94",
+ "date": "2021-06-06T04:54:09-03:00",
+ "path": "/nix/store/51dsmanfc179xy70kn2rl0qvg45cn6qr-nixpkgs",
+ "sha256": "0pgyx1l1gj33g5i9kwjar7dc3sal2g14mhfljcajj8bqzzrbc3za",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false
diff --git a/krebs/nixpkgs.json b/krebs/nixpkgs.json
index 3887ab917..5b1cbe781 100644
--- a/krebs/nixpkgs.json
+++ b/krebs/nixpkgs.json
@@ -1,9 +1,9 @@
{
"url": "https://github.com/NixOS/nixpkgs",
- "rev": "aa576357673d609e618d87db43210e49d4bb1789",
- "date": "2021-06-04T17:36:38+02:00",
- "path": "/nix/store/qqz5xq0dg8zm8blba5cg7704kbrhqhki-nixpkgs",
- "sha256": "1868s3mp0lwg1jpxsgmgijzddr90bjkncf6k6zhdjqihf0i1n2np",
+ "rev": "5de44c15758465f8ddf84d541ba300b48e56eda4",
+ "date": "2021-06-05T20:40:48+01:00",
+ "path": "/nix/store/p5mhp3syp0aqkcrwmf8zi3ik7mgxrlgx-nixpkgs",
+ "sha256": "05darjv3zc5lfqx9ck7by6p90xgbgs1ni6193pw5zvi7xp2qlg4x",
"fetchSubmodules": false,
"deepClone": false,
"leaveDotGit": false
diff --git a/lass/2configs/radio.nix b/lass/2configs/radio.nix
index cfc280e50..a474b0ebc 100644
--- a/lass/2configs/radio.nix
+++ b/lass/2configs/radio.nix
@@ -4,7 +4,6 @@ with import <stockholm/lib>;
let
name = "radio";
- mainUser = config.users.extraUsers.mainUser;
music_dir = "/home/radio/music";
@@ -84,6 +83,17 @@ let
}'
'';
+ set_irc_topic = pkgs.writeDash "set_irc_topic" ''
+ ${pkgs.curl}/bin/curl -fsSv --unix-socket /home/radio/reaktor.sock http://z/ \
+ -H content-type:application/json \
+ -d "$(${pkgs.jq}/bin/jq -n \
+ --arg text "$1" '{
+ command:"TOPIC",
+ params:["#the_playlist",$text]
+ }'
+ )"
+ '';
+
write_to_irc = pkgs.writeDash "write_to_irc" ''
${pkgs.curl}/bin/curl -fsSv --unix-socket /home/radio/reaktor.sock http://z/ \
-H content-type:application/json \
@@ -128,11 +138,25 @@ in {
services.mpd = {
enable = true;
- group = "radio";
+ user = "radio";
musicDirectory = "${music_dir}";
+ dataDir = "/home/radio/state"; # TODO create this somwhere
extraConfig = ''
log_level "default"
auto_update "yes"
+ volume_normalization "yes"
+
+ audio_output {
+ type "httpd"
+ name "lassulus radio mp3"
+ encoder "lame" # optional
+ port "8002"
+ quality "5.0" # do not define if bitrate is defined
+ # bitrate "128" # do not define if quality is defined
+ format "44100:16:2"
+ always_on "yes" # prevent MPD from disconnecting all listeners when playback is stopped.
+ tags "yes" # httpd supports sending tags to listening streams.
+ }
audio_output {
type "httpd"
@@ -152,6 +176,7 @@ in {
tables = {
filter.INPUT.rules = [
{ predicate = "-p tcp --dport 8000"; target = "ACCEPT"; }
+ { predicate = "-p tcp --dport 8002"; target = "ACCEPT"; }
{ predicate = "-i retiolum -p tcp --dport 8001"; target = "ACCEPT"; }
];
};
@@ -200,10 +225,10 @@ in {
${pkgs.mpc_cli}/bin/mpc idle player > /dev/null
${pkgs.mpc_cli}/bin/mpc current -f %file%
done | while read track; do
- listeners=$(${pkgs.iproute}/bin/ss -Hno state established 'sport = :8000' | wc -l)
+ listeners=$(${pkgs.iproute}/bin/ss -Hno state established 'sport = :8000' | grep '^mptcp' | wc -l)
echo "$(date -Is)" "$track" | tee -a "$HISTORY_FILE"
echo "$(tail -$LIMIT "$HISTORY_FILE")" > "$HISTORY_FILE"
- ${write_to_irc} "playing: $track listeners: $listeners"
+ ${set_irc_topic} "playing: $track listeners: $listeners"
done
'';
in {
@@ -349,7 +374,7 @@ in {
};
services.syncthing.declarative.folders."the_playlist" = {
path = "/home/radio/music/the_playlist";
- devices = [ "mors" "phone" "prism" "xerxes" ];
+ devices = [ "mors" "phone" "prism" ];
};
krebs.permown."/home/radio/music/the_playlist" = {
owner = "radio";