{ config, lib, pkgs, ... }: with lib; let cfg = config.modules.services.tt-rss; in { options.modules.services.tt-rss = { enable = mkEnableOption "Tiny Tiny RSS Client"; domain = mkOption { type = types.str; }; realHost = mkOption { type = types.str; default = "rss.${cfg.domain}"; }; }; config = mkIf cfg.enable { services.tt-rss = { enable = true; virtualHost = cfg.realHost; selfUrlPath = "https://${cfg.realHost}"; themePackages = [ pkgs.tt-rss-theme-feedly ]; plugins = [ "auth_internal" "note" ]; database = { type = "pgsql"; password = null; host = "/run/postgresql"; }; }; services.nginx.virtualHosts.${cfg.realHost} = { forceSSL = true; useACMEHost = cfg.domain; }; }; }