{ pkgs, config, ... }: { age.secrets = { nextcloud_db_pass = { file = ../../../secrets/nextcloud/nextcloud_db_pass.age; owner = "nextcloud"; group = "nextcloud"; }; nextcloud_admin_pass = { file = ../../../secrets/nextcloud/nextcloud_admin_pass.age; owner = "nextcloud"; group = "nextcloud"; }; }; services.nextcloud = { enable = true; package = pkgs.nextcloud33; configureRedis = true; hostName = "nextcloud.crans.org"; https = false; maxUploadSize = "4G"; config = { dbtype = "pgsql"; dbhost = "tealc.adm.crans.org"; dbuser = "nextcloud"; dbpassFile = config.age.secrets.nextcloud_db_pass.path; adminpassFile = config.age.secrets.nextcloud_admin_pass.path; }; phpOptions = { "opcache.interned_strings_buffer" = "32"; "opcache.memory_consumption" = "512"; }; settings = { trusted_proxies = [ # hodaur "172.16.10.145" ]; mail_domain = "crans.org"; mail_from_address = "root"; mail_smtphost = "smtp.crans.org"; mail_smtpport = 25; }; appstoreEnable = true; extraAppsEnable = true; }; # Activation CORS pour récuppérer les agendas depuis le wiki services.nginx.virtualHosts.${config.services.nextcloud.hostName}.locations."~* /remote.php/dav/public-calendars/[a-z]+\?export".extraConfig = '' add_header 'Access-Control-Allow-Origin' 'https://mediawiki.crans.org' always; add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS' always; if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' 86400; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; return 204; } ''; }