From c1b5d2e360de1279b220c442ab4ced1bab12737e Mon Sep 17 00:00:00 2001 From: matt1432 Date: Tue, 19 Mar 2024 09:23:50 -0400 Subject: [PATCH] feat(freshrss): add rss-bridge with extension --- devices/cluster/modules/caddy.nix | 1 + .../nos/modules/arion/freshrss/compose.nix | 39 +++++++++++++++++-- .../arion/freshrss/images/rss-bridge.nix | 8 ++++ .../modules/arion/wg-easy/images/wg-easy.nix | 8 ++-- 4 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 devices/nos/modules/arion/freshrss/images/rss-bridge.nix diff --git a/devices/cluster/modules/caddy.nix b/devices/cluster/modules/caddy.nix index 55fc459..065e90b 100644 --- a/devices/cluster/modules/caddy.nix +++ b/devices/cluster/modules/caddy.nix @@ -98,6 +98,7 @@ in { }; # FreshRSS & Co + bridge.reverseProxy = "${nosIP}:3006"; drss.reverseProxy = "${nosIP}:3007"; freshrss = { subDomainName = "rss"; diff --git a/devices/nos/modules/arion/freshrss/compose.nix b/devices/nos/modules/arion/freshrss/compose.nix index 74eb7b0..a835251 100644 --- a/devices/nos/modules/arion/freshrss/compose.nix +++ b/devices/nos/modules/arion/freshrss/compose.nix @@ -1,4 +1,8 @@ -{config, ...}: let +{ + config, + pkgs, + ... +}: let inherit (config.sops) secrets; inherit (config.arion) rwDataDir; @@ -10,10 +14,29 @@ in { restart = "always"; ports = ["2800:80"]; + extra_hosts = [ + "drss.nelim.org=10.0.0.130" + "bridge.nelim.org=10.0.0.130" + ]; - volumes = [ + volumes = let + rss-bridge = pkgs.stdenv.mkDerivation { + name = "rss-bridge-ext"; + version = "unstable"; + src = pkgs.fetchFromGitHub { + owner = "DevonHess"; + repo = "FreshRSS-Extensions"; + rev = "299c1febc279be77fa217ff5c2965a620903b974"; + hash = "sha256-++kgbrGJohKeOeLjcy7YV3QdCf9GyZDtbntlFmmIC5k="; + }; + installPhase = '' + mkdir $out + cp -ar ./xExtension-RssBridge $out/ + ''; + }; + in [ "${rwPath}/data:/var/www/FreshRSS/data" - "${rwPath}/data-extensions:/var/www/FreshRSS/extensions" + "${rss-bridge}/xExtension-RssBridge:/var/www/FreshRSS/extensions/xExtension-RssBridge:ro" ]; env_file = [secrets.freshrss.path]; @@ -46,5 +69,15 @@ in { restart = "always"; ports = ["3007:3000"]; }; + + "rss-bridge" = { + image = ./images/rss-bridge.nix; + restart = "always"; + + volumes = [ + "${rwPath}/bridge:/config" + ]; + ports = ["3006:80"]; + }; }; } diff --git a/devices/nos/modules/arion/freshrss/images/rss-bridge.nix b/devices/nos/modules/arion/freshrss/images/rss-bridge.nix new file mode 100644 index 0000000..e9327ca --- /dev/null +++ b/devices/nos/modules/arion/freshrss/images/rss-bridge.nix @@ -0,0 +1,8 @@ +pkgs: +pkgs.dockerTools.pullImage { + imageName = "rssbridge/rss-bridge"; + imageDigest = "sha256:4fed6d1e549675689a9554f165a26ad3ebf63d0c3673f42429de81927da329a2"; + sha256 = "0rxgw6rbis1l8jb1ayqib902c510prgcvvh3w1i5g68m7di5xxm1"; + finalImageName = "rssbridge/rss-bridge"; + finalImageTag = "latest"; +} diff --git a/devices/nos/modules/arion/wg-easy/images/wg-easy.nix b/devices/nos/modules/arion/wg-easy/images/wg-easy.nix index 2f45148..de45a42 100644 --- a/devices/nos/modules/arion/wg-easy/images/wg-easy.nix +++ b/devices/nos/modules/arion/wg-easy/images/wg-easy.nix @@ -1,8 +1,8 @@ pkgs: pkgs.dockerTools.pullImage { - imageName = "weejewel/wg-easy"; - imageDigest = "sha256:ea65f283dfeb62628ce942ce38974f9db05177aa27ab69b787115b78591552f3"; - sha256 = "1cv9s2pgqxqwp7lq2jzf8l58jn9cdhl3gkql6xjf0v5xgj0wifw1"; - finalImageName = "weejewel/wg-easy"; + imageName = "ghcr.io/wg-easy/wg-easy"; + imageDigest = "sha256:daa94b77901bdef3cb10151416c095e64cf66a6539fa8f748c09812b60b97f49"; + sha256 = "02880zh6fdmjlyi9nrvz1vzj4qa5642079xyzpbx3c1rplg033md"; + finalImageName = "ghcr.io/wg-easy/wg-easy"; finalImageTag = "latest"; }