summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--machines/renard/default.nix1
-rw-r--r--services/freshrss.nix44
2 files changed, 45 insertions, 0 deletions
diff --git a/machines/renard/default.nix b/machines/renard/default.nix
index 826e92f..ebb06c1 100644
--- a/machines/renard/default.nix
+++ b/machines/renard/default.nix
@@ -13,6 +13,7 @@
../../services/cgit.nix
../../services/minecraft.nix
+ ../../services/freshrss.nix
../../services/irc
];
diff --git a/services/freshrss.nix b/services/freshrss.nix
new file mode 100644
index 0000000..bdb087f
--- /dev/null
+++ b/services/freshrss.nix
@@ -0,0 +1,44 @@
+{ me, pkgs, auxiliaryPkgs, ... }:
+
+let
+ inherit (pkgs) php lighttpd freshrss dockerTools;
+ inherit (auxiliaryPkgs) common;
+
+ freshrssLocalPort = 1819;
+ freshrssDir = "/srv/freshrss";
+
+ freshrssImage = dockerTools.streamLayeredImage {
+ name = "freshrss";
+ tag = freshrss.version;
+ fromImage = common.alpine.base;
+
+ contents = [ lighttpd freshrss php ];
+
+ extraCommands = ''
+ mkdir -p ./opt ./var/log/lighttpd
+ touch ./var/log/lighttpd/access.log ./var/log/lighttpd/error.log
+ ln -s ${freshrss} ./opt/freshrss
+ '';
+ };
+
+in
+{
+ # TODO: ..it won't work without cron :3
+ foundation.services.freshrss = {
+ image = freshrssImage;
+ ports = [
+ (common.tailnetPort me [ freshrssLocalPort 80 ])
+ ];
+
+ volumes = [
+ [ "${freshrssDir}/lighttpd.conf" "/etc/lighttpd/freshrss.conf" ]
+ [ "${freshrssDir}/data" "/opt/freshrss/data" ]
+ ];
+
+ entrypoint = "${lighttpd}/bin/lighttpd";
+ cmd = [
+ "-D" # run in foreground
+ "-f" "/etc/lighttpd/freshrss.conf"
+ ];
+ };
+}