mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-25 23:23:07 +00:00
73 lines
1.7 KiB
Nix
73 lines
1.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
|
|
inherit (lib)
|
|
mkIf
|
|
mkEnableOption
|
|
mkOption
|
|
types
|
|
literalExpression
|
|
;
|
|
cfg = config.services.nextcloud-whiteboard-server;
|
|
|
|
in
|
|
{
|
|
options.services.nextcloud-whiteboard-server = {
|
|
|
|
enable = mkEnableOption "Nextcloud backend server for the Whiteboard app";
|
|
|
|
settings = mkOption {
|
|
type = types.attrsOf types.str;
|
|
default = { };
|
|
description = ''
|
|
Settings to configure backend server. Especially the Nextcloud host
|
|
url has to be set. The required environment variable `JWT_SECRET_KEY`
|
|
should be set via the secrets option.
|
|
'';
|
|
example = literalExpression ''
|
|
{
|
|
NEXTCLOUD_URL = "https://nextcloud.example.org";
|
|
}
|
|
'';
|
|
};
|
|
|
|
secrets = lib.mkOption {
|
|
type = with types; listOf str;
|
|
description = ''
|
|
A list of files containing the various secrets. Should be in the
|
|
format expected by systemd's `EnvironmentFile` directory.
|
|
'';
|
|
default = [ ];
|
|
};
|
|
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
systemd.services.nextcloud-whiteboard-server = {
|
|
description = "Nextcloud backend server for the Whiteboard app";
|
|
wantedBy = [ "multi-user.target" ];
|
|
after = [ "network-online.target" ];
|
|
wants = [ "network-online.target" ];
|
|
environment = cfg.settings;
|
|
serviceConfig = {
|
|
ExecStart = "${lib.getExe pkgs.nextcloud-whiteboard-server}";
|
|
WorkingDirectory = "%S/whiteboard";
|
|
StateDirectory = "whiteboard";
|
|
EnvironmentFile = [ cfg.secrets ];
|
|
DynamicUser = true;
|
|
};
|
|
};
|
|
|
|
};
|
|
|
|
meta.maintainers = with lib.maintainers; [ onny ];
|
|
|
|
}
|