{pkgs, ...}:

with import ./network.nix;
{
  services = {
    mysql.enable = true;
    mysql.package = pkgs.unstable.mysql80;
    
    redis.enable = true;

    nextcloud = {
      enable = true;
      hostName = "${nextclouddomain}";
      https = true;
      package = pkgs.unstable.nextcloud22;

      caching.redis = true;

      autoUpdateApps.enable = true;
      autoUpdateApps.startAt = "05:00:00";
      logLevel = 1;

      config = {
        overwriteProtocol = "https";
        dbtype = "mysql";
        dbuser = "oc_giulio2";
        dbhost = "localhost";
        dbname = "nextcloud_final";
        dbpassFile = "/secrets/nextcloud/dbpass.txt";
        adminpassFile = "/secrets/nextcloud/adminpass.txt";
        adminuser = "giulio";
        extraTrustedDomains = ["${nextclouddomain}"];
      };
    };
  };

  systemd.services."nextcloud-setup" = {
    requires = ["mysql.service"];
    after = ["mysql.service"];
  };

  networking.extraHosts = ''
    ${architect-lan} ${clouddomain}
    ${architect-wg} ${clouddomain}
  '';

  services.nginx.virtualHosts.${clouddomain} = {
      forceSSL = true;
      enableACME = true;
    };
}