DJ Beets Setup
Diese Poetry-Umgebung ist dein eigenes Projekt als Ersatz für beets. Hier verwaltest du Versionen und baust eigene Tools ein.
Verwendung
Lokal testen
cd src/dj-beets
poetry install
poetry run beet --version
Deployment auf fileserver
Das komplette src/dj-beets/ Projekt wird beim Deploy nach /opt/dj-beets kopiert:
make deploy-fileserver
Dies:
- Kopiert dein
src/dj-beets/nach/opt/dj-beetsauf dem Server - Installiert alle Dependencies via Poetry (beets, beatport4, beetcamp, etc.)
- Nutzt
poetry run beetfür alle beets-Operationen
Wichtig: Dein lokales Projekt ist die einzige Quelle. Kein externes GitHub-Repo mehr!
Development Workflow
-
Änderungen lokal testen:
cd src/dj-beets poetry install poetry run beet --version # Deine Änderungen testen -
Änderungen committen & deployen:
git add src/dj-beets/ git commit -m "Update dj-beets project" git push # Auf fileserver deployen make deploy-fileserver -
Auf fileserver nutzen:
ssh fileserver cd /opt/dj-beets poetry run beet --version # Auto-Import läuft automatisch alle 10 Minuten via Timer
Plugins
Alle Plugins werden via pyproject.toml verwaltet:
- beets ^2.3.1: Basis-Library-Manager
- beets-beatport4 ^0.4.1: Beatport API v4 Integration
- beetcamp ^0.9.3: Bandcamp Autotagger
- requests, beautifulsoup4, html5lib: Web-Scraping Dependencies
Weitere Plugins kannst du direkt in pyproject.toml hinzufügen.
Konfiguration
Die beets-Config liegt in config.yaml (wird nach /opt/dj-beets/config.yaml deployed).
Beatport Authentication
Beatport4 nutzt Token-basierte Authentifizierung. Token wird in /data/daten/DJing/Data/beatport_token.json gespeichert.
Einmalig authentifizieren:
# Auf fileserver
ssh danlin@10.202.82.6
beet beatport4 auth
# Folge den Prompts für Beatport Login
# Oder lokal
cd src/dj-beets
poetry run beet beatport4 auth
Das Token-File wird automatisch in allen Containern gemountet und bleibt nach Rebuilds erhalten.
API Tokens
- Discogs: Token in
config.yaml→discogs.user_token - Beatport: Token-File →
/data/daten/DJing/Data/beatport_token.json
Wichtige Pfade:
- Library:
/data/daten/DJing/Data/MusicLibrary.db - Music:
/data/daten/DJing/Music - Inbox:
/data/daten/DJing/Inbox - Project:
/opt/dj-beets
Updates
Eigenes Projekt updaten:
# Lokal ändern
cd src/dj-beets
# z.B. neue Dependency hinzufügen
poetry add some-new-package
# Deployen
make deploy-fileserver
Dependency-Updates:
cd src/dj-beets
poetry update
make deploy-fileserver
Auto-Import
Der Auto-Import läuft alle 10 Minuten via systemd Timer und nutzt:
cd /opt/dj-beets
poetry run beet import -q /data/daten/DJing/Inbox