Files
infra-nix/src/dj-beets

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:

  1. Kopiert dein src/dj-beets/ nach /opt/dj-beets auf dem Server
  2. Installiert alle Dependencies via Poetry (beets, beatport4, beetcamp, etc.)
  3. Nutzt poetry run beet für alle beets-Operationen

Wichtig: Dein lokales Projekt ist die einzige Quelle. Kein externes GitHub-Repo mehr!

Development Workflow

  1. Änderungen lokal testen:

    cd src/dj-beets
    poetry install
    poetry run beet --version
    # Deine Änderungen testen
    
  2. Änderungen committen & deployen:

    git add src/dj-beets/
    git commit -m "Update dj-beets project"
    git push
    
    # Auf fileserver deployen
    make deploy-fileserver
    
  3. 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.yamldiscogs.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