Files
nixos-config/services/nextcloud.nix
Alexander Szczepanski 585bd0df2a vps-arm-2024-11-22-19-23-45
2024-11-22 19:23:45 +01:00

109 lines
2.9 KiB
Nix

{
config,
lib,
pkgs,
...
}: {
services = {
nginx = {
virtualHosts = {
${config.services.nextcloud.hostName} = {
forceSSL = true;
enableACME = true;
};
};
};
postgresql = {
enable = true;
ensureDatabases = [
config.services.nextcloud.config.dbname
];
ensureUsers = [
{
name = config.services.nextcloud.config.dbuser;
ensureDBOwnership = true;
# ensurePermissions."DATABASE ${config.services.gitea.database.name}" = "ALL PRIVILEGES";
}
];
};
nextcloud = {
enable = true;
hostName = "nextcloud.szczepan.ski";
# Need to manually increment with every major upgrade.
package = pkgs.nextcloud30;
# Let NixOS install and configure the database automatically.
database.createLocally = true;
# Let NixOS install and configure Redis caching automatically.
configureRedis = true;
# Increase the maximum file upload size to avoid problems uploading videos.
maxUploadSize = "16G";
https = true;
autoUpdateApps = {
enable = true; # Set what time makes sense for you
startAt = "05:00:00";
};
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
bookmarks
calendar
contacts
deck
end_to_end_encryption
mail
maps
memories
music
notes
notify_push
onlyoffice
phonetrack
previewgenerator
tasks
unroundedcorners
;
# user_migration = pkgs.fetchNextcloudApp {
# sha256 = "sha256-OwALAM/WPJ4gXHQado0njfJL+ciDsvfbPjqGWk23Pm8=";
# url = "https://github.com/nextcloud-releases/user_migration/releases/download/v6.0.0/user_migration-v6.0.0.tar.gz";
# license = "agpl3Plus";
# };
};
phpOptions = {
"opcache.interned_strings_buffer" = "64";
};
settings = {
overwriteProtocol = "https";
default_phone_region = "DE";
log_type = "file";
"memories.exiftool" = "${lib.getExe pkgs.exiftool}";
"memories.vod.ffmpeg" = "${lib.getExe pkgs.ffmpeg-headless}";
"memories.vod.ffprobe" = "${pkgs.ffmpeg-headless}/bin/ffprobe";
"overwrite.cli.url" = "${config.services.nextcloud.hostName}";
"maintenance_window_start" = "1";
};
config = {
dbtype = "pgsql";
adminuser = "alex";
adminpassFile = config.sops.secrets.nextcloud-password.path;
};
};
};
systemd.services.nextcloud-cron = {
path = [pkgs.perl];
};
}