{ config, pkgs, lib, ... }: {
  sops.secrets.clicks_nextcloud_db_password = {
    mode = lib.mkForce "0440";
    group = lib.mkForce "nextcloud";
  };

  users.users.nextcloud = {
    isSystemUser = true;
    createHome = true;
    home = "/var/lib/nextcloud";
    group = config.users.groups.nextcloud.name;
    shell = pkgs.bashInteractive;
  };
  users.groups.nextcloud = { };

  services.nextcloud.enable = true;
  services.nextcloud.config.adminpassFile =
    config.sops.secrets.nextcloud_admin_password.path;
  services.nextcloud.hostName = "nextcloud.clicks.codes";
  services.nextcloud.package = pkgs.nextcloud27;
  services.nextcloud.poolSettings = {
    pm = "dynamic";
    "pm.max_children" = "32";
    "pm.max_requests" = "500";
    "pm.max_spare_servers" = "4";
    "pm.min_spare_servers" = "2";
    "pm.start_servers" = "2";
    "listen.owner" = config.users.users.nextcloud.name;
    "listen.group" = config.users.users.nextcloud.group;
  };

  services.nextcloud.config = {
    dbtype = "pgsql";
    dbport = config.services.postgresql.port;
    dbpassFile = config.sops.secrets.clicks_nextcloud_db_password.path;
    dbname = "nextcloud";
    dbhost = "localhost";
    extraTrustedDomains = [ "nextcloud.clicks.codes" "docs.clicks.codes" ];
  };

  services.nextcloud.extraOptions = { social_login_auto_redirect = true; };

  services.nextcloud.extraApps = {
    sociallogin = pkgs.fetchNextcloudApp {
      url =
        "https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.5.3/release.tar.gz";
      sha256 = "sha256-96/wtK7t23fXVRcntDONjgb5bYtZuaNZzbvQCa5Gsj4=";
    };
    richdocumentscode = pkgs.fetchNextcloudApp {
      url = "redacted";
      sha256 = "sha256-XYtjBZCIQ6+PL3BNLSZfJTgLLpOyphzR5HOAwI7bWx0=";
    };
    richdocuments = pkgs.fetchNextcloudApp {
      url =
        "https://github.com/nextcloud-releases/richdocuments/releases/download/v8.2.0/richdocuments-v8.2.0.tar.gz";
      sha256 = "sha256-PKw7FXSWvden2+6XjnUDOvbTF71slgeTF/ktS/l2+Dk=";
    };
  };

  sops.secrets.nextcloud_admin_password = {
    mode = "0600";
    owner = config.users.users.nextcloud.name;
    group = config.users.users.nextcloud.group;
    sopsFile = ../secrets/nextcloud.json;
    format = "json";
  };
}
