{% extends "base.html" %} {% block content %}

Customization

What your customers see on the captive portal. Changes apply on the next page load.

{% if flash_msg %}
{{ flash_msg }}
{% endif %} {% if error_msg %}
{{ error_msg }}
{% endif %}

Reusable settings profile

Save your colors, text, and logo as a file, then load it on another vendo to skip the setup. (Per-vendo speed limits + anti-abuse settings aren't included.)

⬇ Download settings file

Loading a file applies it to this vendo right away (colors, text, business name, and logo).

Customer Portal Settings

Your logo, shown full-width across the top of the portal (no image → the wordmark + your business name). Recommended: a wide 1000 × 200px image. PNG or JPG, up to {{ max_banner_kb }} KB.

{# Active banner — preview + delete #} {% if banner_active %} {% else %}

No banner set — customers see the Vendora wordmark.

{% endif %} {# Pending banner — chosen but not yet live; applies on Save Settings #}

Best size: 1000 × 200px (wide). PNG or JPG, up to {{ max_banner_kb }} KB. Previews here and in Preview; goes live when you click Save Settings.

Colors, text, and the coin countdown. Hit Preview to see it live before saving.

10–300 seconds. Default: {{ settings.portal_coin_countdown_secs.default }}.

Background
Card surface
Accent
Text
Card border

Background, card, card border, accent (buttons/headings/links), and text. Presets are a starting point — adjust any color. Prices, success, and error colors stay fixed for clarity.

Max 120 chars. Shows under the wordmark / banner.

Max 40 chars — the title customers see (replaces "Vendora WiFi"). The banner above acts as your logo; the footer always shows "Powered by Vendora WiFi · version".

Max 20 chars — the coin button label on the login page (a 🪙 icon is added automatically). Default: "Insert Coin".

Operational Settings

Speed limits, abuse lockouts, and returning-customer behavior — separate from the portal's look. Each card saves on its own.

Bandwidth Management

Speed caps per customer and vendo-wide. Applies to active sessions within a couple seconds.

{% macro bw_field(key, label, hint) %} {% set d = bw_display[key] %}

{{ hint }}

{% endmacro %} {{ bw_field( "portal_bandwidth_per_client_down_kbps", "Per-client download cap", "Max download speed per customer. Default 5 Mbps." ) }} {{ bw_field( "portal_bandwidth_per_client_up_kbps", "Per-client upload cap", "Max upload speed per customer. Default 2 Mbps." ) }} {{ bw_field( "portal_bandwidth_total_wan_down_kbps", "Total WAN download cap", "Shared by all customers + SBC. Set to your modem's plan rate. Default 50 Mbps." ) }} {{ bw_field( "portal_bandwidth_total_wan_up_kbps", "Total WAN upload cap", "Shared by all customers + SBC. Set to your modem's upload plan rate. Default 20 Mbps." ) }}

Anti-Abuse Throttle

Locks out customers who keep tapping Insert Coin without dropping one. Any coin resets the counter.

1–100 empty tries. Default: {{ settings.portal_abuse_max_no_coin_attempts.default }}.

1–1440 minutes (max 24 h). Default: {{ settings.portal_abuse_lock_duration_minutes.default }} minutes.

Empty attempts older than this don't count. Default: {{ settings.portal_abuse_decay_window_minutes.default }} minutes.

Repeat lockouts double each time, up to this ceiling. Default: {{ settings.portal_abuse_lock_max_minutes.default }} minutes.

Auto Reconnect

Returning customers on the same device skip re-entering their voucher.

Default: ON.

{% endblock %}