From 9deefd02e59581973acdbda35df8db031bc2b7f5 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Mon, 26 May 2025 10:29:09 +0200 Subject: [PATCH] services: plausible: init --- modules/services/plausible/module.nix | 39 ++++++++++++++++++++++++++ modules/services/postgresql/module.nix | 5 ++++ 2 files changed, 44 insertions(+) create mode 100644 modules/services/plausible/module.nix diff --git a/modules/services/plausible/module.nix b/modules/services/plausible/module.nix new file mode 100644 index 0000000..146d8c0 --- /dev/null +++ b/modules/services/plausible/module.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.options) mkEnableOption; + cfg = config.modules.system.services.plausible; + + port = 4030; + domain = "analytics.copeberg.org"; +in { + options.modules.system.services.plausible.enable = mkEnableOption "Plausible, an analytics service"; + config = mkIf cfg.enable { + services.plausible = { + enable = true; + server = { + baseUrl = domain; + secretKeybaseFile = "/run/secrets/plausible-secret-key-base"; + disableRegistration = false; + }; + database.postgres = { + dbname = "plausible"; + }; + }; + + services.nginx = { + enable = true; + virtualHosts.${domain} = { + addSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:${toString port}"; + }; + }; + }; + }; +} diff --git a/modules/services/postgresql/module.nix b/modules/services/postgresql/module.nix index bbf1ff4..e8ee68f 100644 --- a/modules/services/postgresql/module.nix +++ b/modules/services/postgresql/module.nix @@ -29,6 +29,7 @@ in { "git" "grafana" "stalwart" + "plausible" ]; ensureUsers = [ @@ -54,6 +55,10 @@ in { name = "stalwart"; ensureDBOwnership = true; } + { + name = "plausible"; + ensureDBOwnership = true; + } ]; settings = { # taken from https://pgconfigurator.cybertec.at/