2024-06-06 17:56:34 +02:00
|
|
|
{ config, my, secrets, ... }:
|
|
|
|
|
2024-08-17 14:58:33 +02:00
|
|
|
let fqdn = "todo.${my.domain}";
|
2024-06-06 17:56:34 +02:00
|
|
|
in {
|
|
|
|
sops.secrets."vikunja/env" = {
|
|
|
|
sopsFile = ../secrets/sops/vikunja.yaml;
|
|
|
|
restartUnits = [ "vikunja.service" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
services.vikunja = {
|
|
|
|
enable = true;
|
|
|
|
frontendScheme = "https";
|
2024-08-17 14:58:33 +02:00
|
|
|
frontendHostname = fqdn;
|
2024-06-06 17:56:34 +02:00
|
|
|
environmentFiles = [ secrets."vikunja/env".path ];
|
2024-08-17 16:50:52 +02:00
|
|
|
database.type = "sqlite";
|
2024-06-06 17:56:34 +02:00
|
|
|
settings = {
|
|
|
|
service = {
|
|
|
|
timezone = "Europe/Vienna";
|
2024-08-17 14:58:33 +02:00
|
|
|
publicurl = fqdn;
|
2024-06-06 17:56:34 +02:00
|
|
|
enableregistration = false;
|
|
|
|
};
|
|
|
|
log.http = "off";
|
2024-08-17 16:50:52 +02:00
|
|
|
files.maxsize = "64MB";
|
2024-06-06 17:56:34 +02:00
|
|
|
defaultsettings.week_start = 1;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2024-08-17 16:50:52 +02:00
|
|
|
services.nginx.virtualHosts.${fqdn} = let serverCfg = config.services.vikunja;
|
|
|
|
in {
|
|
|
|
forceSSL = true;
|
|
|
|
useACMEHost = my.domain;
|
|
|
|
kTLS = true;
|
|
|
|
locations."/" = {
|
|
|
|
proxyPass = "http://[::1]:${toString serverCfg.port}";
|
|
|
|
proxyWebsockets = true;
|
|
|
|
extraConfig = ''
|
|
|
|
client_max_body_size 64M;
|
|
|
|
'';
|
|
|
|
};
|
2024-06-06 17:56:34 +02:00
|
|
|
};
|
|
|
|
}
|