Compare commits

..

No commits in common. "1d05ab6d6f8455c43d5ec410349c047085af42ae" and "b70c7f506e9df7e04c8b49a99f47b5fe2251589b" have entirely different histories.

7 changed files with 77 additions and 51 deletions

1
.gitignore vendored
View file

@ -11,4 +11,3 @@ todo.md
notes.md notes.md
scratch/ scratch/
tmp/ tmp/
.worktrees/

View file

@ -1,35 +0,0 @@
{ config, inputs, ... }:
let
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
in
{
services = {
miniflux = {
enable = true;
config = {
LISTEN_ADDR = "localhost:8080";
CREATE_ADMIN = 1;
FETCHER_ALLOW_PRIVATE_NETWORKS = 1;
POLLING_SCHEDULER = "entry_frequency";
SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL = 60;
SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL = 10080;
};
adminCredentialsFile = config.age.secrets.miniflux-admincreds.path;
createDatabaseLocally = true;
};
nginx.virtualHosts = mkNginxVHosts {
domains."rss.baduhai.dev" = {
locations."/".proxyPass = "http://${config.services.miniflux.config.LISTEN_ADDR}/";
};
};
};
age.secrets.miniflux-admincreds = {
file = "${inputs.self}/secrets/miniflux-admincreds.age";
owner = "miniflux";
group = "miniflux";
};
}

View file

@ -0,0 +1,43 @@
{
config,
inputs,
pkgs,
...
}:
let
mkNginxVHosts = inputs.self.lib.mkNginxVHosts;
in
{
services = {
"tt-rss" = {
enable = true;
selfUrlPath = "https://rss.baduhai.dev";
singleUserMode = true;
virtualHost = null;
database.createLocally = true;
pluginPackages = with pkgs; [
tt-rss-theme-feedly
tt-rss-plugin-af-readability
];
};
nginx.virtualHosts = mkNginxVHosts {
domains."rss.baduhai.dev" = {
root = "${config.services."tt-rss".root}/www";
locations = {
"/".index = "index.php";
"~* /feed-icons/(\\d+)\\.ico".return = "302 /public.php?op=feed_icon&id=$1";
"~ \\.php$" = {
extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools.${config.services."tt-rss".pool}.socket};
fastcgi_index index.php;
'';
};
};
};
};
};
}

View file

@ -34,7 +34,7 @@
host = "alexandria"; host = "alexandria";
} }
{ {
name = "miniflux"; name = "tt-rss";
domain = "rss.baduhai.dev"; domain = "rss.baduhai.dev";
host = "alexandria"; host = "alexandria";
} }

View file

@ -0,0 +1,33 @@
{ ... }:
{
perSystem =
{ pkgs, ... }:
{
packages.tt-rss-plugin-af-readability = pkgs.stdenv.mkDerivation {
pname = "tt-rss-plugin-af-readability";
version = "unstable-2025-10-16";
src = pkgs.fetchFromGitHub {
owner = "tt-rss";
repo = "tt-rss-plugin-af-readability";
rev = "fce528aa69c2a7193fb7eb3a3cd9dd17885d6ab6";
hash = "sha256-3rxrICtm6+ujlBHj5Su2sSEq3lgiHhQMJ/OVfzhzYXA=";
};
installPhase = ''
mkdir -p $out/af_readability
cp -a * $out/af_readability/
'';
meta = {
description = "Plugin for TT-RSS to inline article content using Readability";
license = pkgs.lib.licenses.gpl3;
homepage = "https://github.com/tt-rss/tt-rss-plugin-af-readability/";
maintainers = with pkgs.lib.maintainers; [ gdamjan ];
inherit (pkgs.tt-rss.meta) platforms;
};
};
};
}

View file

@ -1,9 +0,0 @@
age-encryption.org/v1
-> ssh-ed25519 Kfdnog QEq4A011oVny6vo1+wOcQNnpkf77216PZXJqK4rGTGY
FPeASmXRirxeF2T2jXhA/tEaO0p1CZJ6D3lv3p2KTX0
-> ssh-ed25519 8YSAiw gxuXAt2nG6qXhWwAAiFwNCNYJV2VGKnDNkjU61NOJ2o
xncp+M4lVixiTmXQU5QrtdQ860t/1JpvOcO4YXAy3to
-> ssh-ed25519 J6tVTA Mr0XrEFP/o7nFWBKal+ehzMiejWpVDIBiiMqWzdOzEM
0DTqm2LyMMlVZlTk67Y3hTiVjcJG9gprnXj6QjYxrJw
--- FXUNp6O7vuibJj0RI3SZN3IBK1Hx5ouUij2ah05lCYA
ÔX*÷“µ¬0¬²øÇBŒ<42>3Îð«jbœÍ<C593>S§Vÿ΀Äb¹BcÈi—øD.ïÇ5\é`&`è¶Š-Ui"gХȊ`OÒ µG<C2B5>cõ¥øÊæ'»Îºø«@qn[

View file

@ -32,9 +32,4 @@ in
rotterdam-user rotterdam-user
trantor trantor
]; ];
"miniflux-admincreds.age".publicKeys = [
io-user
rotterdam-user
alexandria
];
} }