{
  pkgs,
  config,
  lib,
  sec,
  ...
}:
let
  cfg = config.machine.nextcloud;
in
with lib;
mkIf cfg.enable {
  services.nextcloud = {
    enable = cfg.enable;
    appstoreEnable = false;
    autoUpdateApps.enable = false;
    config.adminpassFile = sec."nextcloud/adminPassword".path;
    hostName = cfg.host;
    package = pkgs.nextcloud33;
    https = if cfg.host == "localhost" then false else true;
    settings = {
      default_phone_region = "RU";
      log_type = "file";
      loglevel = 1;
    };
    extraAppsEnable = true;
    extraApps = with pkgs.nextcloud33Packages.apps; {
      inherit
        mail
        contacts
        collectives
        impersonate
        ;
    };
  };

  services.nginx.virtualHosts.${config.services.nextcloud.hostName} = {
    forceSSL = true;
    enableACME = true;
  };

  sops.secrets = {
    "nextcloud/adminPassword" = { };
  };
}
