# Amberwave 0.9.1-beta.4
> **Eine App statt fünf:** Bibliothek, bitgenaue Ausgabe, Effekte, VST3, Routing pro Kanal und Fernsteuerung –
> ohne virtuelle Kabel, ohne Treiber-Basteleien.
Selbst gehosteter Musikserver für die Familie: deine Sammlung (FLAC & Co.) im Browser, als installierbare Web-App und
im Windows-Client hören – zuhause bitgenau, unterwegs gestreamt, mit sauberen Metadaten von MusicBrainz und
Fernsteuerung zwischen allen Geräten. *English: [README.md](README.md)*
**Warum Amberwave?** Mein Ziel ist, dass Musikhören am PC wieder ein *Erlebnis* wird – weg von minimalistischen
Oberflächen, auf denen außer den Covern nichts Farbe hat. Amberwave hat Wärme und Charakter: eine Plattenkiste für die
Warteschlange, VU-Meter, Röhren und Bandmaschinen im Effektrack. Und es bringt zusammen, wofür man bisher mehrere
Programme und wackelige Treiber-Routings brauchte – Bibliothek, bitgenaue Wiedergabe, Effekte, Plug-ins,
Mehrkanal-Routing und Fernsteuerung – an einem Ort.
> **Beta:** Amberwave ist in der öffentlichen Beta. Mach vorher eine Sicherung deiner Musiksammlung. Amberwave liest
> deine Musik standardmäßig nur – geschrieben wird erst, wenn du es erlaubst.

