diff --git a/modules/services/rss-bridge/default.nix b/modules/services/rss-bridge/default.nix new file mode 100644 index 0000000..f1b3c34 --- /dev/null +++ b/modules/services/rss-bridge/default.nix @@ -0,0 +1,34 @@ +# Get RSS feeds from websites that don't natively have one +{ config, lib, ... }: +let + cfg = config.my.services.rss-bridge; + #domain = "rss-bridge.${config.networking.domain}"; + domain = "rss-bridge.buehler.rocks"; +in +{ + options.my.services.rss-bridge = { + enable = lib.mkEnableOption "RSS-Bridge service"; + }; + + config = lib.mkIf cfg.enable { + services.rss-bridge = { + enable = true; + whitelist = [ "*" ]; # Whitelist all + virtualHost = domain; + }; + + services.nginx.virtualHosts.${domain} = { + forceSSL = true; + enableACME = true; + }; + + webapps.apps.rss-bridge = { + dashboard = { + name = "RSS-Bridge"; + category = "app"; + icon = "rss"; + link = "https://${domain}"; + }; + }; + }; +} diff --git a/nixos/modules/webapps/rss-bridge.nix b/nixos/modules/webapps/rss-bridge.nix new file mode 100644 index 0000000..46f0b8f --- /dev/null +++ b/nixos/modules/webapps/rss-bridge.nix @@ -0,0 +1,28 @@ +{ config, pkgs, ... }: +let + domain = "rss-bridge.buehler.rocks"; +in +{ + services.rss-bridge = { + enable = true; + virtualHost = domain; + }; + + services.nginx.virtualHosts.${domain} = { + forceSSL = true; + enableACME = true; + }; + + security.acme.certs.${domain} = { + group = "nginx"; + }; + + webapps.apps.rss-bridge = { + dashboard = { + name = "RSS-Bridge"; + category = "app"; + icon = "rss"; + link = "https://rss-bridge.buehler.rocks"; + }; + }; +} diff --git a/nixos/newton/configuration.nix b/nixos/newton/configuration.nix index d83f2a2..41903e7 100644 --- a/nixos/newton/configuration.nix +++ b/nixos/newton/configuration.nix @@ -5,6 +5,7 @@ ./disks.nix ./network.nix ./syncthing.nix + ./services.nix #../modules/backup.nix ../modules/compression.nix ../modules/docker.nix @@ -13,13 +14,13 @@ ../modules/nix.nix ../modules/ssh.nix ../modules/users.nix - ../modules/webapps/config.nix ../modules/webapps/gitea.nix ../modules/webapps/hedgedoc.nix ../modules/webapps/homer.nix ../modules/webapps/navidrome.nix ../modules/webapps/paperless.nix ../modules/webapps/radicale.nix + #../modules/webapps/rss-bridge.nix ]; networking.hostName = "newton"; diff --git a/nixos/newton/services.nix b/nixos/newton/services.nix new file mode 100644 index 0000000..259ad50 --- /dev/null +++ b/nixos/newton/services.nix @@ -0,0 +1,12 @@ +# Deployed services +{ config, lib, ... }: +let + secrets = config.sops.secrets; +in +{ + # List services that you want to enable: + my.services = { + # RSS provider for websites that do not provide any feeds + rss-bridge.enable = true; + }; +}