Wekan Board (Debian)
Dieser Artikel beschäftigt sich mit Installation von Wekan Board auf einem Server.
Wekan Board kann auf mehreren Wegen installiert werden:
- Production: Snap-Paket - Autoupdate
- Production: Docker - No Autoupdate
- Production: Sandstorm-Plattform
Quelle: https://github.com/wekan/wekan/wiki/Platforms
Installation mit Snap
Anleitung, um Wekan über den Snap-Paketmanager zu installieren.
Mit Snap-Paketen kann man regelmäßige automatische Updates durchgeführt werden.
Quellen: https://github.com/wekan/wekan-snap/wiki/Install
Voraussetzungen
apt-get install snap
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