67 lines
1.8 KiB
Nix
67 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};
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|