Technik

Hier habe ich meine Schritte aufgeführt zum Betreiben eines Lektor CMS auf einem uberspace. Details zu den verwendeten & angepassten Lektor-Templates sowie zum HTML Framework bootstrap folgen noch.

Administrations Subdomain

Um das CMS auch online pflegen zu können, muss das Frontend auch im Internet erreichbar sein, in meinem Fall als Subdomain (hier: xyz) zur eigentlichen Domain.

  1. Ordner für Pflege-Subdomain erstellen, siehe auch https://wiki.uberspace.de/domain:subdomain
    mkdir /var/www/virtual/$USER/xyz.aset-ev.de

  2. Pflege-Subdomain dem webserver bekannt machen, siehe auch https://wiki.uberspace.de/domain:verwalten
    uberspace-add-domain -d xyz.aset-ev.de -w
    (Subdomain beim Domainprovider eintragen, wenn nicht schon auf * gestellt dort)

Lektor installieren und Lektor Projekt aufsetzen

  1. Lektor install.sh runterladen, nicht direkt ausführen
    curl -O https://www.getlektor.com/install.sh
    Editieren der install.sh und ersetzen von “python” durch “python2.7”

  2. install.sh ausführen

  3. Lektor Projekt erstellen, siehe auch https://www.getlektor.com/docs/quickstart/
    lektor quickstart
    In meinem Fall liegt das Projekt unter /home/aset/lektor-aset/

Routing zum Administrations Backend

  1. Port für Lektor-Frontend erstellen lassen, siehe auch https://wiki.uberspace.de/system:ports
    uberspace-add-port -p tcp --firewall
    (erstellte Portnumber merken, ab jetzt PÖRT genannt)

  2. Redirect in .htaccess erstellen, siehe auch https://wiki.uberspace.de/webserver:htaccess#rewriterule_mit_proxy
    Editiere /var/www/virtual/$USER/xyz.aset-ev.de/.htaccess, Einfügen von:
    RewriteEngine On
    RewriteRule (.*) http://127.0.0.1:PÖRT/$1 [P]

  3. In das erstellte Lektor-Projektverzeichnis wechseln und den Server starten
    lektor server -p PÖRT
    auf die erstellte Subdomain zugreifen im Browser: xyz.aset-ev.de, die Default Webpage sollte erscheinen mit dem Edit-Icon oben rechts. YEAH! Lektor-Server abbrechen mit Ctrl+C.

Server dauerhaft verfügbar machen

Das Frontend läuft nur so lange, wie die Terminalsession offen ist, daher muss ein daemon eingerichtet werden.

  1. Service Verzeichnis erstellen, siehe auch https://wiki.uberspace.de/system:daemontools
    test -d ~/service || uberspace-setup-svscan

  2. Service einrichten
    uberspace-setup-service run-lektor lektor

  3. run Datei modifizieren: editiere ~/service/run-lektor/run und letzte Zeile anpassen auf
    exec /home/aset/bin/lektor --project /home/aset/lektor-aset/ server -p PÖRT 2>&1

  4. Service starten mit
    svc -u ~/service/run-lektor

  5. auf die erstellte subdomain zugreifen im Browser: xyz.aset-ev.de Die default webpage sollte erscheinen. Oder nicht? Logfiles sind hier:
    tail ~/service/run-lektor/log/main/current | tai64nlocal

Publizieren der Seite

  1. Für remote hosts rsync konfigurieren in /home/aset/lektor-aset/ in der .lektorproject siehe auch https://www.getlektor.com/docs/deployment/

  2. oder für local deployment einfach den output path ändern, d.h. in der ~/service/run-lektor/run vor der letzten Zeile einfügen:
    export LEKTOR_OUTPUT_PATH=/home/.../html/....

Administrations Backend schützen

  1. Mit htpasswd einen user anlegen, siehe auch https://wiki.uberspace.de/webserver:htaccess
    htpasswd -m -c /var/www/virtual/$USER/htuser adminuser

  2. htaccess bearbeiten /var/www/virtual/$USER/xyz.aset-ev.de/.htaccess Einfügen von
    AuthType Basic
    AuthName "Lektor Admin Frontend"
    AuthUserFile /var/www/virtual/aset/htuser
    Require valid-user
    bei Verwendung von https diese Hinweise beachten: https://wiki.uberspace.de/webserver:htaccess#verzeichnisschutz_mit_erzwungenem_https