1
0

hosts/web-2: Add feeds.clerie.de

This commit is contained in:
clerie 2025-01-05 16:26:46 +01:00
parent 1b86f094c8
commit e70ff56b28
8 changed files with 94 additions and 0 deletions

21
flake.lock generated
View File

@ -592,6 +592,26 @@
"type": "github" "type": "github"
} }
}, },
"rainbowrss": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736087671,
"narHash": "sha256-zWeiCs+8SAS1wN5M3w3vSNNpILoKXqX9aj/ZZcgfMms=",
"ref": "refs/heads/main",
"rev": "ceab6a148233ffb23de19411a3e5579e3394a35b",
"revCount": 9,
"type": "git",
"url": "https://git.clerie.de/clerie/rainbowrss.git"
},
"original": {
"type": "git",
"url": "https://git.clerie.de/clerie/rainbowrss.git"
}
},
"root": { "root": {
"inputs": { "inputs": {
"berlinerbaeder-exporter": "berlinerbaeder-exporter", "berlinerbaeder-exporter": "berlinerbaeder-exporter",
@ -607,6 +627,7 @@
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nixpkgs-0dc1c7": "nixpkgs-0dc1c7", "nixpkgs-0dc1c7": "nixpkgs-0dc1c7",
"nurausstieg": "nurausstieg", "nurausstieg": "nurausstieg",
"rainbowrss": "rainbowrss",
"scan-to-gpg": "scan-to-gpg", "scan-to-gpg": "scan-to-gpg",
"solid-xmpp-alarm": "solid-xmpp-alarm", "solid-xmpp-alarm": "solid-xmpp-alarm",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",

View File

@ -41,6 +41,10 @@
url = "git+https://git.clerie.de/clerie/nurausstieg.git"; url = "git+https://git.clerie.de/clerie/nurausstieg.git";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
rainbowrss = {
url = "git+https://git.clerie.de/clerie/rainbowrss.git";
inputs.nixpkgs.follows = "nixpkgs";
};
scan-to-gpg = { scan-to-gpg = {
url = "git+https://git.clerie.de/clerie/scan-to-gpg.git"; url = "git+https://git.clerie.de/clerie/scan-to-gpg.git";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View File

@ -6,6 +6,7 @@
, harmonia , harmonia
, hydra , hydra
, nurausstieg , nurausstieg
, rainbowrss
, scan-to-gpg , scan-to-gpg
, ssh-to-age , ssh-to-age
, ... , ...
@ -26,6 +27,8 @@ final: prev: {
hydra; hydra;
inherit (nurausstieg.packages.${final.system}) inherit (nurausstieg.packages.${final.system})
nurausstieg; nurausstieg;
inherit (rainbowrss.packages.${final.system})
rainbowrss;
inherit (scan-to-gpg.packages.${final.system}) inherit (scan-to-gpg.packages.${final.system})
scan-to-gpg; scan-to-gpg;
inherit (ssh-to-age.packages.${final.system}) inherit (ssh-to-age.packages.${final.system})

View File

@ -10,6 +10,7 @@
./clerie.nix ./clerie.nix
./drop.nix ./drop.nix
./etebase.nix ./etebase.nix
./feeds.nix
./fieldpoc.nix ./fieldpoc.nix
./gitea.nix ./gitea.nix
./ip.nix ./ip.nix

48
hosts/web-2/feeds.nix Normal file
View File

@ -0,0 +1,48 @@
{ pkgs, ... }:
{
users.users."feeds" = {
isSystemUser = true;
group = "feeds";
};
users.groups."feeds" = {};
systemd.tmpfiles.rules = [
"d /var/lib/feeds - feeds feeds - -"
];
services.nginx = {
virtualHosts."feeds.clerie.de" = {
enableACME = true;
forceSSL = true;
root = "/var/lib/feeds";
};
};
systemd.services."feeds" = {
wantedBy = [ "multi-user.target" ];
requires = [ "network.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "oneshot";
WorkingDirectory = "/var/lib/feeds";
RuntimeDirectory = "feeds";
User = "feeds";
Group = "feeds";
ExecStart = ''
${pkgs.feeds-dir}/bin/feeds-dir
'';
};
};
systemd.timers."feeds" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "hourly";
RandomizedDelaySec = "1h";
};
requires = [ "network-online.target" ];
after = [ "network-online.target" ];
};
}

View File

@ -0,0 +1,9 @@
{ pkgs, ... }:
pkgs.writeShellApplication {
name = "feeds-dir";
text = builtins.readFile ./feeds-dir.sh;
runtimeInputs = with pkgs; [
rainbowrss
];
}

7
pkgs/feeds-dir/feeds-dir.sh Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
for file in ./*.txt; do
rainbowrss --feeds "${file}" --out "$(basename "${file}" ".txt").html" || true
done

View File

@ -8,6 +8,7 @@ final: prev: {
clerie-update-nixfiles = final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {}; clerie-update-nixfiles = final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {};
chromium-incognito = final.callPackage ./chromium-incognito {}; chromium-incognito = final.callPackage ./chromium-incognito {};
factorio-launcher = final.callPackage ./factorio-launcher {}; factorio-launcher = final.callPackage ./factorio-launcher {};
feeds-dir = final.callPackage ./feeds-dir {};
git-checkout-github-pr = final.callPackage ./git-checkout-github-pr {}; git-checkout-github-pr = final.callPackage ./git-checkout-github-pr {};
git-diff-word = final.callPackage ./git-diff-word {}; git-diff-word = final.callPackage ./git-diff-word {};
git-pp = final.callPackage ./git-pp {}; git-pp = final.callPackage ./git-pp {};