{ config, pkgs, lib, modulesPath, ... }: { #services.openssh.enable = true; imports = [ "${modulesPath}/virtualisation/proxmox-lxc.nix" ]; ############################ #### NixOS ############################ 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"; nix.gc.options = "--delete-older-than 42d"; ############################ #### Umgebung ############################ # environment.noXlibs = true; services.xserver.enable = false; services.openssh.enable = true; ############################ #### Netzwerk ############################ networking = { enableIPv6 = false; hostName = "pro"; domain = lib.mkForce "stura.htw-dresden.de"; firewall.allowedTCPPorts = [ 22 80 443 ]; interfaces.eth0.ipv4.addresses = [ { address = "141.56.51.15"; prefixLength = 24; } ]; defaultGateway.address = "141.56.51.254"; defaultGateway.interface = "eth0"; # firewall.allowedTCPPorts = [ 80 443 3000 ]; }; ############################ #### System ############################ proxmoxLXC.manageHostName = true; # wird in der default nix auch gesetzt # time.timeZone = "Europe/Berlin"; ############################ #### Anwendung ############################ #### Aufgabenverwaltung StuRa HTW Dresden #### Redmine #### Beim StuRa braucht es einen Dienst zur Aufgabenverwaltung. #### Beim StuRa wird (gefuehlt seit jeher) die Anwendung Redmine fuer den Dienst Aufgabenverwaltung verwendet. #### https://search.nixos.org/options?show=services.redmine.enable #### Verwenden der Anwendung Redmine services.redmine.enable = true; #### Standardmaessig verwendet die Anwendung Redmine den Port 3000. #### Es ist aber ueblich, dass die Anwendung Redmine nicht direkt, sondern nur ueber eine eine uebliche Anwednung fuer den Dienst web server, erreichbar sein soll. networking.firewall.allowedTCPPorts = [ 3000 ]; #### https://search.nixos.org/options?show=services.redmine.settings #### https://github.com/redmine/redmine/blob/master/config/configuration.yml.example #### Standardmaessig ist keine Konfiguration fuer den Versand von Mails bei der Anwendung Redmine konfiguriert. Es ist kein Versand von Mails durch die Anwendung moeglich. #### Der Dienst Aufgabenverwaltung soll aber Mails - um ueber Aenderungen beim der Aufgabenverwaltung informieren zu koennen - Mails versenden koennen. #### #### Achtung! Die Inhalte der Konfiguration werden den Inhalten der sonstigen Inhalten der Konfiguration von in der Dateie fuer die Konfiguration der Anwendung Redmine vorangestellt. services.redmine.settings.production.email_delivery = { delivery_method = ":smtp"; smtp_settings = { address = "mail.${config.networking.domain}"; port = 25; }; #### Alternativ waere vielleicht auch das Versand von Mails durch das Programm sendmail (als lokale Installation) moeglich. #### Getestet wurde das aber noch nicht. ##### delivery_method = ":sendmail"; }; #### https://www.redmine.org/projects/redmine/wiki/RedmineAdminInformation#ImageMagick-convert-available services.redmine.components.imagemagick = true; services.redmine.components.minimagick_font_path = "${pkgs.liberation_ttf.outPath}/share/fonts/truetype/LiberationSans-Regular.ttf"; #### https://www.redmine.org/projects/redmine/wiki/RedmineAdminInformation#ImageMagick-PDF-support-available services.redmine.components.ghostscript = true; #### Die Anwendung Redmine kann mit sogenannten Plugins erweitert werden. #### Beim StuRa brauchen wir keine Erweiterungen fuer die Anwendung Redmine. #### Zum Test der Verwendung von Erweiterungen fuer die Anwendung Redmine installieren wir "zufaellige" Erweiterungen. # services.redmine.plugins = { # issue_recurring = builtins.fetchurl { # url = "https://github.com/cryptogopher/issue_recurring/archive/refs/tags/1.7.zip"; # sha256 = "1s729gyh2wsa9yljm6gvk76z3qxnp1vhaydypvda8miw69csvs34"; # }; #### siehe instanz 137 (srs-test-pve) #### https://10.1.0.17:8006/#v1:0:=lxc%2F137:4::::::: # redmine_kanban = builtins.fetchurl { ## url = "https://github.com/happy-se-life/kanban/archive/refs/heads/master.zip"; # url = "https://github.com/happy-se-life/kanban/archive/refs/heads/tags0.0.11.zip"; # sha256 = "01ymd25169dhyc4ksdx67w5h9rba09hrvmfw7bc6y71lsrxlg4sr"; # }; # }; #### weitere Inhalte zur Konfiguration #### ls -l /var/lib/redmine/config/ #### Die Anwendung Redmine soll nicht direkt, sondern ueber eine uebliche Anwendung fuer den Dienst web server, erreichbar sein. #### Es braucht einen (nahezu beliebigen) web server. #### Beim StuRa HTW Dresden verwenden wir als web server moeglichst Nginx. #### Verwenden der Anwendung Nginx als web server (Proxy) services.nginx.enable = true; #### Der StuRa speichert nicht! services.nginx.logError = ''/dev/null emerg''; services.nginx.appendHttpConfig = '' access_log off; ''; #### Anscheinend kann mit nix nur die Konfiguration fuer eine konkrete (manuelle) Konfiguration fuer den Dienst web server. services.nginx.virtualHosts."${config.networking.fqdn}" = { #### https://search.nixos.org/options?show=services.nginx.virtualHosts..default default = true; locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.redmine.port}"; }; forceSSL = true; enableACME = true; }; services.nginx.virtualHosts."pro.htw.stura-dresden.de" = { #### https://search.nixos.org/options?show=services.nginx.virtualHosts..default locations."/" = { proxyPass = "http://127.0.0.1:${toString config.services.redmine.port}"; }; forceSSL = true; enableACME = true; }; ############################ #### Probleme ############################ # services.redmine.package = unstable.redmine; # services.redmine.packages = pkgs.redmine.override { rubyPackages.rails = pkgs.ruby_2_7; }; #### Problem Verweigerung der Akualisierung wegen unsicherenen Paket redmine #### 2025-06-09 vat #### Durch die Aktualisierung auf Redmine Version 6 durch die Aktualisierung auf NixOS Version 25.05 scheint das Problem ueberwunden (siehe Ticket #2475) zu sein. ##### Ausnahme für upgrade von der Instanz ##### siehe Ticket #2241 #### nixpkgs.config.permittedInsecurePackages = [ ######## 2025-05-16 vat@ ######## Die Aktualisierung lief nicht, da nun 5.1.8 verwendet wird. ##### "redmine-5.1.7" #### "redmine-5.1.8" #### ]; #### Problem - wie bei allen Instanzen mit NixOS auf PVE - fehlende Bereitstellung der Daten fuer locale #### ich glaub das hier kann weg wenn man sich per ssh einloggt bekommt man ne richtige shell mit korrekten umgebungsvariablen #### 2025-06-27 vat@ && tan@ #### gescheiterter Versuch um fehlermeldungen nach #### pct enter 100 #### . /etc/profile ####sh: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory ####sh: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory #### zu vermeiden. ## i18n.extraLocales = [ ## "all" ## ]; # i18n.extraLocaleSettings = { # LC_CTYPE = "en_US.UTF-8"; # LC_COLLATE = "en_US.UTF-8"; ## LC_CTYPE = "en_US.utf8"; ## LC_COLLATE = "en_US.utf8"; ### LC_ALL = "en_US.UTF-8"; # }; # i18n.localeCharsets = { # LC_CTYPE = "en_US.UTF-8"; # LC_COLLATE = "en_US.utf8"; # }; # i18n.defaultLocale = "en_US.UTF-8"; # i18n.glibcLocales = pkgs.glibcLocales; # i18n.glibcLocales = pkgs.glibcLocalesUtf8; # environment.systemPackages = with pkgs; [ # glibcLocales # glibcLocalesUtf8 # ]; # environment.variables = { # LC_CTYPE = "en_US.UTF-8"; # LC_COLLATE = "en_US.UTF-8"; # }; #### ve ############################ #### Problem Anwendung Redmine startet nicht, weil beim Bauen vom Paket Inhalte aus einem Gemfile nicht richtig behandelt werden ############################ #### https://pro.stura.htw-dresden.de/issues/2510 ############################ #### nixpkgs ############################ #### 2025-07-11 vat #### vb #### https://wiki.nixos.org/wiki/FAQ/Pinning_Nixpkgs#Pinning_an_unstable_service # nixpkgs.config = { ## allowUnfree = true; # packageOverrides = pkgs: { ## unstable = import { # master = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/d21825f9cf895942e057230c56625e2290d1b149.tar.gz") { # config = config.nixpkgs.config; # }; # }; # }; ## environment.systemPackages = with pkgs; [ ## unstable.redmine ## ]; ## # # mittlerweile in nixpkgs #services.redmine.package = # let ##### fixing commit ##### https://github.com/NixOS/nixpkgs/commit/d21825f9cf895942e057230c56625e2290d1b149 ## pkgs_master_redmine_fixed = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/d21825f9cf895942e057230c56625e2290d1b149.tar.gz") { ## config = config.nixpkgs.config; ## }; ##### https://github.com/NixOS/nixpkgs/commits/nixos-25.05/pkgs/by-name/re/redmine ##### breaking commit ##### https://github.com/NixOS/nixpkgs/commit/1105b34ec2b88e82fe35be9e6ba5c547487824b2 # pkgs_redmine_25-05_before-broken = import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/c80c8f5ba65ceab4c7ec266293a2ce20a663d245.tar.gz") { # config = config.nixpkgs.config; # }; # in ## pkgs_master_redmine_fixed.redmine; # pkgs_redmine_25-05_before-broken.redmine; #### https://github.com/NixOS/nixpkgs/pull/424140 #### https://github.com/NixOS/nixpkgs/pull/424285 #### ve }