# Installation & Schnellstart ## Voraussetzungen - **Docker** und **Docker Compose** (empfohlen) - Alternativ: Go 1.23+ für lokale Entwicklung - Optional: FFmpeg (für schnelle Aufnahmen und Video-Proxy) --- ## Docker Compose (empfohlen) ### 1. Repository klonen ```bash git clone streamdock cd streamdock ``` ### 2. Umgebungsvariablen konfigurieren ```bash cp .env.example .env ``` Öffne die `.env`-Datei und passe mindestens folgende Werte an: ```env # WICHTIG: Unbedingt ändern! STREAMDOCK_JWT_SECRET=dein-sicherer-zufallsstring-min-32-zeichen STREAMDOCK_ADMIN_PASSWORD=dein-sicheres-passwort # Optionale Anpassungen STREAMDOCK_BASE_URL=http://localhost:8080 STREAMDOCK_ADMIN_USER=admin STREAMDOCK_ADMIN_EMAIL=admin@example.com ``` > **Sicherheitshinweis:** Verwende keinesfalls die Standard-Werte für `JWT_SECRET` und `ADMIN_PASSWORD` in einer produktionsnahen Umgebung. ### 3. Container starten ```bash docker compose up -d ``` ### 4. Erster Login Öffne im Browser: **http://localhost:8080** - **Benutzername:** `admin` (oder dein konfigurierter Wert) - **Passwort:** `admin` (oder dein konfigurierter Wert) > Ändere das Standard-Passwort direkt nach dem ersten Login unter **Einstellungen → Passwort ändern**. --- ## Lokal entwickeln (ohne Docker) ### Voraussetzungen - Go 1.23 oder neuer - Optional: FFmpeg im PATH ### Starten ```bash # Abhängigkeiten herunterladen go mod download # Direkt ausführen go run ./cmd/streamdock # Oder mit Make: make deps make run ``` Die Anwendung ist standardmäßig unter `http://localhost:8080` erreichbar. --- ## Verzeichnisstruktur nach dem Start Nach dem ersten Start werden folgende Daten-Verzeichnisse automatisch erstellt: ``` data/ ├── config/ # SQLite-Datenbank (streamdock.db) ├── recordings/ # Aufgenommene Audio-/Video-Dateien └── avatars/ # Benutzer-Profilbilder ``` Diese Verzeichnisse sind als Docker-Volumes gemountet und bleiben bei Container-Neustart erhalten. --- ## Update ```bash # Neueste Version holen git pull # Container neu bauen und starten docker compose down docker compose build --no-cache docker compose up -d ``` > Die SQLite-Datenbank und alle Aufnahmen bleiben durch die Volumes erhalten. --- ## Deinstallation ```bash # Container stoppen und entfernen docker compose down # Optional: Daten löschen rm -rf data/ ``` --- Weiter: [Konfiguration](konfiguration.md)