Wekan Board (Debian)
Dieser Artikel beschäftigt sich mit der Installation von Wekan Board auf einem Linux Server mittels eines Snap-Pakets.
Mit Snap-Paketen kann man regelmäßige automatische Updates durchgeführt werden.
Die Installation von Docker oder auf der Sandstorm-Plattform sind nicht Inhalt dieses Artikels.
Voraussetzungen
apt-get install snapd
Installation
snap install wekan
Dies installiert zwei SystemD-Services:
- snap.wekan.wekan
- snap.wekan.mongodb
Konfiguration:
snap set wekan root-url="https://example.com/something" snap set wekan port='3001'
Parameter root-url
ist für korrekte Wekan-interne Links notwendig.
Parameter port
ist für Betrieb auf einem Non-Standard-Port notwendig, z.B. wenn man Apache auf den Standard-HTTP-Ports laufen lässt, und Wekan auf dem gleichen Server nutzen möchte. In diesem Szenario lässt man Wekan auf einem alternativen Port laufen. In Apache wird ein Virtual Host konfiguriert, in dem Wekan per Proxy eingehängt wird, und Anfragen von Apache werden an den Port weiter geleitet.
Dieses Szenario wird in dieser Anleitung auch genutzt.
Wekan-Server neu starten:
systemctl restart snap.wekan.wekan
Konfiguration Updates
Updates zwischen 2:00 und 4:00 Uhr einrichten:
snap set core refresh.schedule=02:00-04:00
Konfiguration neu laden:
snap refresh
Konfiguration E-Mails
sudo snap set wekan mail-url='smtps://user:pass@mailserver.example.com:453' sudo snap set wekan mail-from='Wekan Boards <support@example.com>'
Konfiguration Apache als Proxy
Der Wekan-Server kann nur dann über Port 80 oder 443 direkt zum Internet hin publiziert werden, wenn auf der Maschine keine weiteren Webseiten gehostet werden sollen.
Wenn andere Webseiten gehostet werden, kann Wekan nicht auf diesem Port publiziert werden, sondern muss auf einem anderen Port publiziert werden. In diesem Szenario kann Wekan z.B. als Subdomain eingebunden werden, und Anfragen von via Proxy an Wekan weitergeleitet werden.
Nachfolgende Anleitung zeigt beispielhaft, wie dies für den Apache Webserver eingerichtet werden kann.
Dabei wird der Wekan-Server, der auf localhost (127.0.0.1) auf Port 3001 läuft als Subdomain des Apache-Severs über einen virtuellen Host eingebunden.
Siehe Webserver_installieren_(Debian)#Proxy aktivieren
a2enmod proxy proxy_http proxy_wstunnel
sudo systemctl restart apache2
Konfiguration des Webservers:
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName <subdomain.domain.tld> ServerAdmin webmaster@localhost SSLEngine on # SSLCertificateFile /etc/ssl/cert-selfsigned.pem SSLCertificateFile /etc/letsencrypt/live/<subdomain.domain.tld>/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/<subdomain.domain.tld>/privkey.pem ServerSignature Off ProxyPassMatch ^/(sockjs\/.*\/websocket)$ ws://127.0.0.1:3001/$1 ProxyPass /.well-known/acme-challenge ! ProxyPass / http://127.0.0.1:3001/ ProxyPassReverse / http://127.0.0.1:3001/ Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge <Directory "/var/www/html/.well-known/acme-challenge"> Options None AllowOverride None Require all granted AddDefaultCharset off </Directory> </VirtualHost> </IfModule>
Seite aktivieren:
a2ensite <subdomain.domain.tld-Konfigfile>
Apache neu starten:
systemctl restart apache2
Letsencrypt einrichten
In der obigen Konfiguration wird Wekan über einen Proxy in Apache eingebunden.
Für die Challange in Letsencrypt ist jedoch Zugriff auf die Domainhinhalte notwendig.
Für Webroot-Challange können Seitenteile, wie z.B. .well-known/acme-challange
explizit vom Proxy ausgeschlossen werden.
Die ProxyPass-Parameter werden in der Reihenfolge in der Konfig-Datei geladen. Daher werden darin folgende Zeilen eingefügt:
ProxyPass /.well-known/acme-challenge ! Alias /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge <Directory "/var/www/html/.well-known/acme-challenge"> Options None AllowOverride None Require all granted AddDefaultCharset off </Directory>
Quellen:
- https://certbot.eff.org/docs/using.html#webroot
- https://blog.rimuhosting.com/2018/07/05/certbot-letsencrypt-apache-and-tomcat/
- https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypass
App aktivieren / deaktivieren
snap disable wekan snap enable wekan
Dienststeuerung
MongoDB service:
systemctl status snap.wekan.mongodb
Wekan service:
systemctl status snap.wekan.wekan
Backup
todo: Siehe https://github.com/wekan/wekan-snap/wiki/Backup-and-restore
Troubleshooting
Wekan-Befehle funktionieren nicht
In den Umgebungsvariablen, die mit env
angezeigt werden können, muss der Pfad zu /snap/bin
enthalten sein.
Dieser wird automatisch hinzugefügt, jedoch muss ggf. das Betriebssystem nach der Installation von Wekan erst neu gestartet werden.
Quellen
https://github.com/wekan/wekan/wiki/Platforms https://github.com/wekan/wekan-snap/wiki/Install https://github.com/wekan/wekan-snap/wiki/Backup-and-restore