Einfaches selbst-gehostetes WebWormhole.io mit docker-compose
Hinweis: Diese Konfiguration hat derzeit keinen TURN-Server, daher funktioniert sie nicht, wenn die Clients einander nicht erreichen können! Ich arbeite daran. WebWormhole.io ist ein neuer Dienst, ähnlich zu und inspiriert von magic-wormhole, der das einfache Teilen von Dateien zwischen Browsern ohne Installation von Software ermöglicht. Intern verwendet es WebRTC, was direkte Dateiübertragungen zwischen Computern sogar durch Firewalls ermöglicht.
Während es kein offizielles Docker-Image auf Docker Hub gibt, stellt das WebWormhole GitHub-Projekt ein offizielles Dockerfile bereit. Darauf basierend habe ich ulikoehler/webwormhole veröffentlicht, das mit folgendem Befehl erstellt wurde:
git clone https://github.com/saljam/webwormhole.git
cd webwormhole
docker build -t ulikoehler/webwormhole:latest .
docker push ulikoehler/webwormhole:latestDies ist die docker-compose.yml, die Sie verwenden können, um WebWormhole hinter einem Reverse-Proxy zu betreiben:
services:
webwormhole:
image: 'ulikoehler/webwormhole:latest'
entrypoint: ["/bin/ww", "server", "-http=localhost:52618", "-https="]
network_mode: hostund dies ist meine nginx-Konfiguration:
server {
server_name webwormhole.mydomain.com;
access_log off;
error_log /var/log/nginx/webwormhole.mydomain.com.error.log;
location / {
proxy_pass http://localhost:52618/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_redirect default;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/webwormhole.mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/webwormhole.mydomain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
#ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = webwormhole.mydomain.com) {
return 301 https://$host$request_uri;
}
server_name webwormhole.mydomain.com;
listen 80;
return 404; # managed by Certbot
}Ich speichere docker-compose.yml in /var/lib/webwormhole.mydomain.com und habe das Skript aus unserem vorherigen Beitrag Einen systemd-Dienst für Ihr docker-compose-Projekt in 10 Sekunden erstellen verwendet, um diese systemd-Konfigurationsdatei in /etc/systemd/system/webwormhole.mydomain.com.service zu erstellen:
[Unit]
Description=webwormhole.mydomain.com
Requires=docker.service
After=docker.service
[Service]
Restart=always
User=root
Group=docker
WorkingDirectory=/var/lib/webwormhole.mydomain.com
# Container herunterfahren (falls laufend) wenn Unit gestartet wird
ExecStartPre=/usr/local/bin/docker-compose -f docker-compose.yml down
# Container starten wenn Unit gestartet wird
ExecStart=/usr/local/bin/docker-compose -f docker-compose.yml up
# Container stoppen wenn Unit gestoppt wird
ExecStop=/usr/local/bin/docker-compose -f docker-compose.yml down
[Install]
WantedBy=multi-user.targetden Sie aktivieren und starten können mit
sudo systemctl enable webwormhole.mydomain.com
sudo systemctl start webwormhole.mydomain.com