Ein minimalistisches, datenschutzfreundliches Videokonferenz-Tool. Kein Account, keine Datenbank, kein Tracking – nur ein Link, einen Namen eingeben und los.
| Schicht | Technologie |
|---|---|
| Frontend | Nuxt 3 / Vue 3 + TailwindCSS v4 + DaisyUI |
| Backend | Go + Pion WebRTC (SFU) |
| Transport | WebRTC (Audio/Video) + WebSockets (Signaling) |
| Deployment | Einzelnes Docker-Image (~20 MB) |
- 🎥 Gruppen-Videokonferenz via SFU (skalierbar, kein P2P-Mesh)
- 🔇 Mikrofon stummschalten
- 📷 Kamera ausschalten
- 💬 Echtzeit-Chat
- 🔒 Privacy by Design – keine Datenbank, keine Cookies, kein Account, Räume existieren nur im RAM
# Backend (Port 8080)
cd backend
go run main.go
# Frontend (Port 3000, neues Terminal)
cd frontend
bun devDann http://localhost:3000 öffnen.
docker compose up --buildDas Frontend wird in das Go-Binary eingebettet. Alles läuft auf Port 8080.
Oder manuell:
docker build -t schnack .
docker run -p 8080:8080 schnackFür Deployment über das Internet hinter einer Domain (z.B. mit Caddy):
schnack.example.com {
reverse_proxy localhost:8080
}
⚠️ TURN-Server ist für Verbindungen über das Internet notwendig, wenn Nutzer hinter NAT/Firewalls sind. coturn ist die Standard-Lösung.
Im main.go die ICEServers-Config erweitern:
ICEServers: []webrtc.ICEServer{
{URLs: []string{"stun:stun.l.google.com:19302"}},
{
URLs: []string{"turn:turn.example.com:3478"},
Username: "user",
Credential: "password",
},
},