1 { pkgs, lib, config, inputs, hostName, ... }:
3 inherit (config.networking) domain;
4 inherit (config.services) nginx postgresql;
5 inherit (config.users) users groups;
9 systemd.sockets.miniflux = {
10 listenStreams = [ "/run/miniflux.sock" ];
11 wantedBy = [ "sockets.target" ];
12 socketConfig.SocketMode = "600";
13 socketConfig.SocketUser = nginx.user;
18 BASE_URL = "https://${srv}.${domain}"; # Base URL to generate HTML links and base path for cookies.
19 BATCH_SIZE = "3"; # Number of feeds to send to the queue for each interval.
20 CLEANUP_ARCHIVE_UNREAD_DAYS = "60";
21 CLEANUP_ARCHIVE_READ_DAYS = "30";
24 #METRICS_COLLECTOR = "1";
25 POLLING_FREQUENCY = "180";
26 POLLING_SCHEDULER = "entry_frequency";
27 SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL = "10080"; # 7*24*60 = 7d
29 WORKER_POOL_SIZE = "2";
31 #adminCredentialsFile = "/run/credentials/miniflux.service/credentials";
32 adminCredentialsFile = "/dev/null";
34 systemd.services.miniflux = {
35 partOf = [ "postgresql.service" ];
36 # For the socket-activation
37 wantedBy = lib.mkForce [ ];
39 RefuseManualStart = true;
42 ExecStart = lib.mkForce (pkgs.writeShellScript "miniflux" ''
43 . /run/credentials/miniflux.service/credentials
46 exec ${pkgs.miniflux}/bin/miniflux
48 LoadCredentialEncrypted = [
49 "credentials:${miniflux/credentials.cred}"
52 User = users."miniflux".name;
53 Group = groups."postgres".name;
56 "/run/systemd/journal/socket"
58 "/etc/pki/tls/certs/ca-bundle.crt"
62 DynamicUser = lib.mkForce false;
63 UMask = lib.mkForce "0022";
65 NoNewPrivileges = true;
68 #ProtectSystem = true;
76 services.postgresql.identMap = ''
77 # MAPNAME SYSTEM-USERNAME PG-USERNAME
78 user ${users.miniflux.name} ${users.miniflux.name}
80 users.users."miniflux" = {
82 group = groups."postgres".name;
84 services.nginx.virtualHosts."${srv}.${domain}" = {
88 access_log /var/log/nginx/${domain}/${srv}/access.log json buffer=32k;
89 error_log /var/log/nginx/${domain}/${srv}/error.log warn;
92 proxyPass = "http://unix:/run/miniflux.sock:/";
95 systemd.services.nginx.serviceConfig.LogsDirectory =
96 lib.mkForce [ "nginx/${domain}/${srv}" ];