diff --git a/hosts/nextcloud/default.nix b/hosts/nextcloud/default.nix index 2c9e39d..304becf 100644 --- a/hosts/nextcloud/default.nix +++ b/hosts/nextcloud/default.nix @@ -1,29 +1,35 @@ -{ config, pkgs, lib, modulesPath, ... }: +{ + config, + pkgs, + lib, + modulesPath, + ... +}: { - ################# COMMON STUFF - # what do the config.nix files have in common comes here # - imports = [ - "${modulesPath}/virtualisation/proxmox-lxc.nix" + "${modulesPath}/virtualisation/proxmox-lxc.nix" ]; - # proxmox-lxc.nix hat fuer bestimmte optionen eigene defaulwerte - # diese koennen in dem dazugehoerigen nix file nachgelesen werden + nixpkgs.config.permittedInsecurePackages = [ + "nextcloud-31.0.14" + ]; + + # proxmox-lxc.nix hat fuer bestimmte optionen eigene defaulwerte + # diese koennen in dem dazugehoerigen nix file nachgelesen werden system.stateVersion = "22.11"; - -# system.autoUpgrade.enable = true; -# system.autoUpgrade.allowReboot = true; -# # system.autoUpgrade.channel = https://nixos.org/channels/nixos-22.11; -# nix.settings.auto-optimise-store = true; -# nix.optimise.automatic = true; -# nix.gc.automatic = true; -# nix.gc.options = "--delete-older-than 5d"; + # system.autoUpgrade.enable = true; + # system.autoUpgrade.allowReboot = true; + # # system.autoUpgrade.channel = https://nixos.org/channels/nixos-22.11; + # nix.settings.auto-optimise-store = true; + # nix.optimise.automatic = true; + # nix.gc.automatic = true; + # nix.gc.options = "--delete-older-than 5d"; proxmoxLXC = { -# mach mal auf false + # mach mal auf false manageNetwork = true; manageHostName = false; }; @@ -32,29 +38,29 @@ enableIPv6 = false; }; -#### 2024-04-14 vater -#### Nicht erfolgreicher Test zur Behebung vom Problem, dass wegen falsch gesetzten Umgebungsvariablen nichts - auch nichts fuer die Verwendung von NixOS - mit TLS geruntergeladen werden kann. -#### https://pro.stura.htw-dresden.de/issues/1822#note-5 -#### environment.variables = { -#### SSL_CERT_DIR = "/etc/ssl/certs"; -#### SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt"; -#### }; + #### 2024-04-14 vater + #### Nicht erfolgreicher Test zur Behebung vom Problem, dass wegen falsch gesetzten Umgebungsvariablen nichts - auch nichts fuer die Verwendung von NixOS - mit TLS geruntergeladen werden kann. + #### https://pro.stura.htw-dresden.de/issues/1822#note-5 + #### environment.variables = { + #### SSL_CERT_DIR = "/etc/ssl/certs"; + #### SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt"; + #### }; environment.systemPackages = [ pkgs.tmux -# pkgs.micro + # pkgs.micro pkgs.vim -#### 2024-04-14 vater -#### Nicht erfolgreicher Test zur Behebung vom Problem, dass wegen falsch gesetzten Umgebungsvariablen nichts - auch nichts fuer die Verwendung von NixOS - mit TLS geruntergeladen werden kann. -#### https://pro.stura.htw-dresden.de/issues/1822#note-5 -#### pkgs.cacert - ]; + #### 2024-04-14 vater + #### Nicht erfolgreicher Test zur Behebung vom Problem, dass wegen falsch gesetzten Umgebungsvariablen nichts - auch nichts fuer die Verwendung von NixOS - mit TLS geruntergeladen werden kann. + #### https://pro.stura.htw-dresden.de/issues/1822#note-5 + #### pkgs.cacert + ]; - ################# UNIQUE STUFF - # unique configuration for each container + ################# UNIQUE STUFF + # unique configuration for each container networking = { hostName = "cloud"; -# domain = "stura.htw-dresden.de"; + # domain = "stura.htw-dresden.de"; interfaces.eth0.ipv4.addresses = [ { address = "141.56.51.16"; @@ -72,7 +78,6 @@ ]; }; - services.nginx = { enable = true; @@ -105,20 +110,20 @@ enable = true; -#### 2024-12-14 vat -#### Versuch der Aktualisierung -# package = pkgs.nextcloud27; -# package = pkgs.nextcloud28; -# package = pkgs.nextcloud29; -# package = pkgs.nextcloud30; + #### 2024-12-14 vat + #### Versuch der Aktualisierung + # package = pkgs.nextcloud27; + # package = pkgs.nextcloud28; + # package = pkgs.nextcloud29; + # package = pkgs.nextcloud30; package = pkgs.nextcloud31; -# package = pkgs.nextcloud32; + # package = pkgs.nextcloud32; hostName = "${config.networking.fqdn}"; maxUploadSize = "1G"; -### 2025-06-09 Tan -### unter nextcloud.settings definiert + ### 2025-06-09 Tan + ### unter nextcloud.settings definiert #logLevel = 4; caching = { apcu = false; @@ -128,42 +133,42 @@ https = true; settings = { - #extraOptions = { + #extraOptions = { -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html -#### Einstellung, deren Festlegung von der Anwendung selbst "erwartet" wird + #### Einstellung, deren Festlegung von der Anwendung selbst "erwartet" wird -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#default-phone-region -# defaultPhoneRegion = "DE"; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#default-phone-region + # defaultPhoneRegion = "DE"; default_phone_region = "DE"; -#### mail + #### mail -# "mail_from_address" = "files"; -# "mail_smtpmode" = "smtp"; -# "mail_sendmailmode" = "smtp"; -# "mail_domain" = "${config.networking.domain}"; -# "mail_smtphost" = "mail.${config.networking.domain}"; + # "mail_from_address" = "files"; + # "mail_smtpmode" = "smtp"; + # "mail_sendmailmode" = "smtp"; + # "mail_domain" = "${config.networking.domain}"; + # "mail_smtphost" = "mail.${config.networking.domain}"; -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-domain -# mail_domain = "${config.networking.domain}"; -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-from-address -# mail_from_address = "files"; -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpdebug + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-domain + # mail_domain = "${config.networking.domain}"; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-from-address + # mail_from_address = "files"; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpdebug -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpmode -# mail_smtpmode = "smtp"; -## mail_sendmailmode = "smtp"; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpmode + # mail_smtpmode = "smtp"; + ## mail_sendmailmode = "smtp"; mail_smtpmode = "sendmail"; -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtphost -# mail_smtphost = "mail.${config.networking.domain}"; -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpport -# mail_smtpport = 25; -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtptimeout -#### mail_smtptimeout = 10; -# mail_smtptimeout = 30; -# mail_smtptimeout = 60; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtphost + # mail_smtphost = "mail.${config.networking.domain}"; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpport + # mail_smtpport = 25; + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtptimeout + #### mail_smtptimeout = 10; + # mail_smtptimeout = 30; + # mail_smtptimeout = 60; "memcache.local" = ''\OC\Memcache\Redis''; "memcache.locking" = ''\OC\Memcache\Redis''; @@ -172,32 +177,32 @@ port = 0; }; -#### aehnlich wie services.nextcloud.settings.trusted_domains ? -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#trusted-domains -# extraTrustedDomains = [ -# "www.${config.networking.fqdn}" -# ]; + #### aehnlich wie services.nextcloud.settings.trusted_domains ? + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#trusted-domains + # extraTrustedDomains = [ + # "www.${config.networking.fqdn}" + # ]; trusted_domains = [ -# services.nextcloud.hostname -# "${config.networking.fqdn}" + # services.nextcloud.hostname + # "${config.networking.fqdn}" "www.${config.networking.fqdn}" "cloud.htw.stura-dresden.de" ]; -#### 2025-06-23 admin@ (vat@) -#### ergibt sich ja aus services.nextcloud.https , oder? -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#overwriteprotocol -# overwriteProtocol = "https"; -# overwriteprotocol = "https"; + #### 2025-06-23 admin@ (vat@) + #### ergibt sich ja aus services.nextcloud.https , oder? + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#overwriteprotocol + # overwriteProtocol = "https"; + # overwriteprotocol = "https"; -#### 2025-06-23 admin@ (vat@) -#### Wir wollen moeglichst wenig aufzeichnen (, wie auch beim web server). -#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#loglevel -# logLevel = 4; + #### 2025-06-23 admin@ (vat@) + #### Wir wollen moeglichst wenig aufzeichnen (, wie auch beim web server). + #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#loglevel + # logLevel = 4; loglevel = 4; -#### 2024-12-14 vater -#### https://pro.stura.htw-dresden.de/issues/1952#note-2 + #### 2024-12-14 vater + #### https://pro.stura.htw-dresden.de/issues/1952#note-2 maintenance_window_start = 4; }; @@ -207,8 +212,8 @@ adminuser = "administration"; adminpassFile = "/var/lib/nextcloud/adminpassFile"; -### 2025-06-09 Tan -### unter nextcloud.settings definiert + ### 2025-06-09 Tan + ### unter nextcloud.settings definiert #overwriteProtocol = "https"; dbtype = "pgsql"; @@ -216,47 +221,49 @@ dbhost = "/run/postgresql"; dbuser = "nextcloud"; -### 2025-06-09 Tan -### unter nextcloud.settings definiert + ### 2025-06-09 Tan + ### unter nextcloud.settings definiert #defaultPhoneRegion = "DE"; - + # ist unter nextcloud.setting #extraTrustedDomains = [ # "www.${config.networking.fqdn}" #]; }; -# Im Zuge von Ticket #1878 wurde der Cache vergrößert + # Im Zuge von Ticket #1878 wurde der Cache vergrößert phpOptions."opcache.interned_strings_buffer" = "32"; -####vb 2023-11-20 + ####vb 2023-11-20 # Es gibt von Nix vorpaketierte Nextcloud Apps, diese sollen verwendet werden - extraApps = { inherit (config.services.nextcloud.package.packages.apps) -#####vb 2023-11-20 -#### oea@ hatte die eigentlich triviale Anforderung fuer die Verwaltung von Kalendern. dirk@ wollte seine Erfahrungen zur Verwendung von Kalendern bei Nextcloud teilen. Dabei fiel auf, dass bei unserer Instanz Anwendung Nextcloud die Erweiterung (App) Calender gar nicht verwendet wird. -#### Bei der Bereitstellung der Anwendung Nextcloud wird - von vat@ und dirk@ - erwartet, dass die Funktionalitaet fuer die Verwaltung von Kalendern angeboten wird. - calendar -#####ve 2023-11-20 -#####vb 2023-11-20 -#### sm@ hatte die Anforderung zur Verwaltung von Aufgaben - auch mit Terminen - als Kanboard. Anstatt eine weitere eigenstaendige Instanz fuer eine Anwendung - etwa WeKan, Focalboard oder Kanboard - zu betreien sollte einfach bei der bestehenden Instanz Anwendung Nextcloud die Erweiterung (App) Deck genutzt werden. - deck -#####ve 2023-11-20 -#####vb 2023-11-20 -#### Pauschales Installieren von vermeintlich ueblichen Erweiterungen (Apps), insbesondere auch um die Erweiterung (App) Deck als "kompatibel" in Betrieb nehmen zu koennen. -#### Mit der Installation (und sich daraus ergebender automatischer Aktivierung) der pauschal installierten Erweiterungen (Apps) funktionierte ploetzlich auch die Erweiterung (App) Deck. -#### Die Erweiterung (App) Deck funktionierte - unerwarteter Weise - auch nach der Deaktivierung aller anderen Erweiterungen (Apps). w00t? Vielleicht war die notwendige Erweiterung (App) bereits standardmaessig installiert, aber nur nicht aktiviert. -#### Letztlich sollen aber alle vermeintlich ueblichen Erweiterungen (Apps) installiert (und aktiviert) bleiben koennen, da der "uebliche" erwartbare Umfang an Funktionalitaeten selbstverstaendlich angeboten werden soll. - tasks -#### 2024-12-14 vater -#### deaktiviert, da beim rebuild switch --upgrade bei NixOS Version 23.11 nicht gebaut werden konnte wegen -#### error: attribute 'news' missing -# news - notes - contacts; -#####ve 2023-11-20 + extraApps = { + inherit (config.services.nextcloud.package.packages.apps) + #####vb 2023-11-20 + #### oea@ hatte die eigentlich triviale Anforderung fuer die Verwaltung von Kalendern. dirk@ wollte seine Erfahrungen zur Verwendung von Kalendern bei Nextcloud teilen. Dabei fiel auf, dass bei unserer Instanz Anwendung Nextcloud die Erweiterung (App) Calender gar nicht verwendet wird. + #### Bei der Bereitstellung der Anwendung Nextcloud wird - von vat@ und dirk@ - erwartet, dass die Funktionalitaet fuer die Verwaltung von Kalendern angeboten wird. + calendar + #####ve 2023-11-20 + #####vb 2023-11-20 + #### sm@ hatte die Anforderung zur Verwaltung von Aufgaben - auch mit Terminen - als Kanboard. Anstatt eine weitere eigenstaendige Instanz fuer eine Anwendung - etwa WeKan, Focalboard oder Kanboard - zu betreien sollte einfach bei der bestehenden Instanz Anwendung Nextcloud die Erweiterung (App) Deck genutzt werden. + deck + #####ve 2023-11-20 + #####vb 2023-11-20 + #### Pauschales Installieren von vermeintlich ueblichen Erweiterungen (Apps), insbesondere auch um die Erweiterung (App) Deck als "kompatibel" in Betrieb nehmen zu koennen. + #### Mit der Installation (und sich daraus ergebender automatischer Aktivierung) der pauschal installierten Erweiterungen (Apps) funktionierte ploetzlich auch die Erweiterung (App) Deck. + #### Die Erweiterung (App) Deck funktionierte - unerwarteter Weise - auch nach der Deaktivierung aller anderen Erweiterungen (Apps). w00t? Vielleicht war die notwendige Erweiterung (App) bereits standardmaessig installiert, aber nur nicht aktiviert. + #### Letztlich sollen aber alle vermeintlich ueblichen Erweiterungen (Apps) installiert (und aktiviert) bleiben koennen, da der "uebliche" erwartbare Umfang an Funktionalitaeten selbstverstaendlich angeboten werden soll. + tasks + #### 2024-12-14 vater + #### deaktiviert, da beim rebuild switch --upgrade bei NixOS Version 23.11 nicht gebaut werden konnte wegen + #### error: attribute 'news' missing + # news + notes + contacts + ; + #####ve 2023-11-20 }; -####ve 2023-11-20 + ####ve 2023-11-20 }; @@ -274,36 +281,34 @@ ensureUsers = [ { name = "${config.services.nextcloud.config.dbuser}"; -#### https://pro.stura.htw-dresden.de/issues/2093 + #### https://pro.stura.htw-dresden.de/issues/2093 #ensurePermissions."DATABASE ${config.services.nextcloud.config.dbname}" = "ALL PRIVILEGES"; } ]; }; systemd.services."nextcloud-setup" = { - requires = ["postgresql.service"]; - after = ["postgresql.service"]; + requires = [ "postgresql.service" ]; + after = [ "postgresql.service" ]; }; -#### 2025-07-05 vat -#### vb -#### https://pro.stura.htw-dresden.de/issues/2330 -#### https://pro.stura.htw-dresden.de/issues/2331 -#### Die Anwendung Nextcloud soll Mails vesenden koennen, was anscheinend ohne eine weiteren Dienst nicht zu funktionieren scheint. -#### Eine erartungsgemaess vergleichsweise einfach Loesung mit der Anwenung msmtp konnte leider nicht (auf die Schnelle) gefunden werden. Eine solche Loesung waere aber wuenschenswert. -# programs.msmtp.enable = true; -#### Verwendung der Anwendung nullmailer als moeglichst einfacher Dienst zur Versendung von Mails durch den Dienst Postausgang (Mail) bei einer anderern Instanz. + #### 2025-07-05 vat + #### vb + #### https://pro.stura.htw-dresden.de/issues/2330 + #### https://pro.stura.htw-dresden.de/issues/2331 + #### Die Anwendung Nextcloud soll Mails vesenden koennen, was anscheinend ohne eine weiteren Dienst nicht zu funktionieren scheint. + #### Eine erartungsgemaess vergleichsweise einfach Loesung mit der Anwenung msmtp konnte leider nicht (auf die Schnelle) gefunden werden. Eine solche Loesung waere aber wuenschenswert. + # programs.msmtp.enable = true; + #### Verwendung der Anwendung nullmailer als moeglichst einfacher Dienst zur Versendung von Mails durch den Dienst Postausgang (Mail) bei einer anderern Instanz. services.nullmailer.enable = true; services.nullmailer.config.remotes = "mail.stura.htw-dresden.de smtp --port=25"; services.nullmailer.config = { - allmailfrom = "files@stura.htw-dresden.de"; -##### me = "${config.networking.hostName}"; + allmailfrom = "files@stura.htw-dresden.de"; + ##### me = "${config.networking.hostName}"; }; -##### services.nullmailer.config.defaultdomain = "${config.networking.fqdn}"; -##### services.nullmailer.config.defaulthost = "${config.networking.fqdn}"; + ##### services.nullmailer.config.defaultdomain = "${config.networking.fqdn}"; + ##### services.nullmailer.config.defaulthost = "${config.networking.fqdn}"; services.nullmailer.config.helohost = "${config.networking.fqdn}"; -#### ve - + #### ve } -