summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.nix11
-rw-r--r--usecases/server/miniflux.nix29
2 files changed, 39 insertions, 1 deletions
diff --git a/flake.nix b/flake.nix
index cd03cb5..b7aefc0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -79,6 +79,7 @@
79 gotifyServer = (import ./usecases/server/gotify-server.nix inputs); 79 gotifyServer = (import ./usecases/server/gotify-server.nix inputs);
80 hydraServer = (import ./usecases/server/hydra-server.nix inputs); 80 hydraServer = (import ./usecases/server/hydra-server.nix inputs);
81 jellyfin = (import ./usecases/server/jellyfin.nix inputs); 81 jellyfin = (import ./usecases/server/jellyfin.nix inputs);
82 miniflux = (import ./usecases/server/miniflux.nix inputs);
82 monitoringServer = (import ./usecases/server/monitoring-server.nix inputs); 83 monitoringServer = (import ./usecases/server/monitoring-server.nix inputs);
83 monitoringTarget = (import ./usecases/server/monitoring-target.nix inputs); 84 monitoringTarget = (import ./usecases/server/monitoring-target.nix inputs);
84 nginx = (import ./usecases/server/nginx.nix inputs); 85 nginx = (import ./usecases/server/nginx.nix inputs);
@@ -180,6 +181,7 @@
180 self.nixosModules.usecases.server.gotifyServer 181 self.nixosModules.usecases.server.gotifyServer
181 self.nixosModules.usecases.server.hydraServer 182 self.nixosModules.usecases.server.hydraServer
182 self.nixosModules.usecases.server.jellyfin 183 self.nixosModules.usecases.server.jellyfin
184 self.nixosModules.usecases.server.miniflux
183 self.nixosModules.usecases.server.monitoringServer 185 self.nixosModules.usecases.server.monitoringServer
184 self.nixosModules.usecases.server.nginx 186 self.nixosModules.usecases.server.nginx
185 self.nixosModules.usecases.server.radicale 187 self.nixosModules.usecases.server.radicale
@@ -200,11 +202,18 @@
200 hydraURL = "localhost:3000"; 202 hydraURL = "localhost:3000";
201 notificationSender = "hydra@localhost"; 203 notificationSender = "hydra@localhost";
202 secretKeyLocation = builtins.toFile 204 secretKeyLocation = builtins.toFile
203 "secret-key" 205 "store-secret-key"
204 "testServer:0d5jJjOxIoe6sTr2YKWkQxsM3ZcW+9GAk52yYNVxfYBUxS2nUfzfQk5Jo0OwHnT95bTLXCVNQETGV4m6KHsVCA=="; 206 "testServer:0d5jJjOxIoe6sTr2YKWkQxsM3ZcW+9GAk52yYNVxfYBUxS2nUfzfQk5Jo0OwHnT95bTLXCVNQETGV4m6KHsVCA==";
205 }; 207 };
206 208
207 services.jellyfin.allowedPaths = [ ]; 209 services.jellyfin.allowedPaths = [ ];
210
211 services.miniflux.adminCredentialsFile = builtins.toFile
212 "miniflux-secret.env"
213 ''
214 ADMIN_USERNAME=admin
215 ADMIN_PASSWORD='hello world'
216 '';
208 }) 217 })
209 ]; 218 ];
210 }; 219 };
diff --git a/usecases/server/miniflux.nix b/usecases/server/miniflux.nix
new file mode 100644
index 0000000..5e00320
--- /dev/null
+++ b/usecases/server/miniflux.nix
@@ -0,0 +1,29 @@
1inputs:
2
3{ config, lib, ... }:
4
5let
6 minifluxPort = 8083;
7in
8{
9 services.miniflux = {
10 enable = true;
11 config = {
12 LISTEN_ADDR = "[${config.topology.mainVpn.currentNodeIP}]:${toString minifluxPort}";
13 METRICS_COLLECTOR = "1";
14 METRICS_ALLOWED_NETWORKS = config.topology.mainVpn.subnet;
15 };
16 };
17
18 assertions = [
19 {
20 assertion = config.services.miniflux.enable ->
21 config.services.miniflux.adminCredentialsFile != null;
22 message = "Please provide non-default credentials for Miniflux";
23 }
24 ];
25
26 networking.firewall.interfaces.${config.topology.mainVpn.interfaceName}.allowedTCPPorts = [
27 minifluxPort
28 ];
29}