From e49137272e1b33a1bf1ed15f306a38a6e4ccfbc8 Mon Sep 17 00:00:00 2001 From: dadada Date: Tue, 28 Jun 2022 20:55:51 +0200 Subject: [PATCH] add kanboard --- nixos/gorgon/configuration.nix | 2 + nixos/modules/default.nix | 1 + nixos/modules/kanboard/default.nix | 55 ++++ nixos/modules/kanboard/kanboard-config.php | 279 +++++++++++++++++++++ 4 files changed, 337 insertions(+) create mode 100644 nixos/modules/kanboard/default.nix create mode 100644 nixos/modules/kanboard/kanboard-config.php diff --git a/nixos/gorgon/configuration.nix b/nixos/gorgon/configuration.nix index b9ac562..d3748aa 100644 --- a/nixos/gorgon/configuration.nix +++ b/nixos/gorgon/configuration.nix @@ -30,6 +30,7 @@ in autoUpgrade.enable = false; #headphones.enable = true; steam.enable = true; + kanboard.enable = true; #fido2 = { # credential = "04ea2813a116f634e90f9728dbbb45f1c0f93b7811941a5a14fb75e711794df0c26552dae2262619c1da2be7562ec9dd94888c71a9326fea70dfe16214b5ea8ec01473070000"; # enablePam = true; @@ -106,6 +107,7 @@ in networking.hosts = { "10.1.2.9" = [ "fgprinter.fginfo.tu-bs.de" ]; + "127.0.0.2" = [ "kanboard.dadada.li" ]; }; networking.wireguard.interfaces.uwupn = { diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index bb3cf37..44d1125 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -9,6 +9,7 @@ gitea = import ./gitea.nix; headphones = import ./headphones.nix; homepage = import ./homepage.nix; + kanboard = import ./kanboard; networking = import ./networking.nix; nix = import ./nix.nix inputs; share = import ./share.nix; diff --git a/nixos/modules/kanboard/default.nix b/nixos/modules/kanboard/default.nix new file mode 100644 index 0000000..0a9b641 --- /dev/null +++ b/nixos/modules/kanboard/default.nix @@ -0,0 +1,55 @@ +# Source https://github.com/NixOS/nixpkgs/issues/113384 +{ config, lib, pkgs, ... }: +let + cfg = config.dadada.kanboard; +in { + options = { + dadada.kanboard.enable = lib.mkEnableOption "Enable Kanboard"; + }; + + config = lib.mkIf cfg.enable { + services.phpfpm.pools.kanboard = { + user = "kanboard"; + group = "kanboard"; + settings = { + "listen.group" = "nginx"; + "pm" = "static"; + "pm.max_children" = 4; + }; + }; + users.users.kanboard.isSystemUser = true; + users.users.kanboard.group = "kanboard"; + users.groups.kanboard.members = ["kanboard"]; + + services.nginx = { + enable = true; + virtualHosts."kanboard.dadada.li" = { + root = pkgs.buildEnv { + name = "kanboard-configured"; + paths = [ + (pkgs.runCommand "kanboard-over" {meta.priority = 0;} '' + mkdir -p $out + for f in index.php jsonrpc.php ; do + echo " $out/$f + tail -n+2 ${pkgs.kanboard}/share/kanboard/$f \ + | sed 's^__DIR__^"${pkgs.kanboard}/share/kanboard"^' >> $out/$f + done + ln -s /var/lib/kanboard $out/data + ln -s ${./kanboard-config.php} $out/config.php + '') + { outPath = "${pkgs.kanboard}/share/kanboard"; meta.priority = 10; } + ]; + }; + locations = { + "/".index = "index.php"; + "~ \\.php$" = { + tryFiles = "$uri =404"; + extraConfig = '' + fastcgi_pass unix:${config.services.phpfpm.pools.kanboard.socket}; + ''; + }; + }; + }; + }; + }; +} diff --git a/nixos/modules/kanboard/kanboard-config.php b/nixos/modules/kanboard/kanboard-config.php new file mode 100644 index 0000000..89cb226 --- /dev/null +++ b/nixos/modules/kanboard/kanboard-config.php @@ -0,0 +1,279 @@ +