From 91509baa59e4f368034be37e27594649b2605953 Mon Sep 17 00:00:00 2001 From: "Reid \"reidlab" Date: Fri, 1 Nov 2024 19:54:26 -0700 Subject: [PATCH] matomo! --- hosts/nixos-server-reid/default.nix | 1 + hosts/nixos-server-reid/webapps/default.nix | 5 +++ modules/services/forgejo.nix | 23 ---------- modules/services/matomo.nix | 47 +++++++++++++++++++++ modules/services/mysql.nix | 29 +++++++++++++ modules/services/postgres.nix | 1 - 6 files changed, 82 insertions(+), 24 deletions(-) create mode 100644 modules/services/matomo.nix create mode 100644 modules/services/mysql.nix diff --git a/hosts/nixos-server-reid/default.nix b/hosts/nixos-server-reid/default.nix index f52f42d..0c62ff6 100755 --- a/hosts/nixos-server-reid/default.nix +++ b/hosts/nixos-server-reid/default.nix @@ -38,6 +38,7 @@ in { ssh.enableMoshSupport = true; postgres.enable = true; + mysql.enable = true; }; security.useDoas = true; diff --git a/hosts/nixos-server-reid/webapps/default.nix b/hosts/nixos-server-reid/webapps/default.nix index 39ceff2..5bccbf5 100755 --- a/hosts/nixos-server-reid/webapps/default.nix +++ b/hosts/nixos-server-reid/webapps/default.nix @@ -22,6 +22,11 @@ in { "reidlab.pink".dataDir = "/var/www/reidlab.pink"; }; + matomo = { + enable = true; + domain = "matomo.reidlab.pink"; + }; + metrics = { enable = true; domain = "grafana.reidlab.pink"; diff --git a/modules/services/forgejo.nix b/modules/services/forgejo.nix index 444abbf..af33b5d 100755 --- a/modules/services/forgejo.nix +++ b/modules/services/forgejo.nix @@ -3,12 +3,6 @@ with lib; let cfg = config.modules.services.forgejo; - - theme = pkgs.fetchzip { - url = "https://github.com/catppuccin/gitea/releases/download/v0.4.1/catppuccin-gitea.tar.gz"; - sha256 = "1wi4gi431b8hpmk6cr05jygplj76p6jwwlihajxz9131aqxym1fp"; - stripRoot = false; - }; in { options.modules.services.forgejo = { enable = mkEnableOption "enable forgejo, a lightweight git server"; @@ -37,15 +31,6 @@ in { PASSWORD_HASH_ALGO = "argon2"; PASSWORD_CHECK_PWN = true; }; - "ui" = { - THEMES = - builtins.concatStringsSep - "," - (["auto"] - ++ (map (name: removePrefix "theme-" (removeSuffix ".css" name)) - (attrNames (builtins.readDir theme)))); - DEFAULT_THEME = "catppuccin-mocha-red"; - }; "ui.meta" = { AUTHOR = "reidlab"; DESCRIPTION = "reidlab's git instance"; @@ -83,13 +68,5 @@ in { ''; }; }; - - systemd.services.forgejo = { - preStart = mkAfter '' - rm -rf ${config.services.forgejo.customDir}/public/assets - mkdir -p ${config.services.forgejo.customDir}/public/assets - ln -sf ${theme} ${config.services.forgejo.customDir}/public/assets/css - ''; - }; }; } diff --git a/modules/services/matomo.nix b/modules/services/matomo.nix new file mode 100644 index 0000000..2a8fd49 --- /dev/null +++ b/modules/services/matomo.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, options, ... }: + +with lib; +let + cfg = config.modules.services.matomo; +in { + options.modules.services.matomo = { + enable = mkOption { + type = types.bool; + default = false; + }; + domain = mkOption { + type = types.str; + default = "analytics.reidlab.pink"; + }; + }; + + config = mkIf cfg.enable { + services = { + matomo = { + enable = true; + package = pkgs.matomo-beta; + + periodicArchiveProcessing = true; + hostname = cfg.domain; + nginx = { + serverAliases = [ cfg.domain ]; + enableACME = true; + }; + }; + + # matomo doesn't automatically create the database + # just. make sure its named matomo + mysql = { + ensureDatabases = [ "matomo" ]; + ensureUsers = [ + { + name = "matomo"; + ensurePermissions = { + "matomo.*" = "ALL PRIVILEGES"; + }; + } + ]; + }; + }; + }; +} diff --git a/modules/services/mysql.nix b/modules/services/mysql.nix new file mode 100644 index 0000000..5f33b2a --- /dev/null +++ b/modules/services/mysql.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, options, ... }: + +with lib; +let + cfg = config.modules.services.mysql; +in { + options.modules.services.mysql = { + enable = mkOption { + type = types.bool; + default = false; + }; + }; + + config = mkIf cfg.enable { + services.mysql = { + enable = true; + package = pkgs.mariadb_110; + + settings = { + mysqld = { + max_allowed_packet = "128M"; + }; + client = { + max_allowed_packet = "128M"; + }; + }; + }; + }; +} \ No newline at end of file diff --git a/modules/services/postgres.nix b/modules/services/postgres.nix index 5074c6c..2e84a9c 100755 --- a/modules/services/postgres.nix +++ b/modules/services/postgres.nix @@ -11,7 +11,6 @@ in { config = mkIf cfg.enable { services.postgresql = { enable = true; - package = pkgs.postgresql_14; }; };