From 445ad3c38e08277f1e286f1db2a95fa6a79b1cd4 Mon Sep 17 00:00:00 2001 From: Ivan Reshetnikov Date: Sat, 19 Aug 2023 20:27:34 +0500 Subject: [PATCH] Add plausible --- nixos/configuration.nix | 2 ++ nixos/programs/clickhouse.nix | 6 +++++ nixos/programs/nginx.nix | 11 ++++++++ nixos/programs/plausible.nix | 49 +++++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 nixos/programs/clickhouse.nix create mode 100644 nixos/programs/plausible.nix diff --git a/nixos/configuration.nix b/nixos/configuration.nix index a95381d..a88c70b 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -18,6 +18,8 @@ ./programs/synapse.nix ./programs/fail2ban.nix ./programs/maddy.nix + ./programs/plausible.nix + ./programs/clickhouse.nix ]; # Enable flakes diff --git a/nixos/programs/clickhouse.nix b/nixos/programs/clickhouse.nix new file mode 100644 index 0000000..dab102a --- /dev/null +++ b/nixos/programs/clickhouse.nix @@ -0,0 +1,6 @@ +{ config, ... }: +{ + services.clickhouse = { + enable = true; + }; +} diff --git a/nixos/programs/nginx.nix b/nixos/programs/nginx.nix index 665548a..7debbca 100644 --- a/nixos/programs/nginx.nix +++ b/nixos/programs/nginx.nix @@ -58,6 +58,17 @@ in { }; }; + # Plausible + "plausible.comfycamp.space" = { + useACMEHost = "comfycamp.space"; + forceSSL = true; + locations = { + "/" = { + proxyPass = "http://127.0.0.1:55005"; + }; + }; + }; + # Mail: MTA-STS "mta-sts.comfycamp.space" = { useACMEHost = "comfycamp.space"; diff --git a/nixos/programs/plausible.nix b/nixos/programs/plausible.nix new file mode 100644 index 0000000..399271b --- /dev/null +++ b/nixos/programs/plausible.nix @@ -0,0 +1,49 @@ +{ config, lib, ... }: +{ + services.plausible = { + enable = true; + releaseCookiePath = "/var/lib/secrets/plausible/release-cookie.txt"; + database.postgres = { + setup = false; + dbname = "plausible"; + }; + database.clickhouse = { + setup = false; + url = "http://localhost:8123/plausible"; + }; + server = { + baseUrl = "https://plausible.comfycamp.space"; + port = 55005; + secretKeybaseFile = "/var/lib/secrets/plausible/keybase.txt"; + }; + adminUser = { + name = "lumin"; + email = "lumin@comfycamp.space"; + passwordFile = "/var/lib/secrets/plausible/admin-pass.txt"; + }; + mail = { + email = "plausible@comfycamp.space"; + smtp = { + enableSSL = true; + hostAddr = "comfycamp.space"; + hostPort = 465; + passwordFile = "/var/lib/secrets/plausible/smtp-pass.txt"; + user = "plausible@comfycamp.space"; + }; + }; + }; + + systemd.services.plausible.script = lib.mkForce '' + export CONFIG_DIR=$CREDENTIALS_DIRECTORY + + export RELEASE_COOKIE="$(< $CREDENTIALS_DIRECTORY/RELEASE_COOKIE )" + + # Do not create the database. + # https://github.com/plausible/analytics/issues/405 + # ${config.services.plausible.package}/createdb.sh + + ${config.services.plausible.package}/migrate.sh + + exec plausible start + ''; +}