let nextlocud build again

This commit is contained in:
goeranh 2026-03-13 18:32:11 +01:00
parent 47d48d193d
commit 982d984910
No known key found for this signature in database

View file

@ -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 = [ imports = [
"${modulesPath}/virtualisation/proxmox-lxc.nix" "${modulesPath}/virtualisation/proxmox-lxc.nix"
]; ];
# proxmox-lxc.nix hat fuer bestimmte optionen eigene defaulwerte nixpkgs.config.permittedInsecurePackages = [
# diese koennen in dem dazugehoerigen nix file nachgelesen werden "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.stateVersion = "22.11";
# system.autoUpgrade.enable = true; # system.autoUpgrade.enable = true;
# system.autoUpgrade.allowReboot = true; # system.autoUpgrade.allowReboot = true;
# # system.autoUpgrade.channel = https://nixos.org/channels/nixos-22.11; # # system.autoUpgrade.channel = https://nixos.org/channels/nixos-22.11;
# nix.settings.auto-optimise-store = true; # nix.settings.auto-optimise-store = true;
# nix.optimise.automatic = true; # nix.optimise.automatic = true;
# nix.gc.automatic = true; # nix.gc.automatic = true;
# nix.gc.options = "--delete-older-than 5d"; # nix.gc.options = "--delete-older-than 5d";
proxmoxLXC = { proxmoxLXC = {
# mach mal auf false # mach mal auf false
manageNetwork = true; manageNetwork = true;
manageHostName = false; manageHostName = false;
}; };
@ -32,29 +38,29 @@
enableIPv6 = false; enableIPv6 = false;
}; };
#### 2024-04-14 vater #### 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. #### 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 #### https://pro.stura.htw-dresden.de/issues/1822#note-5
#### environment.variables = { #### environment.variables = {
#### SSL_CERT_DIR = "/etc/ssl/certs"; #### SSL_CERT_DIR = "/etc/ssl/certs";
#### SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt"; #### SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt";
#### }; #### };
environment.systemPackages = [ environment.systemPackages = [
pkgs.tmux pkgs.tmux
# pkgs.micro # pkgs.micro
pkgs.vim pkgs.vim
#### 2024-04-14 vater #### 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. #### 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 #### https://pro.stura.htw-dresden.de/issues/1822#note-5
#### pkgs.cacert #### pkgs.cacert
]; ];
################# UNIQUE STUFF ################# UNIQUE STUFF
# unique configuration for each container # unique configuration for each container
networking = { networking = {
hostName = "cloud"; hostName = "cloud";
# domain = "stura.htw-dresden.de"; # domain = "stura.htw-dresden.de";
interfaces.eth0.ipv4.addresses = [ interfaces.eth0.ipv4.addresses = [
{ {
address = "141.56.51.16"; address = "141.56.51.16";
@ -72,7 +78,6 @@
]; ];
}; };
services.nginx = { services.nginx = {
enable = true; enable = true;
@ -105,20 +110,20 @@
enable = true; enable = true;
#### 2024-12-14 vat #### 2024-12-14 vat
#### Versuch der Aktualisierung #### Versuch der Aktualisierung
# package = pkgs.nextcloud27; # package = pkgs.nextcloud27;
# package = pkgs.nextcloud28; # package = pkgs.nextcloud28;
# package = pkgs.nextcloud29; # package = pkgs.nextcloud29;
# package = pkgs.nextcloud30; # package = pkgs.nextcloud30;
package = pkgs.nextcloud31; package = pkgs.nextcloud31;
# package = pkgs.nextcloud32; # package = pkgs.nextcloud32;
hostName = "${config.networking.fqdn}"; hostName = "${config.networking.fqdn}";
maxUploadSize = "1G"; maxUploadSize = "1G";
### 2025-06-09 Tan ### 2025-06-09 Tan
### unter nextcloud.settings definiert ### unter nextcloud.settings definiert
#logLevel = 4; #logLevel = 4;
caching = { caching = {
apcu = false; apcu = false;
@ -128,42 +133,42 @@
https = true; https = true;
settings = { 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 #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#default-phone-region
# defaultPhoneRegion = "DE"; # defaultPhoneRegion = "DE";
default_phone_region = "DE"; default_phone_region = "DE";
#### mail #### mail
# "mail_from_address" = "files"; # "mail_from_address" = "files";
# "mail_smtpmode" = "smtp"; # "mail_smtpmode" = "smtp";
# "mail_sendmailmode" = "smtp"; # "mail_sendmailmode" = "smtp";
# "mail_domain" = "${config.networking.domain}"; # "mail_domain" = "${config.networking.domain}";
# "mail_smtphost" = "mail.${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 #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-domain
# mail_domain = "${config.networking.domain}"; # mail_domain = "${config.networking.domain}";
#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-from-address #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-from-address
# mail_from_address = "files"; # 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-smtpdebug
#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpmode #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpmode
# mail_smtpmode = "smtp"; # mail_smtpmode = "smtp";
## mail_sendmailmode = "smtp"; ## mail_sendmailmode = "smtp";
mail_smtpmode = "sendmail"; mail_smtpmode = "sendmail";
#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtphost #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtphost
# mail_smtphost = "mail.${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-smtpport #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtpport
# mail_smtpport = 25; # mail_smtpport = 25;
#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtptimeout #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#mail-smtptimeout
#### mail_smtptimeout = 10; #### mail_smtptimeout = 10;
# mail_smtptimeout = 30; # mail_smtptimeout = 30;
# mail_smtptimeout = 60; # mail_smtptimeout = 60;
"memcache.local" = ''\OC\Memcache\Redis''; "memcache.local" = ''\OC\Memcache\Redis'';
"memcache.locking" = ''\OC\Memcache\Redis''; "memcache.locking" = ''\OC\Memcache\Redis'';
@ -172,32 +177,32 @@
port = 0; port = 0;
}; };
#### aehnlich wie services.nextcloud.settings.trusted_domains ? #### aehnlich wie services.nextcloud.settings.trusted_domains ?
#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#trusted-domains #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#trusted-domains
# extraTrustedDomains = [ # extraTrustedDomains = [
# "www.${config.networking.fqdn}" # "www.${config.networking.fqdn}"
# ]; # ];
trusted_domains = [ trusted_domains = [
# services.nextcloud.hostname # services.nextcloud.hostname
# "${config.networking.fqdn}" # "${config.networking.fqdn}"
"www.${config.networking.fqdn}" "www.${config.networking.fqdn}"
"cloud.htw.stura-dresden.de" "cloud.htw.stura-dresden.de"
]; ];
#### 2025-06-23 admin@ (vat@) #### 2025-06-23 admin@ (vat@)
#### ergibt sich ja aus services.nextcloud.https , oder? #### ergibt sich ja aus services.nextcloud.https , oder?
#### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#overwriteprotocol #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#overwriteprotocol
# overwriteProtocol = "https"; # overwriteProtocol = "https";
# overwriteprotocol = "https"; # overwriteprotocol = "https";
#### 2025-06-23 admin@ (vat@) #### 2025-06-23 admin@ (vat@)
#### Wir wollen moeglichst wenig aufzeichnen (, wie auch beim web server). #### 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 #### https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html#loglevel
# logLevel = 4; # logLevel = 4;
loglevel = 4; loglevel = 4;
#### 2024-12-14 vater #### 2024-12-14 vater
#### https://pro.stura.htw-dresden.de/issues/1952#note-2 #### https://pro.stura.htw-dresden.de/issues/1952#note-2
maintenance_window_start = 4; maintenance_window_start = 4;
}; };
@ -207,8 +212,8 @@
adminuser = "administration"; adminuser = "administration";
adminpassFile = "/var/lib/nextcloud/adminpassFile"; adminpassFile = "/var/lib/nextcloud/adminpassFile";
### 2025-06-09 Tan ### 2025-06-09 Tan
### unter nextcloud.settings definiert ### unter nextcloud.settings definiert
#overwriteProtocol = "https"; #overwriteProtocol = "https";
dbtype = "pgsql"; dbtype = "pgsql";
@ -216,8 +221,8 @@
dbhost = "/run/postgresql"; dbhost = "/run/postgresql";
dbuser = "nextcloud"; dbuser = "nextcloud";
### 2025-06-09 Tan ### 2025-06-09 Tan
### unter nextcloud.settings definiert ### unter nextcloud.settings definiert
#defaultPhoneRegion = "DE"; #defaultPhoneRegion = "DE";
@ -227,36 +232,38 @@
#]; #];
}; };
# 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"; 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 # Es gibt von Nix vorpaketierte Nextcloud Apps, diese sollen verwendet werden
extraApps = { inherit (config.services.nextcloud.package.packages.apps) extraApps = {
#####vb 2023-11-20 inherit (config.services.nextcloud.package.packages.apps)
#### 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. #####vb 2023-11-20
#### Bei der Bereitstellung der Anwendung Nextcloud wird - von vat@ und dirk@ - erwartet, dass die Funktionalitaet fuer die Verwaltung von Kalendern angeboten wird. #### 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.
calendar #### Bei der Bereitstellung der Anwendung Nextcloud wird - von vat@ und dirk@ - erwartet, dass die Funktionalitaet fuer die Verwaltung von Kalendern angeboten wird.
#####ve 2023-11-20 calendar
#####vb 2023-11-20 #####ve 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. #####vb 2023-11-20
deck #### 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.
#####ve 2023-11-20 deck
#####vb 2023-11-20 #####ve 2023-11-20
#### Pauschales Installieren von vermeintlich ueblichen Erweiterungen (Apps), insbesondere auch um die Erweiterung (App) Deck als "kompatibel" in Betrieb nehmen zu koennen. #####vb 2023-11-20
#### Mit der Installation (und sich daraus ergebender automatischer Aktivierung) der pauschal installierten Erweiterungen (Apps) funktionierte ploetzlich auch die Erweiterung (App) Deck. #### Pauschales Installieren von vermeintlich ueblichen Erweiterungen (Apps), insbesondere auch um die Erweiterung (App) Deck als "kompatibel" in Betrieb nehmen zu koennen.
#### 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. #### Mit der Installation (und sich daraus ergebender automatischer Aktivierung) der pauschal installierten Erweiterungen (Apps) funktionierte ploetzlich auch die Erweiterung (App) Deck.
#### Letztlich sollen aber alle vermeintlich ueblichen Erweiterungen (Apps) installiert (und aktiviert) bleiben koennen, da der "uebliche" erwartbare Umfang an Funktionalitaeten selbstverstaendlich angeboten werden soll. #### 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.
tasks #### Letztlich sollen aber alle vermeintlich ueblichen Erweiterungen (Apps) installiert (und aktiviert) bleiben koennen, da der "uebliche" erwartbare Umfang an Funktionalitaeten selbstverstaendlich angeboten werden soll.
#### 2024-12-14 vater tasks
#### deaktiviert, da beim rebuild switch --upgrade bei NixOS Version 23.11 nicht gebaut werden konnte wegen #### 2024-12-14 vater
#### error: attribute 'news' missing #### deaktiviert, da beim rebuild switch --upgrade bei NixOS Version 23.11 nicht gebaut werden konnte wegen
# news #### error: attribute 'news' missing
notes # news
contacts; notes
#####ve 2023-11-20 contacts
;
#####ve 2023-11-20
}; };
####ve 2023-11-20 ####ve 2023-11-20
}; };
@ -274,36 +281,34 @@
ensureUsers = [ ensureUsers = [
{ {
name = "${config.services.nextcloud.config.dbuser}"; 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"; #ensurePermissions."DATABASE ${config.services.nextcloud.config.dbname}" = "ALL PRIVILEGES";
} }
]; ];
}; };
systemd.services."nextcloud-setup" = { systemd.services."nextcloud-setup" = {
requires = ["postgresql.service"]; requires = [ "postgresql.service" ];
after = ["postgresql.service"]; after = [ "postgresql.service" ];
}; };
#### 2025-07-05 vat #### 2025-07-05 vat
#### vb #### vb
#### https://pro.stura.htw-dresden.de/issues/2330 #### https://pro.stura.htw-dresden.de/issues/2330
#### https://pro.stura.htw-dresden.de/issues/2331 #### 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. #### 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. #### 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; # 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. #### 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.enable = true;
services.nullmailer.config.remotes = "mail.stura.htw-dresden.de smtp --port=25"; services.nullmailer.config.remotes = "mail.stura.htw-dresden.de smtp --port=25";
services.nullmailer.config = { services.nullmailer.config = {
allmailfrom = "files@stura.htw-dresden.de"; allmailfrom = "files@stura.htw-dresden.de";
##### me = "${config.networking.hostName}"; ##### me = "${config.networking.hostName}";
}; };
##### services.nullmailer.config.defaultdomain = "${config.networking.fqdn}"; ##### services.nullmailer.config.defaultdomain = "${config.networking.fqdn}";
##### services.nullmailer.config.defaulthost = "${config.networking.fqdn}"; ##### services.nullmailer.config.defaulthost = "${config.networking.fqdn}";
services.nullmailer.config.helohost = "${config.networking.fqdn}"; services.nullmailer.config.helohost = "${config.networking.fqdn}";
#### ve #### ve
} }