{ pkgs, config, ... }: let domain = "cloud.hadi.diy"; in { services = { nginx.virtualHosts = { "${domain}" = { # DNS-01 challenge useACMEHost = "hadi.diy"; forceSSL = true; }; }; nextcloud = { enable = true; hostName = domain; package = pkgs.nextcloud31; database.createLocally = true; configureRedis = true; maxUploadSize = "16G"; https = true; autoUpdateApps.enable = true; settings = { trusted_domains = [ domain ]; default_phone_region = "FR"; overwriteprotocol = "https"; }; extraAppsEnable = true; extraApps = with config.services.nextcloud.package.packages.apps; { # List of apps we want to install and are already packaged in # https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/nextcloud/packages/nextcloud-apps.json # inherit calendar contacts notes onlyoffice tasks cookbook qownnotesapi; inherit cookbook; # Custom app example. # socialsharing_telegram = pkgs.fetchNextcloudApp rec { # url = # "https://github.com/nextcloud-releases/socialsharing/releases/download/v3.0.1/socialsharing_telegram-v3.0.1.tar.gz"; # license = "agpl3"; # sha256 = "sha256-8XyOslMmzxmX2QsVzYzIJKNw6rVWJ7uDhU1jaKJ0Q8k="; # }; }; config = { dbtype = "pgsql"; adminuser = "hadi"; adminpassFile = config.sops.secrets.nextcloud-pwd.path; }; # Suggested by Nextcloud's health check. phpOptions."opcache.interned_strings_buffer" = "16"; }; }; }