Aufgabe #1932
offenMigration der Instanz pretix (von Debian) zu NixOS
70%
Beschreibung
Ab NixOS 24.05 ist die Anwendung pretix paketiert (und sogar modularisiert).
https://search.nixos.org/packages?query=pretix
https://search.nixos.org/options?query=services.pretix
Die bestehende Instanz, die wegen der fehlenden Verfügbarkeit mit Debian betrieben wird, kann (soll) nun mit NixOS betrieben werden.
Von PaulRiegel vor 4 Monaten aktualisiert
- Blockiert Aufgabe #1873: Update von pretix und Anschließend Migration auf eine neue Instanz wurde hinzugefügt
Von PaulRiegel vor 4 Monaten aktualisiert
- Zugewiesen an wurde von Bereich Administration Rechentechnik zu GoeranHeinemann geändert
Von PaulRiegel vor 4 Monaten aktualisiert
- Status wurde von Neu zu Gesichtet geändert
- Priorität wurde von Normal zu Hoch geändert
Von PaulRiegel vor 3 Monaten aktualisiert · Edited
version 2024.2.0 beim laufenden debian stable (12)
version 2024.8.0 beim aktualisierbaren debian stable (12)
version 2024.4.0 bei nixos release (24.05)
version 2024.8.0 bei nixos unstable
Option services.pretix.package für die Festlegung einer initialen Version verwenden?
Von GoeranHeinemann vor 3 Monaten aktualisiert · Edited
zuerst einfach alle daten der alten instanz sichern
systemctl stop pretix-web.service pretix-worker.service
cd $(mktemp -d)
su postgres -
pg_dump pretix > pretixdump
exit
cp -r /var/pretix/data .
cd ..
tar -czvf pretix.tar.gz tmp...
die tar datei muss dann mit scp oder so auf den neuen container kopiert werden und und dort wieder entpackt werden
systemctl stop pretix-web.service pretix-worker.service
tar -xvf prefix.tar.gz
cp -r pretix/data/media /var/lib/pretix/media
chown pretix:pretix /var/lib/pretix -R
cat pretixdump | psql pretix
pretix-manage migrate
systemctl start pretix-web.service pretix-worker.service
Von GoeranHeinemann vor 3 Monaten aktualisiert · Edited
Di Config für den NixOS contaienr schaut bisher so hier aus:
{ config, pkgs, lib, ... }:
{
imports = [
<nixpkgs/nixos/modules/virtualisation/proxmox-lxc.nix>
];
############################
#### NixOS
############################
system.stateVersion = "24.05";
system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = true;
nix.settings.auto-optimise-store = true;
nix.optimise.automatic = true;
nix.gc.automatic = true;
nix.gc.options = "--delete-older-than 5d";
# environment.noXlibs = true;
# services.xserver.enable = false;
services.openssh.enable = false;
networking = {
enableIPv6 = false;
hostName = "pretix";
domain = "stura.htw-dresden.de";
defaultGateway.address = "10.1.0.1";
defaultGateway.interface = "eth0";
interfaces.eth0.ipv4.addresses = [
{
address = "10.1.0.4";
prefixLength = 24;
}
];
firewall.allowedTCPPorts = [ 80 443 ];
};
environment.systemPackages = with pkgs; [ vim ];
proxmoxLXC.manageHostName = true;
services = {
pretix = {
enable = true;
settings = {
pretix = rec {
# instance_name = "tix.htw.stura-dresden.de";
# url = "https://${instance_name}/";
instance_name = "10.1.0.4";
url = "http://10.1.0.4/";
};
mail = {
from = "pretix@stura.htw-dresden.de";
host = "mail.stura.htw-dresden.de";
};
};
nginx = {
enable = true;
domain = "tix.htw.stura-dresden.de";
};
database.createLocally = true;
};
};
}
Von MathisBluemel vor 3 Monaten aktualisiert · Edited
Kleines Feedback zu Görans Anleitung:
nach erstellen des temporären Verzeichnisses ist es nicht möglich das Datenbank Backup zu machen, da der User postgres kein Zugriff auf dieses hat.
Außerdem schlägt das Importieren des DB-Dumps fehl da eine Datenbank mit Tabellen schon existiert. Diese muss gelöscht und durch eine leere DB mit dem Namen pretix ersetzt werden. Dann funktioniert es.
Wir konnten mit der Anleitung Pretix erfolgreich migrieren. (CT201 - Testserver https://pretix.htw.stura-dresden.de)
Dazu haben wir die Nix konfiguration um ACME ergänzt und Hostnamen und IP Adressen angepasst.
Dann sind wir wie folgt vorgegangen:https://pretix.htw.stura-dresden.de/
1. Pretix auf der alten Instanz angehalten
2. Postgres Datenbank gesichert (als Nutzer Postgres: pg_dump pretix > pretixdump)
3. /var/pretix/data/media Ordner gesichert
4. Beides in ein tar-Archiv gepackt
5. OpenSSH Server installiert, aktiviert und Rootlogin mit Passwort angeschaltet
-- Folgendes auf der neuen Instanz---
6. Den Ordner auf die neue Instanz mittels scp übertragen
7. Pretix angehalten
8. Die pretix Datenbank gelöscht und eine leere Datenbank mit namen pretix erstellt
9. Die Sicherung der Datenbank mittels cat pretixdump | psql pretix eingespielt
10. den media Ordner nach /var/lib/pretix/media kopiert
11. pretix-manage migrate ausgeführt
12. Pretix gestartet
Hier die configuration.nix:
{ config, pkgs, lib, ... }:
{
imports = [
<nixpkgs/nixos/modules/virtualisation/proxmox-lxc.nix>
];
############################
#### NixOS
############################
system.stateVersion = "24.05";
system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = true;
nix.settings.auto-optimise-store = true;
nix.optimise.automatic = true;
nix.gc.automatic = true;
nix.gc.options = "--delete-older-than 5d";
# environment.noXlibs = true;
# services.xserver.enable = false;
services.openssh.enable = false;
networking = {
enableIPv6 = false;
hostName = "pretix";
domain = "htw.stura-dresden.de";
defaultGateway.address = "141.56.51.254";
defaultGateway.interface = "eth0";
interfaces.eth0.ipv4.addresses = [
{
address = "141.56.51.219";
prefixLength = 24;
}
];
firewall.allowedTCPPorts = [ 80 443 ];
};
environment.systemPackages = with pkgs; [ vim ];
proxmoxLXC.manageHostName = true;
security.acme.defaults.email = "cert@stura.htw-dresden.de";
security.acme.acceptTerms = true;
services = {
nginx = {
enable = true;
virtualHosts."${config.networking.fqdn}" = {
forceSSL = true;
enableACME = true;
};
};
pretix = {
enable = true;
settings = {
pretix = rec {
# instance_name = "tix.htw.stura-dresden.de";
# url = "https://${instance_name}/";
instance_name = "pretix.htw.stura-dresden.de";
url = "https://pretix.htw.stura-dresden.de/";
};
mail = {
from = "pretix@stura.htw-dresden.de";
host = "mail.stura.htw-dresden.de";
};
};
nginx = {
enable = true;
domain = "pretix.htw.stura-dresden.de";
};
database.createLocally = true;
};
};
}
Von MathisBluemel vor 3 Monaten aktualisiert · Edited
Geupdatete Anleitung
systemctl stop pretix-web.service pretix-worker.service
su postgres
cd $(mktemp -d)
pg_dump pretix > pretixdump
exit
cd /temp/tmp...
cp -r /var/pretix/data/media .
cd ..
tar -czvf pretix.tar.gz tmp...
die tar datei muss dann mit scp oder so auf den neuen container kopiert werden und und dort wieder entpackt werden
systemctl stop pretix-web.service pretix-worker.service
tar -xvf pretix.tar.gz
cp -r pretix/data/media /var/lib/pretix/media
chown pretix:pretix /var/lib/pretix -R
mv /var/lib/postgresql /var/lib/postgresql_backup
su postgres
cat pretixdump | psql pretix
pretix-manage migrate
systemctl start pretix-web.service pretix-worker.service
Von PaulRiegel vor 3 Monaten aktualisiert
- Status wurde von Gesichtet zu In Bearbeitung geändert
- Zugewiesen an wurde von GoeranHeinemann zu MathisBluemel geändert
- % erledigt wurde von 50 zu 70 geändert