66 lines
1.8 KiB
Nix
66 lines
1.8 KiB
Nix
# 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"];
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d /var/lib/kanboard/data 0750 kanboard nginx - -"
|
|
];
|
|
|
|
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 "<?php require('$out/config.php');" > $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};
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|