59 lines
1.6 KiB
Nix
59 lines
1.6 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
let
|
|
cfg = config.services.privatebin;
|
|
in {
|
|
options.services.privatebin = {
|
|
enable = lib.mkEnableOption "enable privatebin";
|
|
host = lib.mkOption {
|
|
type = lib.types.str;
|
|
example = "example.com";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
|
|
users.users.privatebin = {
|
|
description = "privatebin service user";
|
|
group = "privatebin";
|
|
isSystemUser = true;
|
|
};
|
|
users.groups.privatebin = {};
|
|
|
|
services.nginx.enable = true;
|
|
services.nginx.virtualHosts.${cfg.host} = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."~ \.php$" = {
|
|
root = lib.mkDerivation {
|
|
name = "privatebin";
|
|
src = lib.fetchFromGitHub {
|
|
owner = "privatebin";
|
|
repo = "privatebin";
|
|
rev = "d65bf02d7819a530c3c2a88f6f9947651fe5258d";
|
|
# sha256 = "";
|
|
};
|
|
installPhase = ''
|
|
cp -ar $src $out
|
|
'';
|
|
};
|
|
extraConfig = ''
|
|
fastcgi_pass unix:${config.services.phpfpm.pools.privatebin.socket};
|
|
fastcgi_index index.php;
|
|
'';
|
|
};
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d '/var/lib/privatebin' 0750 ${user} ${group} - -"
|
|
];
|
|
|
|
services.phpfpm.pools.privatebin = {
|
|
user = "privatebin";
|
|
group = "privatebin";
|
|
phpEnv = {
|
|
CONFIG_PATH = "${./conf.php}";
|
|
};
|
|
};
|
|
};
|
|
} |