Die Bilder zeigen eine Demo-Sammlung mit erfundenen Künstlern und erzeugten Covern.
## Pro-Funktionen – in der Beta kostenlos
Diese Funktionen sind später als kostenpflichtige **Pro**-Funktionen geplant. In der Beta sind sie **für alle kostenlos**:
- **DSP-Effekte:** AmberGlow (Röhre), AmberIron (Übertrager), AmberSilk (Band), AmberSpace (Raumhall und 5.1-Upmix), EQ
- **Sättigungs-Schwerpunkt:** pro Effekt eine Kurve mit ziehbaren Punkten, die bestimmt, wo er sättigt (EQ davor, exakt
das Gegenteil danach – der Klang bleibt neutral, nur der Klirr wandert; De-Emphasis 0–100 %).
- **VST3-Plug-ins** im Windows-Client
- **ASIO-Ausgabe** im Windows-Client
- **Ausgangs-Routing-Matrix mit EQ pro Kanal**
Alles andere – Bibliothek, MusicBrainz-Abgleich, Streaming, Fernsteuerung, Familienkonten, Web-App und bitgenaue
WASAPI-Wiedergabe im Windows-Client – ist der kostenlose Kern.
## Installation mit dem fertigen Image (empfohlen)
**All-in-One (ein Container, Datenbank inklusive):** `ghcr.io/lfrank95/amberwave-aio` enthält Amberwave, MariaDB 11.8 LTS
und cloudflared. Ein Ordner für alles, was Updates überstehen muss (`/appdata`), die Musik unter `/musik`, Port 80 im
Container. `ADMIN_BENUTZER` und `ADMIN_PASSWORT` legen beim ersten Start das Admin-Konto an (sonst fragt die
Einrichtungsseite). Auf Unraid als Vorlage ([`templates/amberwave.xml`](templates/amberwave.xml)), bald in den Community
Applications. Zum Stoppen etwas Zeit geben (`--stop-timeout 60`), damit die Datenbank sauber herunterfährt.
**Mit Docker Compose (Datenbank als eigener Container):**
1. Einen Ordner anlegen, z. B. `/opt/amberwave` (Unraid: `/mnt/user/appdata/amberwave`), und `docker-compose.yml` und
`.env.example` hineinlegen.
2. `.env.example` nach `.env` kopieren und die Pfade eintragen:
- `MUSIK_PFAD` – deine Sammlung, z. B. `/mnt/user/musik`
- `APPDATA_PFAD` – Daten von Amberwave (Datenbank, Cover, Schlüssel, Sicherungen), am besten auf der SSD,
z. B. `/mnt/cache/appdata/amberwave`
- `APP_PORT` – Standard 9950
- `PUID`/`PGID` – leer lassen (wird erkannt) oder wie Lidarr & Co. auf Unraid `99`/`100`
3. Starten: `docker compose up -d`
4. **Einrichten:** Von einem Rechner im Heimnetz `http://:9950` öffnen (oder den Link aus dem Log, `docker logs amberwave_app`).
Der Assistent prüft Ordner und Rechte, fragt, ob Amberwave im Musikordner schreiben darf (Standard: nein), legt
Datenbank und Admin-Konto an und zeigt am Ende einmal den Schlüssel für gespeicherte Zugangsdaten (Kopie liegt
neben den Sicherungen).
- Aus dem Heimnetz braucht es keinen Code. Über einen Proxy, Tunnel, die Docker-Brücke oder das Internet fragt die Seite
nach dem **Einrichtungscode** (im Log und in `/cache/geheimnisse/einrichtungscode`). Das Fenster ist
30 Minuten nach dem Start offen.
5. Musik einlesen (macht der Assistent direkt), danach Alben über **„Abgleichen“** mit MusicBrainz verknüpfen.
**Update:** `docker compose pull && docker compose up -d`. Die Datenbank wird beim Start automatisch angepasst; Musik,
Daten und `.env` bleiben. Die Verwaltung zeigt an, wenn es eine neue Version gibt.
**Neu anfangen:** Stack stoppen, `/db` und `/cache/geheimnisse` löschen, neu starten.
Notfall-Zugang: `docker exec -it amberwave_app php /var/www/html/scripts/create_admin.php `
### Unraid (Docker Compose Manager)
1. Unter **Apps** (Community Applications) das Plugin **Docker Compose Manager** installieren.
2. Im **Docker**-Tab ganz unten **Add New Stack**, Name `amberwave`.
3. Beim neuen Stack ⚙ → **Edit Stack → Compose File**: den Inhalt von `docker-compose.yml` einfügen, speichern.
4. ⚙ → **Edit Stack → ENV File**: den Inhalt von `.env.example` einfügen und anpassen, z. B.
`MUSIK_PFAD=/mnt/user/musik`, `APPDATA_PFAD=/mnt/cache/appdata/amberwave`, `PUID=99`, `PGID=100`.
5. **Compose Up**. Den Einrichtungslink findest du im Docker-Tab beim Container `amberwave_app` unter **Logs**.
Update: beim Stack **Update Stack** (bzw. **Compose Pull**, dann **Compose Up**).
### Synology (DSM 7.2, Container Manager)
1. Einen Ordner anlegen, z. B. `/volume1/docker/amberwave`, und `docker-compose.yml` und die `.env` hineinlegen
(`MUSIK_PFAD=/volume1/music`, `APPDATA_PFAD=/volume1/docker/amberwave/data`; `PUID`/`PGID` = Besitzer der Musik,
oft `1026`/`100` – per SSH mit `id ` prüfen).
2. Container Manager → **Projekt → Erstellen**, diesen Ordner als Pfad wählen, „Vorhandene docker-compose.yml verwenden“
→ **Erstellen**.
3. Den Einrichtungslink findest du unter Container → `amberwave_app` → Protokoll.
Update: Projekt `amberwave` → **Aktion → Erstellen** (holt das neue Image).
### Selbst bauen (bisherige Art)
`docker-compose.build.yml` baut das Image lokal und bindet den Code als Ordner ein (`AMBERWAVE_ORDNER` in der .env auf
den Ordner mit `app/` und `docker/`). Start: `docker compose -f docker-compose.build.yml up -d --build`. Updates
dann als Zip unter **Einstellungen → Sicherung & Update → Neue Version einspielen** (vorher wird automatisch gesichert).
Für Entwickler: nach Änderungen an `app/js/*.js` neu bündeln (`bash app/scripts/buendeln.sh`, braucht [bun](https://bun.sh)).
## Sicherheit der Sammlung
- **Musikordner:** Standard „nur lesen“. Tags schreiben, „Dateien aufräumen“, Download-Import, „Aus anderem Album
übernehmen“ und der Papierkorb sind gesperrt, bis du unter **Einstellungen → Bibliothek & Automatik → Musikordner** das Schreiben
erlaubst (oder `MUSIK_SCHREIBEN=1`). Harter Schutz zusätzlich: `MUSIK_MOUNT_MODUS=ro` in der .env.
- Auch mit Schreibrecht passiert nichts von selbst: „Dateien aufräumen“ zeigt immer erst eine Vorschau, ausgeführt wird
nur Freigegebenes; Altes landet im Papierkorb-Ordner `.amberwave-papierkorb`.
- **Usenet-Downloads** sind standardmäßig aus (Einstellungen → Downloads).
## Von unterwegs
- **Cloudflare Tunnel** (im Stack enthalten, braucht eine eigene Domain bei Cloudflare): Einstellungen → Zugang & Netz →
„Von unterwegs: Cloudflare Tunnel“. Amberwave legt Tunnel und DNS-Eintrag selbst an; kein offener Port, funktioniert auch hinter CGNAT.
Für den Tunnel gelten die [Nutzungsbedingungen von Cloudflare](https://www.cloudflare.com/terms/) – Musik in
Haushaltsmengen ist dort eine Grauzone. Ohne Tunnel: `TUNNEL_IM_STACK=0`.
- **Tailscale / WireGuard:** Amberwave über die VPN-Adresse des Servers öffnen (`http://:9950`). Ohne HTTPS lässt sich die Web-App nicht installieren und offline nutzen – dafür einen Proxy mit Zertifikat davor oder Tailscale Serve/HTTPS verwenden.
- **Eigener Reverse Proxy** (Nginx Proxy Manager, Traefik, Caddy): auf `http://:9950` zeigen lassen, in der
.env `APP_URL=https://musik.example.de` und `PROXY_IPS=` setzen.
- **Direktzugang im Heimnetz** (HTTPS mit eigenem Zertifikat, schneller als über den Tunnel): Einstellungen → Zugang & Netz.
Details in [CHANGELOG.md](CHANGELOG.md) unter „Direktzugang einrichten“.
## Windows-Client
Bitgenaue Wiedergabe über WASAPI exklusiv oder ASIO, lückenlos, Abtastrate folgt der Datei, Effekte und VST3-Plug-ins.
Download unter den Releases. Er ist (noch) nicht signiert – Windows zeigt beim ersten Start „Der Computer wurde durch
Windows geschützt“: **Weitere Informationen → Trotzdem ausführen**. Details: [windows-client/README.md](windows-client/README.md).
VST3-Plug-ins sind in der Beta **experimentell**: Jedes Plug-in läuft in einem eigenen Prozess, ein Absturz hält die
Musik nicht an – fremde Plug-ins sind aber die häufigste Fehlerquelle. Bitte Probleme mit Name und Version melden.
## Android-App
Ein erster Testbau hängt an den Releases als `Amberwave-Android-.apk` (ab Android 10). Einmal dem Browser oder
Dateimanager „Unbekannte Apps installieren“ erlauben, installieren, Adresse deines Servers eingeben, anmelden. Offline
gespeicherte Musik bleibt als Datei auf dem Handy und spielt ohne Netz; die Wiedergabe läuft im Hintergrund weiter, mit
Steuerung auf dem Sperrbildschirm. Die App sucht auf GitHub nach Updates und fragt vor dem Installieren. Noch nicht im
Play Store.
## Bekannte Grenzen der Beta
- **Die Oberfläche braucht noch Feinschliff** – die Balance zwischen einfach, schön und detailliert ist noch nicht
überall gefunden. Rückmeldungen dazu sind sehr willkommen.
- Docker-Image nur für x86-64 (ARM/Raspberry Pi folgt).
- Der Windows-Client ist nicht signiert und aktualisiert sich nicht selbst (er meldet aber neue Versionen).
- Noch keine Subsonic-Schnittstelle – Subsonic-Apps funktionieren nicht; dafür gibt es die installierbare Web-App.
- Keine Telemetrie, keine Installations-Kennung: Amberwave meldet nichts nach außen.
## Roadmap
Ohne Termine, nur die Richtung:
- **Mittelfristig:** Amberwave-Server für Windows (ohne Docker).
- **Langfristig:** eine eigenständige Windows-Version (Server und Player in einem), die Android-App im Play Store.
- **In weiterer Ferne, aber nicht ausgeschlossen:** Versionen für macOS, iPhone und Linux.
- Unterwegs: Feinschliff der Oberfläche, ARM-Image, mehr Werkzeuge – je nach euren Rückmeldungen.
## Häufige Fragen
**Verändert Amberwave meine Dateien?** Standardmäßig nicht. Der Musikordner ist schreibgeschützt, bis du es erlaubst –
und auch dann läuft jede Änderung erst nach Vorschau und Freigabe.
**Was unterscheidet Amberwave von Plex, Jellyfin oder Navidrome?** Nur Musik, dafür gründlich: MusicBrainz-Editionen
und vollständige Mitwirkende, bitgenaue Wiedergabe im eigenen Windows-Client, Fernsteuerung zwischen allen Geräten und
Familienkonten mit Freischaltung und Ablauf. Kein Video.
**Wo liegen meine Daten?** Alles, was Amberwave anlegt, liegt in `APPDATA_PFAD` (Datenbank, Cover, Schlüssel). Die
Datenbank wird täglich und vor jedem Update gesichert; den Ordner zusätzlich mit der normalen NAS-Sicherung sichern.
**Ist Amberwave kostenlos?** Der Kern ist kostenlos und Open Source (AGPL-3.0). DSP-Effekte, VST3, ASIO und die
Ausgangs-Routing-Matrix mit EQ pro Kanal sind als Pro-Funktionen geplant – in der Beta sind sie für alle kostenlos.
## Mehr
- Alle Einstellungen der .env: [.env.reference](.env.reference) – fast alles davon geht auch in der App.
- Was sich geändert hat: [CHANGELOG.md](CHANGELOG.md)
- Fehler melden: GitHub Issues · Fragen und Ideen: [r/Amberwave](https://www.reddit.com/r/Amberwave)
- Lizenz: AGPL-3.0 ([LICENSE](LICENSE), Hinweis und Geltungsbereich in [COPYRIGHT](COPYRIGHT)), Fremdkomponenten: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)