VDO.Ninja Docker
Docker Image für VDO.Ninja

Docker Image für [VDO.Ninja](https://github.com/steveseguin/vdo.ninja) – die kostenlose, browserbasierte Peer-to-Peer-Video-Streaming-Lösung.
[VDO.Ninja](https://vdo.ninja) (ehemals OBS.Ninja) ermöglicht es, Video- und Audiostreams direkt im Browser zu teilen – ohne Server, ohne Accounts, ohne Software-Installation. Es wird häufig in Kombination mit OBS Studio verwendet, um Gäste remote in Livestreams einzubinden.
Da das Original-Repository **kein offizielles Docker Image** anbietet, übernimmt dieses Projekt den automatisierten Build und die Bereitstellung als Docker Container.
## 📦 Image-Tags
| Tag | Beschreibung |
|---|---|
| `latest` | Immer das neueste Build |
| `vX.Y` | VDO.Ninja Upstream-Version (z.B. `v29.0`) |
### Beispiel: Bestimmte Version verwenden
```bash
# Immer die neueste Version
docker pull git.techniverse.net/scriptos/vdo-ninja:latest
# Bestimmte Version pinnen
docker pull git.techniverse.net/scriptos/vdo-ninja:v29.0
```
Alle Docker Images findest du hier: [📦 Container Registry](https://git.techniverse.net/scriptos/-/packages/container/vdo-ninja)
## ✨ Features
- 🏷️ **Versionierte Tags** – Jedes Image wird mit Upstream-Version (z.B. `v29.0`) und `latest` getaggt
- 🪶 **Leichtgewichtig** – Basiert auf `nginx:alpine` für minimale Imagegröße
- 🔒 **Security Headers** – Nginx-Konfiguration mit Sicherheits-Headern
- 📦 **Gzip-Komprimierung** – Optimierte Auslieferung der statischen Dateien
- ❤️ **Healthcheck** – Integrierter Docker-Healthcheck
## 🚀 Schnellstart
### Docker Run
```bash
docker run -d \
--name vdo-ninja \
-p 8080:80 \
--restart unless-stopped \
git.techniverse.net/scriptos/vdo-ninja:latest
```
Danach ist VDO.Ninja unter `http://localhost:8080` erreichbar.
### Docker Compose
Eine fertige `docker-compose.yml` liegt im Repository:
```bash
docker compose up -d
```
Oder manuell erstellen:
```yaml
services:
vdo-ninja:
build:
context: .
image: git.techniverse.net/scriptos/vdo-ninja:latest
container_name: vdo-ninja
restart: unless-stopped
ports:
- "8080:80"
```
## ⚙️ Konfiguration
### 🔌 Ports
| Container-Port | Beschreibung |
|---|---|
| `80` | HTTP (Nginx Webserver) |
Der Container lauscht intern auf Port `80`. Über `-p` oder `ports:` kann dieser auf einen beliebigen Host-Port gemappt werden.
### 🔐 Reverse Proxy (empfohlen)
> **Wichtig:** WebRTC benötigt eine sichere Verbindung (HTTPS). Für den produktiven Einsatz sollte ein Reverse Proxy mit TLS-Terminierung vorgeschaltet werden.
#### Beispiel: Traefik (via Docker Labels)
```yaml
services:
vdo-ninja:
image: git.techniverse.net/scriptos/vdo-ninja:latest
container_name: vdo-ninja
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.vdo-ninja.rule=Host(`vdo.example.de`)"
- "traefik.http.routers.vdo-ninja.entrypoints=websecure"
- "traefik.http.routers.vdo-ninja.tls.certresolver=letsencrypt"
- "traefik.http.services.vdo-ninja.loadbalancer.server.port=80"
networks:
- proxy
networks:
proxy:
external: true
```
#### Beispiel: Caddy
```
vdo.example.de {
reverse_proxy vdo-ninja:80
}
```
## ⚖️ Lizenzhinweis
Die Docker-Packaging-Dateien in diesem Repository stehen unter der [MIT-Lizenz](./LICENSE).
Das in den Docker Images enthaltene [VDO.Ninja](https://github.com/steveseguin/vdo.ninja) selbst steht **nicht** unter MIT, sondern wird von den Upstream-Autoren unter der **GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later)** bereitgestellt.
Dieses Docker Image enthält daher AGPL-lizenzierte Software. Bitte beachte die Lizenzbedingungen des Upstream-Projekts, insbesondere bei Weitergabe, Veröffentlichung oder Bereitstellung des Images.
## 🔗 Links
| | Link |
|---|---|
| 🌐 VDO.Ninja | https://vdo.ninja |
| 📦 Original-Repository | https://github.com/steveseguin/vdo.ninja |
| 📖 VDO.Ninja Dokumentation | https://docs.vdo.ninja |
| 🐳 Docker Image (Registry) | [git.techniverse.net/scriptos/vdo-ninja](https://git.techniverse.net/scriptos/-/packages/container/vdo-ninja) |
© Patrick Asmus · Techniverse Network · Lizenz