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
