Skip to content

koloo91/schnack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schnack – Privacy-first Videokonferenz

Ein minimalistisches, datenschutzfreundliches Videokonferenz-Tool. Kein Account, keine Datenbank, kein Tracking – nur ein Link, einen Namen eingeben und los.

Tech-Stack

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)

Features

  • 🎥 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

Lokal entwickeln

# Backend (Port 8080)
cd backend
go run main.go

# Frontend (Port 3000, neues Terminal)
cd frontend
bun dev

Dann http://localhost:3000 öffnen.

Mit Docker bauen & starten

docker compose up --build

Das Frontend wird in das Go-Binary eingebettet. Alles läuft auf Port 8080.

Oder manuell:

docker build -t schnack .
docker run -p 8080:8080 schnack

Deployment (Produktion)

Fü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.

ICE Server Konfiguration (mit TURN)

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",
    },
},

schnack

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors