WBO Online Collaborative Whiteboard auf Ubuntu 20.04 LTS installieren

Dies ist einerseits eine Anleitung für die Installation des kollaborativen Whiteboard WBO. Andererseits aber auch eine Grundlage zum Remixen für IT-Fachleher oder Ausbilder.

Die Software findet man hier: https://github.com/lovasoa/whitebophir.

Das ist ein Post, der meine Schwerpunkte Ausbildung und Informationstechnologie vereint. Viel Spass beim lesen und beim umsetzen und der Arbeit mit WBO!

Hinweis für Ausbilder und IT-Fachlehrer: Ihr könnt sicherlich viel besser die Hintergründe der einzelnen Schritte erklären und euch das HowTo zu einer passenden Lehr- und Lernunterlage erweitern. Diese Datei ist für euch erstmal nur als anpassbarer "Ideengeber" zu sehen. Bitte remixen!

Themen die man anknüpfen kann sind z.B.:

  • Serverdienste allgemein
  • Webprogrammierung
  • Services in Debian/Ubuntu
  • Superuser vs. unpriviligierte Nutzer
  • Nginx Konfiguration als Proxy
  • SSL via Let’s Encrypt bzw. andere Sicherungsmaßnahmen
  • (Proxmox) LXC Container vs. VM vs. Hardware Server

Alles ist Open Source Software und kann kostenfrei in eurem Betrieb oder eurer Schule umgesetzt werden.

Und natürlich kann man das fertige Whiteboard dann auch mit den Azubis bzw. Schülerinnen und Schüler nutzen. Die werden das sicherlich mögen.

Erstmal ausprobieren?

Bevor du installierst, darfst du natürlich gerne mal das Whiteboard ausprobieren. Es st sicher nicht perfekt, wird aber ständig weiterentwickelt. Einen Testserver gibt es unter: https://whiteboard.eldshort.de/.

Vorbereitung

Eine Installation von Ubuntu 20.04 LTS oder (wie in meinem Fall) einen
Ubuntu 20.04 LTS Linux-Container auf einem Proxmox Host erstellen.

  • Andere Debian basierten Distributionen müssten auch funktionieren (ungetestet).
  • Vielleicht sogar auf dem Raspberry Pi (ungetestet, gerne Feedback geben)

Installation

npm und git und whitebophir installieren

Als (Superuser) die Pakete installieren und per git runterladen

apt install git npm
cd /opt/
git clone https://github.com/lovasoa/whitebophir.git
cd whitebophir
npm install --production
cd..
# unpriviligierter Nutzer www-data 
chown -R www-data:www-data whitebophir/

Service erstellen (Superuser)

sudo nano /lib/systemd/system/whiteboard.service 

Inhalt von /lib/systemd/system/whiteboard.service:

[Unit]
After=network.service

[Service]
User=www-data
WorkingDirectory=/opt/whitebophir/
ExecStart= npm start
Restart=always
StandardOutput=syslog
StandardError=syslog         

[Install]
WantedBy=default.target

Den Service starten:

sudo chmod 664 whiteboard.service
sudo systemctl daemon-reload
sudo systemctl enable whiteboard
sudo systemctl start whiteboard

Der Server läuft jetzt auf Port 8080 der lokalen IP Adressen und wird beim Systemstart automatisch gestartet. Das reicht in der Regel aber nicht aus, denn in den seltensten Fällen steht ein solcher selbstgebauter Server direkt im Netz.

Proxykonfiguration

Temporäre nginx Konfiguration (Superuser auf dem Proxy)

mkdir /var/www/whiteboard
nano /etc/nginx/sites-available/whiteboard
server {
  listen 80;
  listen [::]:80;
  server_name whiteboard.yourdomain.de;

    # Let's Encrypt    
    location /.well-known/ {
        root /var/www/whiteboard;
        }
}
ln -s /etc/nginx/sites-available/whiteboard  /etc/nginx/sites-enabled/whiteboard

Mit sudo nginx -t` den Syntax testen und dann mit `sudo service nginx restart neustarten.

Hinweise:

  • Letsencrypt muss auf dem Proxy installiert sein, wenn man diese Zertifikate nutzen möchte.
  • Außerdem muss es im DNS System gültige Einträge geben.
letsencrypt --webroot -w /var/www/whiteboard -d whiteboard.yourdomain.de certonly

Angepasste nginx Proxy Konfiguration (nach dem Abruf des Zertifikates von Letencrypt)

server {
  listen 80;
  listen [::]:80;
  server_name whiteboard.yourdomain.de;
  return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name whiteboard.yourdomain.de;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/whiteboard.yourdomain.de/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/whiteboard.yourdomain.de/privkey.pem;
        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/nginx/ssl/dhp-2048.pem;

    # Let's Encrypt    
    location /.well-known/ {
        root /var/www/whiteboard;
        }

    location / {
        proxy_pass http://IPvX_DES_SERVERS:8080;

        proxy_buffering off;
        proxy_buffer_size 4k;
        proxy_connect_timeout 300s;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        send_timeout 300s;

        # Enable proxy websockets for the noVNC console to work
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Standard proxying headers
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Proto $scheme;
        proxy_set_header  X-Forwarded-Host $http_host;
        proxy_set_header  Host $host;

    }
    location /socket.io {
        proxy_pass http://IPvX_DES_SERVERS:8080/socket.io;
        proxy_buffering off;
        proxy_buffer_size 4k;
        proxy_connect_timeout 300s;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        send_timeout 300s;

        # Enable proxy websockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Standard proxying headers
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Proto $scheme;
        proxy_set_header  X-Forwarded-Host $http_host;
        proxy_set_header  Host $host;

    }
}

Mit sudo nginx -t` den Syntax testen und dann mit `sudo service nginx restart neustarten.

Erster Test

Mit der öffentlichen URL auf den Server gehen:

Erstelle ein privates Whiteboard klicken und das Whiteboard nutzen, wie man es mag.

Optionales

Letsencrypt Zertifikate kann man auch regelmäßig erneuern lassen:

sudo crontab -e
# autorenew letsencrypt certificates
20 3 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
# Reload nginx to use the new certificates
25 3 * * 1 /bin/systemctl reload nginx

Updates

Wichtig:
Vor dem Update immer ein Container Backup machen und die Release Notes lesen!

cd /opt/whitebophir 
git pull
# unpriviligierter Nutzer www-data 
chown -R www-data:www-data /opt/whitebophir/
#Container Neustart
reboot

Sonstige Hinweise:

Vorteile:

  • Ist für mich ein Potenzialkandidat bei kleinen serverbasierten Elearningtools, da keinerlei Daten erhoben werden (außer das Whiteboard selbst).
  • Es wird stark an dem Tool, gearbeitet. Einer der Forks steuert grade super gute Erweiterungen bei.

Nachteile:

  • Derzeit ist noch nirgendwo ein Impressum zu hinterlegen.
  • Ein Löschen des Whiteboards ist nicht möglich. Jeder mit dem Link kann aber den gesamten Inhalt löschen.

Lizenz

Dieses Dokument von Ulrich Ivens ist OER. Inhalte stehen – sofern nichts anderes angegeben ist – unter der Lizenz CC BY-SA 4.0 und erschien zuerst auf iffMD.
Gewünschte Zitation: WBO Install von Ulrich Ivens mit Link zur Fundstelle und Lizenz

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert