When closed, the public request page shows a "booth closed" message instead of the form.
❌ {{ health.message }}
{% if health.missing_columns %}Missing columns: {{ health.missing_columns | join(', ') }}
{% endif %} {% if health.missing_tables %}Missing tables: {{ health.missing_tables | join(', ') }}
{% endif %} {% else %}✅ {{ health.message }}
{% endif %}Total requests: {{ total_records }}
Database size: {{ db_size }}
Uploaded MP3s: {{ upload_file_count }} files in {{ upload_dir_count }} request folders
Uploads total size: {{ upload_size }}
{% if status_counts %}Status breakdown:
Database path:
{{ db_path }}
Uploads path:
{{ upload_path }}
Set how the public /kiosk page cycles. Use -1 for QR only, 0 for pricing only, 1 for queue only, or 5+ seconds to cycle between QR, pricing, and queue.
Set via Portainer env var HERMES_API_KEY. Used for callback auth.
Current key: {{ hermes_key_masked }}
⚠️ No Hermes API key is configured. Set the HERMES_API_KEY environment variable in Portainer before using the callback workflow.
{% endif %}How long the signed Hermes callback URL stays valid (in hours). Default is 168 hours (7 days).
Push notifications for new customer requests. Leave either field blank to disable.
API key is set via the MUSICGPT_API_KEY environment variable in Docker.
API key configured: {{ '✅ Yes' if musicgpt_api_key_set else '❌ No' }}
Webhook URL: {{ musicgpt_webhook_url }}
Register this URL in your MusicGPT account webhook settings so completed songs POST back here.
When enabled, the generated album cover is attached to the delivery email. It is always shown on this admin page.
These settings are used to send confirmation, preview, and delivery emails to customers. The password is stored encrypted using the Flask secret key.
These values are written into every uploaded MP3 file. The song title from the prompt is written to the Title tag automatically. Blank fields are skipped.
Download a copy of the SQLite database before the event. Upload a previous backup to restore it; the current database will be renamed as a timestamped backup.
Download all uploaded MP3 and archived revision files as a single ZIP.
Use this only at the start of a new event. It will delete every request and every uploaded MP3 file. This cannot be undone.