Admin Settings v{{ version }}

{% with messages = get_flashed_messages(with_categories=true) %} {% if messages %}
{% for category, message in messages %}

{{ message }}

{% endfor %}
{% endif %} {% endwith %}

Booth Status

When closed, the public request page shows a "booth closed" message instead of the form.

Database Health

{% if not health.ok %}

❌ {{ 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 %}

Database Statistics

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:

    {% for status, count in status_counts.items() %}
  • {{ status }}: {{ count }}
  • {% endfor %}
{% endif %}

Database path:
{{ db_path }}

Uploads path:
{{ upload_path }}

Revision Limit

Set to 0 to disable customer-submitted revisions. Operators can still upload new versions manually.

Dashboard Auto-Refresh

Kiosk Display Mode

Set how the public /kiosk page cycles. Use -1 for QR only, 0 for pricing only, or 5+ seconds to cycle between them.

Examples: -1 = QR only, 0 = pricing only, 10 = swap every 10 seconds.

Hermes API Key

Set via Portainer env var HERMES_API_KEY. Used for callback auth.

Current key: {{ hermes_key_masked }}

{% if not hermes_key_set %}

⚠️ No Hermes API key is configured. Set the HERMES_API_KEY environment variable in Portainer before using the callback workflow.

{% endif %}

Email (SMTP) Settings

These settings are used to send confirmation, preview, and delivery emails to customers. The password is stored encrypted using the Flask secret key.

SMTP Host
SMTP Port
SMTP Username
From Address
SMTP Password

Send Test Email

MP3 Metadata Tags

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.

Artist
Album
Year
Comment

Database Backup / Restore

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.

Music Files Backup

Download all uploaded MP3 and archived revision files as a single ZIP.

⚠️ Reset System

Use this only at the start of a new event. It will delete every request and every uploaded MP3 file. This cannot be undone.