v0.5.6 - Docker Port Configuration, UI Polish & Audio Analysis
New Features
Configurable Docker Ports
PLEXMIX_UI_PORT— set the frontend port (default: 3000)PLEXMIX_BACKEND_PORT— set the backend API port (default: 8000)PLEXMIX_API_URL— override the websocket URL when Docker ports differ from host ports (e.g.,http://myhost:8154)PLEXMIX_ALLOWED_HOSTS— allow custom domains behind reverse proxies (e.g.,plexmix.example.com)- New CLI options:
--backend-portand--api-urlforplexmix ui
Smart UI for Docker Images
- Local AI/embedding provider options are greyed out in Settings when
sentence-transformersis not installed (slim Docker image), with a clear explanation - Audio filters in the Generator page are conditionally shown only when audio analysis data exists, with a callout guiding users to run analysis first
Audio Analysis in Docker
- Essentia is now included in Docker images as a best-effort install
- Available on
linux/amd64— shows as unavailable onlinux/arm64(no wheels exist)
Bug Fixes
- Docker `:latest` tag now correctly points to the slim image variant (not local) — CI split into sequential jobs to prevent race condition
- Generator page crash — Radix `Select.Item` rejects empty string values; replaced with `"Any"` sentinel
- DatabaseSettings validation error — Pydantic v2 rejects `str = Field(default=None)`; changed to `Optional[str]`
- Blank paths in Settings Advanced tab — Database Path and FAISS Index Path now resolve to defaults when config hasn't been saved
- Websocket connection failures — Docker port mapping (e.g., `3152:3000`, `8154:8000`) now works via `PLEXMIX_API_URL`
Docker Port Mapping Example
```bash
docker run -d \
-p 3152:3000 -p 8154:8000 \
-e PLEXMIX_API_URL=http://localhost:8154 \
-v plexmix-data:/data \
ghcr.io/izzoa/plexmix:latest
```
Testing
All 315 tests passing ✅