71 lines
1.5 KiB
Nix
71 lines
1.5 KiB
Nix
{ pkgs, config, lib, ... }:
|
|
|
|
let
|
|
domain = "cloud.giugl.io";
|
|
redis_port = 6379;
|
|
|
|
utilities = import ./utilities.nix { inherit lib config; };
|
|
inherit (utilities) architectInterfaceAddress;
|
|
in
|
|
{
|
|
services = {
|
|
nginx.virtualHosts.${domain} = {
|
|
forceSSL = true;
|
|
enableACME = true;
|
|
};
|
|
|
|
mysql = {
|
|
enable = true;
|
|
package = pkgs.mariadb;
|
|
};
|
|
|
|
redis = {
|
|
vmOverCommit = true;
|
|
servers."nextcloud" = {
|
|
enable = true;
|
|
port = redis_port;
|
|
};
|
|
};
|
|
|
|
nextcloud = {
|
|
enable = true;
|
|
hostName = domain;
|
|
https = true;
|
|
package = pkgs.unstablePkgs.nextcloud26;
|
|
datadir = "/services/nextcloud";
|
|
configureRedis = true;
|
|
caching = {
|
|
redis = true;
|
|
};
|
|
|
|
autoUpdateApps.enable = true;
|
|
autoUpdateApps.startAt = "05:00:00";
|
|
|
|
maxUploadSize = "50G";
|
|
|
|
config = {
|
|
overwriteProtocol = "https";
|
|
dbtype = "mysql";
|
|
dbuser = "nextcloud";
|
|
dbhost = "localhost";
|
|
dbname = "nextcloud";
|
|
dbpassFile = "/secrets/nextcloud/dbpass.txt";
|
|
adminpassFile = "/secrets/nextcloud/dbpass.txt";
|
|
extraTrustedDomains = [ "${domain}" ];
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.services."nextcloud-setup" = {
|
|
requires = [ "mysql.service" ];
|
|
after = [ "mysql.service" ];
|
|
};
|
|
|
|
networking.extraHosts = ''
|
|
${architectInterfaceAddress "lan"} ${domain}
|
|
${architectInterfaceAddress "wireguard"} ${domain}
|
|
${architectInterfaceAddress "tailscale"} ${domain}
|
|
'';
|
|
|
|
}
|