nixos/hedgedoc: add configureNginx option (#427898)

This commit is contained in:
Sandro
2025-09-02 18:18:03 +02:00
committed by GitHub
+32 -4
View File
@@ -47,6 +47,12 @@ in
package = lib.mkPackageOption pkgs "hedgedoc" { };
enable = lib.mkEnableOption "the HedgeDoc Markdown Editor";
configureNginx = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Whether to configure nginx as a reverse proxy.";
};
settings = mkOption {
type = types.submodule {
freeformType = settingsFormat.type;
@@ -249,10 +255,32 @@ in
isSystemUser = true;
};
services.hedgedoc.settings = {
defaultNotePath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/default.md";
docsPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/docs";
viewPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/views";
services = {
hedgedoc.settings = {
defaultNotePath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/default.md";
docsPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/docs";
viewPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/views";
};
nginx = lib.mkIf cfg.configureNginx.enable {
enable = true;
upstreams.hedgedoc.servers."unix:${config.services.hedgedoc.settings.path}" = { };
virtualHosts."${cfg.settings.domain}" = {
enableACME = true;
forceSSL = true;
locations = {
"/" = {
proxyPass = "http://hedgedoc";
recommendedProxySettings = true;
};
"/socket.io/" = {
proxyPass = "http://hedgedoc";
proxyWebsockets = true;
recommendedProxySettings = true;
};
};
};
};
};
systemd.services.hedgedoc = {