depot/hosts/VEGAS/services/nextcloud/default.nix

59 lines
1.5 KiB
Nix

{ config, lib, pkgs, tools, ... }:
let
cfg = config.services.nextcloud.config;
in
{
age.secrets = {
nextcloud-adminpass = {
file = ../../../../secrets/nextcloud-adminpass.age;
owner = "nextcloud";
group = "nextcloud";
mode = "0400";
};
nextcloud-dbpass = {
file = ../../../../secrets/nextcloud-dbpass.age;
owner = "nextcloud";
group = "nextcloud";
mode = "0400";
};
};
services.nextcloud = {
package = pkgs.nextcloud23;
enable = true;
https = true;
hostName = "storage.${tools.meta.domain}";
home = "/srv/storage/www-app/nextcloud";
maxUploadSize = "4G";
enableImagemagick = true;
caching = with lib; flip genAttrs (_: true) [
"apcu" "redis"
];
autoUpdateApps = {
enable = true;
startAt = "02:00";
};
config = {
dbhost = "/run/postgresql";
dbtype = "pgsql";
dbname = "storage";
dbuser = "storage";
dbpassFile = config.age.secrets.nextcloud-adminpass.path;
overwriteProtocol = "https";
adminuser = "sa";
adminpassFile = config.age.secrets.nextcloud-dbpass.path;
};
};
services.postgresql.authentication = "local ${cfg.dbname} ${cfg.dbuser} md5";
services.nginx.virtualHosts."${config.services.nextcloud.hostName}" = {
addSSL = true;
enableACME = true;
};
systemd.services = {
phpfpm-nextcloud.aliases = [ "nextcloud.service" ];
nextcloud-setup.after = [ "postgresql.service" ];
};
}