Skip to content

Pm-Wikis (Docker-Umgebung, ohne Inhalt) für peter.schönbucher.ch

Notifications You must be signed in to change notification settings

ngiger/peter_wiki

Repository files navigation

Peters Wiki

Die einzelne Schritte bei der Installation sind dokumentiert im Worklog

Hier werdeb die gefundene Lösung und die dazu notwendigen Entscheide dokumentiert.

Zustand vor 28.3.2018

Anpassungen vom 29.3.2018

Der Hinhalt von /home/web/hosts/www.schoenbucher.ch/ wurde auf /home/web/hosts/www.praxisunion.ch/ kopiert. http://www.praxisunion.ch und http://www.schoenbucher.ch sind ab jetzt separate Wikis!

Installation

  • git clone https://github.com/ngiger/peter_wiki.git /opt/src/peter_wiki
  • cd /opt/src/peter_wiki
  • ./get_pmwiki_files # Im Moment 102 + gebraucht cookbooks
  • Alle Verzeichniss /home/web/hosts//htdocs müsse vorhanden sein
  • docker-compose create --build
  • docker-compose start iatrix peter # Stand 2.9.2017

Troubleshooting

Zertifikate für HTTPS

Die Zertifikate wurden mit folgenden Befehlen aktualisiert (auf Hetzner)

certbot --expand -d iatrix.ch -d iatrix.org -d www.iatrix.ch -d www.iatrix.org -d test.iatrix.org
certbot --expand -d test.praxisunion.ch -d test.praxis.praxisunion.ch -d test.praxisunion.ch -d test.www.praxisunion.ch -d www.praxisunion.ch -d praxisunion.ch
certbot --expand -d testwww.schoenbucher.ch -d testpeter.schoenbucher.ch  -d nextcloud.schoenbucher.ch  -d test.www.schoenbucher.ch -d www.schoenbucher.ch

Diese sollten automatisch jeden Monat (falls notwendig) akualisiert werden. Dazu dient das Script /etc/cron.monthly/letsencrypt_renew, welche folgende Zeile enthält certbot renew --apache 1>/dev/null

Entscheidungen

Welches Docker-Image?

Kriterien:

Gefunden https://hub.docker.com/r/ishakuta/docker-nginx-php5/

Reorganisiert

Ziele waren:

  • /home/web/hosts/peter.schoenbucher.ch/htdocs zu gebrauchen

  • pmwiki via Script zu installieren

  • PM-Wiki installation in git aufgenommen

  • /home/web/hosts als git repository initalisiert. Dazu auf Hetzner folgende Kommandos ausgeführt

    cd /home/web/hosts/ git init . git add * git commit -m "Erster import"

  • $ScriptUrl und $PubDirUrl sollen den Server-Namen enthalten und keine absoluten Namen wie 'https://praxis.praxisunion.ch/pub';

    $ScriptUrl = 'http://'.$_SERVER['HTTP_HOST'].'/pmwiki/pmwiki.php'; $PubDirUrl = 'http://'.$_SERVER['HTTP_HOST'].'/pmwiki/pub';

  • skins und config.php werden hier local verwaltet, z.B.

    • org.iatrix/local/config.php
    • peter.schoenbucher.ch/skins/peter
    • praxis.praxisunion.ch/skins/sub
  • apache2/rewrite_wikis.conf (für den Host)

  • apache2/common.conf (für gleiche alle Docker-Instanzen)

Damit sollten dann Unterschiede zwischen den verschiedenen Wiki-Seiten einfach gefunden und verstanden werden können.

Zum Testen auf meinem lokalen Rechner brauche ich:

  • Eine Checkout diese Github-Projektes
  • Unter /home/web/hosts eine Kopie aller Ordner, z.B: www.schoenbucher.ch
  • Eine docker-Installation (mit docker-compose)
  • Starte eine Web-Seite wie folgt auf docker-compose up --build wwwschoenbucher
  • Gehe auf http://localhost:60980/ und teste

Damit HTTPS auf Hetzner richtig läuft brauchte es folgende Anpassungen

Das Umstellen von HTTP auf HTTPS wird im Host-Apache /etc/apache2/sites-available/000-default.conf gemacht und sollte etwa wie folgt aussehen:

<VirtualHost *:80>
  Redirect permanent / https://%{SERVER_NAME}
  ServerAdmin niklaus.giger@hispeed.ch
  DocumentRoot /var/www/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

