277 lines
9.6 KiB
Nix
277 lines
9.6 KiB
Nix
{ 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.<name>.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.<name>.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 <nixpkgs-unstable> {
|
|
# 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
|
|
|
|
}
|