{% extends "base.html" %} {% block content %}
Setup
Verify configuration paths and runtime dependencies before scanning.
{# ── Warnings ─────────────────────────────────────────────── #} {% if setup.warnings %}
{{ setup.warnings | length }} warning{{ 's' if setup.warnings | length != 1 else '' }} detected
{% endif %} {# ── System checks ────────────────────────────────────────── #}
{# Config file #}
Config File
{% if setup.config.exists %}✓{% else %}✗{% endif %}
{{ "Found" if setup.config.exists else "Not found" }}
{{ setup.config.path or "not detected" }}
{% if setup.config.parent_writable %}✓{% else %}!{% endif %}
Directory {{ "writable" if setup.config.parent_writable else "not writable" }}
{# Database #}
Database
{% if setup.db.parent_exists %}✓{% else %}✗{% endif %}
Directory {{ "exists" if setup.db.parent_exists else "missing" }}
{{ setup.db.path or "not configured" }}
{% if setup.db.parent_writable %}✓{% else %}!{% endif %}
Directory {{ "writable" if setup.db.parent_writable else "not writable" }}
{# ── Scan roots ───────────────────────────────────────────── #}
Scan Roots
{% if setup.scan_roots %} {% for root in setup.scan_roots %} {% set all_ok = root.exists and root.is_dir and root.readable %}
{% if all_ok %}✓{% elif root.exists %}!{% else %}✗{% endif %}
{{ root.path }}
{% if not root.exists %} not found {% elif not root.is_dir %} not a directory {% elif not root.readable %} not readable {% else %} accessible {% endif %}
{% endfor %} {% else %}
No scan roots configured yet.
{% endif %}
{# ── First-run configuration form ─────────────────────────── #}
Quick Configuration
One container-visible path per line.
{% endblock %}