about summary refs log tree commit diff
path: root/modules/nixos/plausible.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/plausible.nix')
-rw-r--r--modules/nixos/plausible.nix129
1 files changed, 0 insertions, 129 deletions
diff --git a/modules/nixos/plausible.nix b/modules/nixos/plausible.nix
deleted file mode 100644
index d63e3ab..0000000
--- a/modules/nixos/plausible.nix
+++ /dev/null
@@ -1,129 +0,0 @@
-{
-  config,
-  inputs,
-  lib,
-  ...
-}:
-with lib;
-let
-  cfg = config.nixfiles.modules.plausible;
-in
-{
-  options.nixfiles.modules.plausible = {
-    enable = mkEnableOption "Plausible Analytics";
-
-    port = mkOption {
-      description = "Port.";
-      type = with types; port;
-      default = 8000;
-    };
-
-    domain = mkOption {
-      description = "Domain name sans protocol scheme.";
-      type = with types; nullOr str;
-      default = "plausible.${config.networking.domain}";
-    };
-  };
-
-  config =
-    let
-      db = "plausible";
-    in
-    mkIf cfg.enable {
-      _module.args.libPlausible = {
-        htmlPlausibleScript =
-          {
-            domain ? "$host",
-            src ? "https://${cfg.domain}/js/script.js",
-          }:
-          ''<script defer data-domain="${domain}" src="${src}"></script>'';
-      };
-
-      secrets = {
-        plausible-key.file = "${inputs.self}/secrets/plausible-key";
-        plausible-admin-password.file = "${inputs.self}/secrets/plausible-admin-password";
-        plausible-smtp-password.file = "${inputs.self}/secrets/smtp-password";
-      };
-
-      nixfiles.modules = {
-        nginx = {
-          enable = true;
-          upstreams.plausible.servers."127.0.0.1:${toString cfg.port}" = { };
-          virtualHosts.${cfg.domain}.locations."/" = {
-            proxyPass = "http://plausible";
-            proxyWebsockets = true;
-          };
-        };
-        postgresql = {
-          enable = true;
-          extraPostStart = [
-            ''
-              $PSQL "${db}" -tAc 'GRANT ALL ON SCHEMA "public" TO "${db}"'
-              $PSQL "${db}" -tAc 'CREATE EXTENSION IF NOT EXISTS citext'
-            ''
-          ];
-        };
-        clickhouse.enable = true;
-      };
-
-      services.postgresql = {
-        ensureDatabases = [ db ];
-        ensureUsers = [
-          {
-            name = db;
-            ensureDBOwnership = true;
-          }
-        ];
-      };
-
-      services.plausible = {
-        enable = true;
-
-        adminUser = {
-          name = "admin";
-          email = "admin@${my.domain.shire}";
-          passwordFile = config.secrets.plausible-admin-password.path;
-          activate = false;
-        };
-
-        mail = {
-          email = "admin+plausible@${my.domain.shire}";
-          smtp = {
-            hostAddr = my.domain.shire;
-            hostPort = 465;
-            enableSSL = true;
-            user = "azahi@${my.domain.shire}";
-            passwordFile = config.secrets.plausible-smtp-password.path;
-          };
-        };
-
-        database = {
-          clickhouse = {
-            setup = false;
-            url = "http://127.0.0.1:8123/default";
-          };
-
-          postgres = {
-            setup = true;
-            dbname = db;
-          };
-        };
-
-        server = {
-          baseUrl = "https://${cfg.domain}";
-          disableRegistration = true;
-          listenAddress = "127.0.0.1";
-          inherit (cfg) port;
-          secretKeybaseFile = config.secrets.plausible-key.path;
-        };
-      };
-
-      systemd.services.plausible = rec {
-        after = [
-          "postgresql.service"
-          "clickhouse.service"
-        ];
-        requires = after;
-      };
-    };
-}

Consider giving Nix/NixOS a try! <3