{% extends 'base.html' %} {% block title %}Betrieb · imgsrx{% endblock %} {% block content %} {% include "partials/live_activity.html" %}
BETRIEB UND DATENPFLEGE

Dein Index im Betrieb.

Warteschlangen bleiben beim Pausieren erhalten. Laufende Downloads dürfen auslaufen.

Hardware-Monitor öffnen

Zustand und Handlungsbedarf

{% set summary = namespace(waiting=0, failed=0) %}{% for kind, state, count in queues %}{% if state in ['pending','running'] %}{% set summary.waiting = summary.waiting + count %}{% elif state == 'failed' %}{% set summary.failed = summary.failed + count %}{% endif %}{% endfor %}

{{ quantity(summary.waiting, 'anstehende Aufgabe', 'anstehende Aufgaben') }} · {{ quantity(summary.failed, 'fehlgeschlagene Aufgabe', 'fehlgeschlagene Aufgaben') }}. {% if summary.failed %}Fehler prüfen →{% endif %}

{{ 'Globale Webpause aktiv.' if worker_states.crawling.blocked else 'Globale Webabrufe freigegeben.' }} {% set unavailable = worker_states.values()|rejectattr('global_switch')|rejectattr('reachable')|list %}{% if unavailable %}{{ unavailable|length }} Worker nicht erreichbar.{% else %}Alle Worker zuletzt erreichbar.{% endif %} Workerstatus und Schalter →

{% if not storage.ok %}

Freier Speicher unter Mindestreserve. Speicherverwaltung prüfen.

{% endif %}
{{ '%.1f'|format(storage.free_bytes / 1024**3) }} GiBFreier Speicher · {{ 'ausreichend' if storage.ok else 'unter Mindestreserve' }}
{{ embeddings_hour }}Suchvektoren in der letzten Stunde

Durchsatz

{{ requests_minute }} Webanfragen in der letzten Minute · {{ images_hour }} verarbeitete Bilder in der letzten Stunde

Mittlere Request-Dauer in der letzten Stunde: {{ ('%.2f s'|format(average_download)) if average_download is not none else 'noch keine Messung' }}

Warteschlangen

{% for kind, status, count in queues if status in ['pending','running'] %}{% else %}{% endfor %}
Anstehende Verarbeitung
AufgabeStatusJobs
{{ state_label(kind) }}{{ state_label(status) }}{{ quantity(count, 'Aufgabe', 'Aufgaben') }} ansehen →
{% if queues %}Keine Arbeit wartet. Gespeicherte Ergebnisse findest du in der Historie.{% else %}Hier erscheinen Abruf- und Analyseaufträge, sobald du eine Quelle verarbeitest. Quellen öffnen →{% endif %}
Abgeschlossene Aufgaben und Fehler

Letzter erfolgreicher Crawl: {{ timestamp(last_crawl.completed_at if last_crawl else none) }}
Letzter erfolgreicher Discovery-Lauf: {{ timestamp(last_discovery.completed_at if last_discovery else none) }}

{% include 'partials/updated.html' %}

Worker steuern

{% for control in controls %}{% set state = worker_states[control.name] %}
{{ state.label }} · {{ state.reason }}{% if not state.global_switch %}
{{ state.health }}
Letztes Lebenszeichen: {% if control.heartbeat_at %}{{ timestamp(control.heartbeat_at) }}{% else %}noch keines{% endif %}{% endif %}{% if control.reason and control.reason != 'manual' %}
{{ control.reason }}{% endif %}
{% endfor %}

{% include 'partials/updated.html' %}

Dienste und Einrichtung

Datenbank
Bereit · diese Ansicht konnte die Datenbank lesen.
Quellensuche (SearxNG)
{{ services.searxng }}
Lokales Suchmodell (SigLIP)
{{ services.model }}
Sicherheitsfeed
{{ services.feed_status }}
{% if services.checked_at %}

Letzte Dienstprüfung: {{ timestamp(services.checked_at) }}

{% endif %}
Einrichtung und Hilfe bei Verbindungsfehlern

Lokaler Webprozess: SearxNG über den freigegebenen Host-Port, zum Beispiel SEARXNG_URL=http://127.0.0.1:8080. Im gemeinsamen Compose-Netz lautet die Adresse http://searxng:8080. Ein Dienstname funktioniert nur in diesem Netz. Docker ist nicht zwingend: die vorhandenen Dienste können auch mit Podman laufen.

Bei „nicht erreichbar“ zuerst laufenden Dienst und Port prüfen. Nach einer Änderung der lokalen .env die Anwendung neu starten. Das Suchmodell benötigt seinen konfigurierten lokalen Cache; beim ersten Laden kann ein Modelldownload nötig sein. Der Feed ist optional und benötigt SAFETY_FEED_URL.

Vorhandene Betriebsanleitung lesen →

Speicher und Modelle

{% for label, size in sizes.items() %}

{{ label }}: {{ '%.1f'|format(size / 1024**2) }} MiB

{% endfor %}
{% for model in models %}

{{ model.model_name }} @ {{ model.model_version }} · {{ model.embedding_dimension }} Dimensionen · {{ 'aktiv' if model.active else 'vorheriges Modell' }}

{% endfor %}

Verwendet gespeicherte Vorschauen. Alte Modellvektoren bleiben erhalten.

Konfiguration übertragen

Themen, Quellen, Beziehungen, Feedback und Einstellungen als JSON exportieren →

Vorhandene Quellen und Themen werden nicht überschrieben. Ein vollständiges Datenbank-Backup sichert auch Herkunft, Discovery und Bildindex; siehe README.

Änderungshistorie

{% for event in events %}

{{ timestamp(event.created_at) }} · {{ event.action }} · {{ event.entity }}

{% else %}

Noch keine administrativen Änderungen.

{% endfor %}
{% endblock %}