about summary refs log tree commit diff
path: root/nixos/modules/services/web-apps/rss-bridge.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/web-apps/rss-bridge.nix')
-rw-r--r--nixos/modules/services/web-apps/rss-bridge.nix150
1 files changed, 0 insertions, 150 deletions
diff --git a/nixos/modules/services/web-apps/rss-bridge.nix b/nixos/modules/services/web-apps/rss-bridge.nix
deleted file mode 100644
index b03c7f7e8069..000000000000
--- a/nixos/modules/services/web-apps/rss-bridge.nix
+++ /dev/null
@@ -1,150 +0,0 @@
-{ config, lib, pkgs, ... }:
-with lib;
-let
-  cfg = config.services.rss-bridge;
-
-  poolName = "rss-bridge";
-
-  configAttr = lib.recursiveUpdate { FileCache.path = "${cfg.dataDir}/cache/"; } cfg.config;
-  cfgHalf = lib.mapAttrsRecursive (path: value: let
-    envName = lib.toUpper ("RSSBRIDGE_" + lib.concatStringsSep "_" path);
-    envValue = if lib.isList value then
-      lib.concatStringsSep "," value
-    else if lib.isBool value then
-      lib.boolToString value
-    else
-      toString value;
-  in "fastcgi_param \"${envName}\" \"${envValue}\";") configAttr;
-  cfgEnv = lib.concatStringsSep "\n" (lib.collect lib.isString cfgHalf);
-in
-{
-  imports = [
-    (mkRenamedOptionModule [ "services" "rss-bridge" "whitelist" ] [ "services" "rss-bridge" "config" "system" "enabled_bridges" ])
-  ];
-
-  options = {
-    services.rss-bridge = {
-      enable = mkEnableOption "rss-bridge";
-
-      user = mkOption {
-        type = types.str;
-        default = "nginx";
-        description = ''
-          User account under which both the service and the web-application run.
-        '';
-      };
-
-      group = mkOption {
-        type = types.str;
-        default = "nginx";
-        description = ''
-          Group under which the web-application run.
-        '';
-      };
-
-      pool = mkOption {
-        type = types.str;
-        default = poolName;
-        description = ''
-          Name of existing phpfpm pool that is used to run web-application.
-          If not specified a pool will be created automatically with
-          default values.
-        '';
-      };
-
-      dataDir = mkOption {
-        type = types.str;
-        default = "/var/lib/rss-bridge";
-        description = ''
-          Location in which cache directory will be created.
-          You can put `config.ini.php` in here.
-        '';
-      };
-
-      virtualHost = mkOption {
-        type = types.nullOr types.str;
-        default = "rss-bridge";
-        description = ''
-          Name of the nginx virtualhost to use and setup. If null, do not setup any virtualhost.
-        '';
-      };
-
-      config = mkOption {
-        type = with types; attrsOf (attrsOf (oneOf [ bool int str (listOf str) ]));
-        default = {};
-        defaultText = options.literalExpression "FileCache.path = \"\${config.services.rss-bridge.dataDir}/cache/\"";
-        example = options.literalExpression ''
-          {
-            system.enabled_bridges = [ "*" ];
-            error = {
-              output = "http";
-              report_limit = 5;
-            };
-            FileCache = {
-              enable_purge = true;
-            };
-          }
-        '';
-        description = ''
-          Attribute set of arbitrary config options.
-          Please consult the documentation at the [wiki](https://rss-bridge.github.io/rss-bridge/For_Hosts/Custom_Configuration.html)
-          and [sample config](https://github.com/RSS-Bridge/rss-bridge/blob/master/config.default.ini.php) to see a list of available options.
-        '';
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-    services.phpfpm.pools = mkIf (cfg.pool == poolName) {
-      ${poolName} = {
-        user = cfg.user;
-        settings = mapAttrs (name: mkDefault) {
-          "listen.owner" = cfg.user;
-          "listen.group" = cfg.user;
-          "listen.mode" = "0600";
-          "pm" = "dynamic";
-          "pm.max_children" = 75;
-          "pm.start_servers" = 10;
-          "pm.min_spare_servers" = 5;
-          "pm.max_spare_servers" = 20;
-          "pm.max_requests" = 500;
-          "catch_workers_output" = 1;
-        };
-      };
-    };
-    systemd.tmpfiles.settings.rss-bridge = let
-      perm = {
-        mode = "0750";
-        user = cfg.user;
-        group = cfg.group;
-      };
-    in {
-      "${configAttr.FileCache.path}".d = perm;
-      "${cfg.dataDir}/config.ini.php".z = perm;
-    };
-
-    services.nginx = mkIf (cfg.virtualHost != null) {
-      enable = true;
-      virtualHosts = {
-        ${cfg.virtualHost} = {
-          root = "${pkgs.rss-bridge}";
-
-          locations."/" = {
-            tryFiles = "$uri /index.php$is_args$args";
-          };
-
-          locations."~ ^/index.php(/|$)" = {
-            extraConfig = ''
-              include ${config.services.nginx.package}/conf/fastcgi_params;
-              fastcgi_split_path_info ^(.+\.php)(/.+)$;
-              fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.socket};
-              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-              fastcgi_param RSSBRIDGE_DATA ${cfg.dataDir};
-              ${cfgEnv}
-            '';
-          };
-        };
-      };
-    };
-  };
-}