f26438abe048526051f9ae11d5df5f5ec2d4acf0
The server keeps a play queue per client, identified by the X-Queue-Id header. Send the stored ID with every request and save the ID from every response, so the client switches to the new queue after a reset or a sync. The ID is kept in localStorage so a page reload keeps the same queue. Also send Cache-Control: no-cache, so browsers that cached a random song before the server sent no-store fetch a new one.
music-randomizer-vue
Project setup
npm install
Compiles and hot-reloads for development
npm run serve
Compiles and minifies for production
npm run build
Lints and fixes files
npm run lint
Configuration
The Docker image writes config.js from public/config.template.js when the container starts, using these environment variables:
| Variable | Description |
|---|---|
API_HOSTNAME |
URL of the MusicServer, for example https://music.example.com. Empty to use the same host as the frontend. On another host, add the frontend's origin to the server's CORS_ALLOWED_ORIGINS. |
API_PASSWORD |
The MusicServer's API_PASSWORD, used to get an API token. Empty if the server has no password. Anyone who can open the frontend can read it. |
For npm run serve, create public/config.js (ignored by git):
window.__RUNTIME_CONFIG__ = { API_HOSTNAME: 'http://localhost:8080', API_PASSWORD: '' };
When the frontend is served by the MusicServer image, the server provides config.js with its own API_PASSWORD.