Ich habe überall eine E-Mailadresse von mir als WebMaster genommen
Die Docker loggen entweder nichts, via syslog oder in ein json file. Das ist anders als heute!!! Könnte aber eventuell durch volumes, welche /var/log/apache/access_log in ein Host-File umleiten gelöst werden. Dafür sieht man dann via docker-compose logs nix mehr.

Damit auf Hetzner alles richtig läuft braucht es dort den Eintrag RequestHeader set X-Forwarded-Proto "https" in der VirtualHost-Section des Apache-Conf. Weiter muss die (im internen Netz von Hetzner gebrauchte IP-Adresse von eth0, im Moment 172.31.1.100) dort wie folgt für HTTPS gebraucht werden

<VirtualHost 172.31.1.100:443>
  ServerName peter.schoenbucher.ch

Diese Datei wird ebenfalls hier verwaltet und wurde wie folgt aktiviert

cp -pvu apache2/rewrite_wikis.conf /etc/apache2/sites-available/rewrite_wikis.conf
systemctl restart apache2; systemctl status apache2

Dann braucht im local/config.php etwa folgende Zeilen

$FarmPubD = '/home/web/shared_wiki/';
$FarmD    = '/home/web/shared_wiki/';
if ( $_SERVER['HTTP_X_FORWARDED_HOST'] ) {
  $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
  $PubDirUrl = $_SERVER['HTTP_X_FORWARDED_PROTO'].'://'.$_SERVER['HTTP_X_FORWARDED_HOST'].'/pub';
  $ScriptUrl = $_SERVER['HTTP_X_FORWARDED_PROTO'].'://'.$_SERVER['HTTP_X_FORWARDED_HOST'].'/pmwiki.php';
} else {
  $FarmPubDirUrl = $_SERVER['HTTP_HOST'].'/pub';
}

Probleme/Pendenzen

  • In /peter.schoenbucher.ch/local/config.php wurde der Markup for google-search ausgeblendet, da er mit neueren Versionen von PHP nicht kompatibel sei.
  • Die Dateien unter /home/web/hosts/www.schoenbucher.ch/public_html sollten bei Gelegenheit von Peter an eine korrekteren Ort verschoben werden
  • www.praxisunion.ch referenziert noch ein paar http-links und erscheint deshalb nicht grün im Firefox

Automatisches Aufstarten nach einem Reboot

Das ist anscheinend Trickreich. Auf der Kommandozeile geht cd /opt/src/peter_wiki; docker-compose up -d ohne Probleme. Aber das in systemd zu verpacken, das starten und stoppen kann ist etwas trickreich.

Deshalb eine einfache Lösung, welche ihn nur aufstartet gefunden und in assets/peterwiki.service, welche nach /etc/systemd/system/peterwiki.service kopiert wird.

Folgende Schritte können nach einem Upgrade z.B. Docker notwendig sein.

  • systemctl daemon-reload # Damit wird sicher gestellt, dass systemctl alle Dateien unter /etc/systemd neu lädt.
  • systemctl restart docker # Nur wen docker ps keine Prozesse anzeigt
  • systemctl start peterwiki #
  • systemctl reload apache2
  • Manuell testen, dass https://peter.schoenbucher.ch erreichbar ist

Backup

  • Siehe helpers/*. Diese Dateien sollten wie folgt aktiviert werden

    cp -pvu helpers/rsnapshot.conf.hetzner helpers/rsync.exclude /etc
    cp -pvu helpers/*daily /etc/cron.daily
    cp -pvu helpers/*monthly /etc/cron.monthly
    cp -pvu helpers/letsencrypt_renew /etc/cron.monthly
    
  • Es werden mit Hilfe von Rsnapshot tägliche (30) und maximal 200 monatliche Backups von /etc/ und /home/web/hosts unter /opt/backup angelegt

  • Täglich gibt es rsync von /etc und /home/web/hosts/.git -> praxiserver -> /backup/hetzner/

Ideen

  • Log-Dateien von Apache2 archivieren und auswerten?

Gemachte Anpassungen

Wenn include_once("$FarmD/cookbook/edittoolbar/edittoolbar.php"); und $EnableGUIButtons = 1; vorkommen, werden die Buttons nicht angezeigt. Deshalb in allen config.php auf EnableGUIButtons auf 1 gesetzt.

About

Pm-Wikis (Docker-Umgebung, ohne Inhalt) für peter.schönbucher.ch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published