Vorbereitung für automatisiertes Hochladen
Im vorherigen Beitrag haben sich die Einschränkungen von meinem Webhosting Paket gezeigt. Aber davon soll man sich nicht abhalten lassen, und ich werde dennoch eine Halbautomatisierung umsetzen. Konkret möchte ich nicht ausschließlich über den Laptop die Seite aktualisieren, sondern davon abgekoppelt auch die Möglichkeit haben über das Handy Texte oder zumindest etwaige Korrekturen hochzuladen. Dazu werde ich meinen kleinen Heimserver, wo die Virtualisierungsumgebung Proxmox (aus Wien) drauf läuft, verwenden.
Container installieren und einrichten
Unter Proxmox erstellt man am besten einen LXC Container dafür. Ich verwende dazu Ubuntu 22.04 LTS. Das heißt die weitere Installation lässt sich auch mit einer normalen Installation von Ubuntu (und Derivate wie Linux Mint oder auch Debian). Es kann nur sein, dass bei Ubuntu 24.04, welches erst im April 2024 rauskommen sollte. Meine Konfiguration für den LXC Container sieht so aus:
Den Container dann entweder über die Webkonsole in Proxmox aufrufen, oder man verbindet sich mit SSH, dann zuerst nicht root User hinzufügen mit adduser quartboxzuser
und zur sudo
-Gruppe hinzufügen mit adduser quartboxzuser sudo
. Dann auf den User wechseln mit su quartzboxuser
. Anschließend Updaten mit sudo apt update && sudo apt ugrade -y
. Dann kann schon die Installation von Quartz beginnen.
Tailscale für Fernzugriff
Dieser Schritt ist optional, aber ich finde es immer hilfreich auch von außen auf den Container zugreifen zu können. Meine Lösung dafür ist tailscale. Dabei handelt es sich um ein “layered VPN”, der es ermöglicht mehrere Geräte über Firewallgrenzen hinweg miteinander zu verbinden. Das ist mir lieber als irgendwelche Ports bei meinem Router aufzumachen, denn das ist nicht unbedingt förderlich für die Sicherheit des eigenen Netzes und außerdem habe ich keine fixe IP-Adresse, das heißt ich bräuchte auch noch einen Dyn-DNS und/oder Reverse Proxy und was da noch alles dabei ist.
Um besagtes tailscale in einem unprivilegierten LXC Container zu installieren befolgt man die offizielle Anleitung. Man muss dazu auch die Konfig-Datei des Containers über die Proxmox-Host-Konsole bearbeiten, das geht leider nicht über die grafische Oberfläche. Dazu öffnet man mit der Einfachheit halber mit nano
die Konfigurationsdatei die sich unter /etc/pve/lxc/xxx.conf
(xxx = die ID die man beim Erstellen vergeben hat) und fügt die zwei Zeilen von der Anleitung am Ende der Konfig ein:
Dadurch werden dem Container die notwendigen Berechtigungen gegeben, die er als unprivilegierter Container sonst nicht hätte. Anschließend kann muss man noch schnell curl
mit dem Befehl sudo apt install curl
installieren und schon kann man das Installerskript runterladen und ausführen:
curl -fsSL https://tailscale.com/install.sh | sh
Der Skriptcode befindet sich hier, und es ist grundsätzlich empfehlenswert sich den Code vorher anzusehen, oder zumindest sichergehen, dass die Quelle von der man besagten Code hat auch vertrauenswürdig ist. Aus Interesse habe ich GPT-4 den Inhalt dieses Skriptes gegeben und gefragt, ob irgendwelche “security flaws” oder “malicious code” drin seien:
Anmerkung: Ich bin mir immer noch nicht sicher, welche Form des Einbindens für solche Sprachmodell-Outputs am besten sind.
Wie dem auch sei, sobald das Skript fertig ist, kann man den Link öffnen, sich bei tailscale einloggen und das Gerät hinzufügen. Und schon kann man über die tailscale-IP auch von der Ferne aus zugreifen.
Quartz installieren und einrichten
Quartz benötigt mindestens Node v18.14 und npm v9.3.1. Im Unterschied zu Fedora läuft unter Ubuntu 22.04 standardmäßig eine zu alte Version von nodejs
und npm
deswegen ist eine Installation via Paketmanager apt
nicht zielführend. Eine Möglichkeit eine neuere Version zu bekommen ist nvm
(Node Version Manager) zu verwenden. Um den zu installieren führt man mir…
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
… abermals ein Installerskript aus.
Vielleicht sollte mich einmal grundsätzlich mit dem Verhältnis von Überprüfe-jedes-Skript und Wird-schon-passen auseinandersetzen und der Frage nachgehen, ob es frei nach Hannah Ahrendt ein gutes Software-Leben im schlechten geben könne, oder nicht.
Wie dem auch sei, zurück in das hier und jetzt mit der Ausgabe:
Und nun man muss man auch noch den Pfad exportieren, sonst findet das System das Programm nicht:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Anschließend Terminal Sitzung beenden und neu verbinden. Mit nvm install node
installiert man die aktuelle Version von nodejs
, und mit nvm use node
wird nodejs
in Verwendung gebracht. Mit node -v
und npm -v
sieht man schließlich welche Version nun läuft:
Nun steht der Quartzinstallation nichts mehr im Wege. Dazu wieder die offizielle Anleitung und Installation wie gehabt (falls git
noch fehlt mit sudo apt install git
installieren). Bei der Einrichtung mit npx quartz create
wählt man “Empty Quartz” und “Treat links as shortest path” aus:
Ich werde den “content” Folder erst im Nachhinein mit den Notizen befüllen.
Damit ist der nächste Schritt hin zu einer Art Automatisierung getan. Wie es weitergeht, steht im nächsten Beitrag.