add freshrss on genepi
This commit is contained in:
@@ -13,6 +13,7 @@
|
|||||||
./boot.nix
|
./boot.nix
|
||||||
./disk.nix
|
./disk.nix
|
||||||
./dns.nix
|
./dns.nix
|
||||||
|
./freshrss.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./immich.nix
|
./immich.nix
|
||||||
./monitoring.nix
|
./monitoring.nix
|
||||||
|
|||||||
@@ -1,4 +1,15 @@
|
|||||||
{ config, ... }:
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
domain = "home.rpqt.fr";
|
||||||
|
genepi = {
|
||||||
|
ip = "100.83.123.79";
|
||||||
|
subdomains = [
|
||||||
|
"grafana"
|
||||||
|
"images"
|
||||||
|
"rss"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
networking.firewall.interfaces."${config.services.tailscale.interfaceName}" = {
|
networking.firewall.interfaces."${config.services.tailscale.interfaceName}" = {
|
||||||
allowedTCPPorts = [ 53 ];
|
allowedTCPPorts = [ 53 ];
|
||||||
@@ -14,14 +25,8 @@
|
|||||||
interface = [ "${config.services.tailscale.interfaceName}" ];
|
interface = [ "${config.services.tailscale.interfaceName}" ];
|
||||||
access-control = [ "100.0.0.0/8 allow" ];
|
access-control = [ "100.0.0.0/8 allow" ];
|
||||||
|
|
||||||
local-zone = [
|
local-zone = lib.map (subdomain: ''"${subdomain}.${domain}." redirect'') genepi.subdomains;
|
||||||
''"grafana.home.rpqt.fr." redirect''
|
local-data = lib.map (subdomain: ''"${subdomain}.${domain}. IN A ${genepi.ip}"'') genepi.subdomains;
|
||||||
''"images.home.rpqt.fr" redirect''
|
|
||||||
];
|
|
||||||
local-data = [
|
|
||||||
''"grafana.home.rpqt.fr. IN A 100.83.123.79"''
|
|
||||||
''"images.home.rpqt.fr. IN A 100.83.123.79"''
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
26
hosts/genepi/freshrss.nix
Normal file
26
hosts/genepi/freshrss.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
let
|
||||||
|
domain = "home.rpqt.fr";
|
||||||
|
subdomain = "rss.${domain}";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
age.secrets.freshrss = {
|
||||||
|
file = ../../secrets/freshrss.age;
|
||||||
|
mode = "700";
|
||||||
|
owner = config.services.freshrss.user;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.freshrss = {
|
||||||
|
enable = true;
|
||||||
|
baseUrl = "https://${subdomain}";
|
||||||
|
virtualHost = "${subdomain}";
|
||||||
|
|
||||||
|
defaultUser = "rpqt";
|
||||||
|
passwordFile = config.age.secrets.freshrss.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts.${config.services.freshrss.virtualHost} = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "${domain}";
|
||||||
|
};
|
||||||
|
}
|
||||||
8
secrets/freshrss.age
Normal file
8
secrets/freshrss.age
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 ELMcHw e1XlBpnFTEjcVaiz2ogDRQlrkvEK98pJb2iDaP3fAF8
|
||||||
|
W9li/7spMyPzwaCSFkOdPOL9ZNuaGCnJxm0uB/vLyS8
|
||||||
|
-> ssh-ed25519 8TpKTA 3HeKYAD1Y9UGfCmTWdgfVRMXy/q+R2fH/rrDdCnmBgc
|
||||||
|
S2pjlFKodLcx06HqrkghUUQB8QgyxkhPean6EV7GsXM
|
||||||
|
--- g6mHVMs7rkgyIus4NGuw8h+Hai3ME0FbuIpvA2KOOYQ
|
||||||
|
<EFBFBD>=<3D>2#<23><><+<2B><>
|
||||||
|
v<EFBFBD><EFBFBD><EFBFBD><EFBFBD>L<>3<>@Z<>,܅M9,C$<24>a<EFBFBD>r
|
||||||
@@ -14,4 +14,7 @@ in
|
|||||||
|
|
||||||
# Restic repository key
|
# Restic repository key
|
||||||
"restic-genepi-storagebox-key.age".publicKeys = keysForGenepi;
|
"restic-genepi-storagebox-key.age".publicKeys = keysForGenepi;
|
||||||
|
|
||||||
|
# Password of the default user
|
||||||
|
"freshrss.age".publicKeys = keysForGenepi;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user