{% if _trial.expired %}⚠ Free trial has ENDED — this vendo is gated until a license credit is activated.{% else %}⏳ FREE TRIAL — … remaining{% endif %}
Buy a credit →
{% if not _trial.expired %}{% endif %}
{% elif is_unlicensed() %}
⚠ This vendo is UNLICENSED — activate a license credit to start selling.
Get a license →
{% endif %}
{# ADR-0022: degraded primary LAN — the configured interface (usually the
USB-Eth) is gone and we've fallen back to the mgmt VLAN so the box
stays reachable + sellable. Non-dismissible: this is the state where
the operator would otherwise be locked out entirely. #}
{% set _lan = lan_state() %}
{% if _lan.degraded %}
⚠ LAN interface
{# ADR-0022 part 2: while degraded on a site with no switch, this URL may
be the ONLY way back in. Show it while the operator can still read it. #}
{% set _emg = emergency_wan_admin() %}
{% if _emg.active %}
{{ _lan.intent }} is MISSING — running on {{ _lan.effective }}.
{%- if _lan.reason == 'pppoe_vlan_conflict' %} PPPoE is occupying the fallback VLAN — move it on the PPPoE page.
{%- elif _lan.reason == 'trunk_missing' %} The trunk interface is absent too.
{%- elif _lan.reason == 'configured_iface_missing' %} Check its network profile.
{%- else %} Your setting is unchanged and restores automatically when it's back.{% endif %}
Check System →
🛟 Recovery access is temporarily open from your modem's network at
{% endif %}
{% endif %}
{% block content %}{% endblock %}
{{ _emg.url }}
— write it down. It closes by itself once {{ _lan.intent }} is back.