miniflux.nix (971B)
1 { 2 config, 3 lib, 4 ... 5 }: let 6 cfg = config.services.haravara.miniflux; 7 in { 8 options.services.haravara.miniflux = { 9 enable = lib.mkEnableOption "Miniflux RSS Reader"; 10 domain = lib.mkOption { 11 type = lib.types.str; 12 description = "Domain for the Miniflux instance"; 13 }; 14 address = lib.mkOption { 15 type = lib.types.str; 16 default = "127.0.0.1:8931"; 17 description = "Address for Miniflux to listen on"; 18 }; 19 credentialsFile = lib.mkOption { 20 type = lib.types.path; 21 description = "Path to file containing Miniflux admin credentials"; 22 }; 23 }; 24 25 config = lib.mkIf cfg.enable { 26 services.miniflux = { 27 enable = true; 28 config = { 29 LISTEN_ADDR = cfg.address; 30 RUN_MIGRATIONS = 1; 31 CREATE_ADMIN = 0; 32 }; 33 adminCredentialsFile = cfg.credentialsFile; 34 }; 35 36 services.caddy.virtualHosts."${cfg.domain}".extraConfig = '' 37 reverse_proxy ${cfg.address} 38 ''; 39 }; 40 }