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
neustarten.sudo nginx -t
` den Syntax testen und dann mit
`sudo service nginx restart
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
neustarten.sudo nginx -t
` den Syntax testen und dann mit
`sudo service nginx restart
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