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:

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