El parámetro fields="name,description,images" causaba error en playlists
curadas de Spotify (ej. "This Is ..."), haciendo que el nombre cayera
al fallback con el spotify_id.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reemplaza los bind mounts individuales de cantina.db y .spotify_cache
por un único directorio ./data/ montado en /app/data. El entrypoint
crea el directorio y los archivos vacíos si no existen, evitando que
Docker los cree como directorios al hacer un despliegue limpio.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Nuevo endpoint GET /admin/status devuelve si el usuario está logueado como admin
- Navbar muestra botón "Admin" que lleva a /admin/login si no hay sesión,
o "⚙ Admin" → /admin/playlists si ya está autenticado
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>