nix

configuration files that power my machines
Log | Files | Refs | README | LICENSE

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 }