nasindex · Dokumentation
Dokumentation · Stand 8. Oktober 2026

nasindex Dokumentation

nasindex macht ein Bauprojektarchiv auf dem NAS für Claude durchsuchbar, ohne dort etwas zu verändern. Diese Seite beschreibt, wie es arbeitet, wie man es einrichtet und betreibt, und wo seine Grenzen liegen.

1 Container, Indexer und Server zugleich 0 Schreibzugriffe auf das Archiv 5 Werkzeuge für Claude
1 · Überblick

Ein Findmittel, kein Wissensspeicher

Der Index bringt Claude zu den richtigen fünf Dokumenten. Danach liest Claude das vollständige Original mit intakten Tabellen. So entstehen keine aus dem Zusammenhang gerissenen Zahlen, die plausibel klingen und falsch sind.

Nur lesend

Das Archiv wird nie beschrieben. Der Zugriff läuft über einen Ordnerpfad auf dem NAS selbst oder über einen NAS-Benutzer, der nur lesen darf.

Die Ordner tragen das Wissen

Projekt, Phase, BKP-Code, Arbeitsgattung, Vergabestufe und Dokumentklasse liest nasindex aus dem Pfad, bevor es eine Datei öffnet.

Claude zitiert das Original

Antworten mit Zahlen stützen sich immer auf das gelesene Dokument, nie auf einen Suchausschnitt.

2 · So funktioniert es

Vom Archiv zur Antwort

Ein Container erledigt beides: Er indexiert das Archiv in einer Dauerschleife und beantwortet die Anfragen von Claude. Der Index liegt im Container auf einem eigenen Datenträger, nie auf dem Archiv.

ArchivNAS-Freigabewird nur gelesen
IndexerZyklus jede Stundenur Neues und Geändertes
IndexVolltext und Metadatenlokal im Container
MCP-ServerClaude fragtüber Tailscale, mit Schlüssel

Ein Indexierungszyklus

SchrittWas passiert
Vorlage-Katalog einspielenNur beim ersten Start und nur, wenn ein Katalog von einem anderen Rechner bereitliegt (Seed).
Dateien suchenDas Archiv wird durchlaufen. Aus jedem Pfad entstehen die Metadaten.
Texterkennung prüfenEinmalige Kalibrierung des Text-Extraktors an Beispieldateien.
Dateien abgleichenNeu, geändert oder verschwunden? Erkannt über Grösse und Änderungsdatum.
Prüfsummen bildenSHA-256 je Datei, für Änderungen und Duplikate.
Texte auslesenVolltext aus PDF, Office und Scans. Scans laufen durch die Texterkennung (OCR, Deutsch).
Volltextindex aufbauenSuchindex über Dateiname, Pfad, Gattung und Inhalt.
Katalog exportierenEin Abbild des Index, aus dem ein anderer Rechner seinen Index aufbauen kann.

Der erste Zyklus über ein grosses Archiv dauert Stunden. Danach dauert ein Zyklus über ein unverändertes Archiv nur noch Sekunden bis Minuten.

Was der Pfad verrät

Aus 21099-XXX / 1 Aufträge / 32162_Falttor Anlieferung / 2 Vergabe / 1 Angebote / Offerte_240813.pdf liest nasindex:

Projekt

21099-XXX

Phase

1 Aufträge

BKP und Gattung

32162 · Falttor Anlieferung

Vergabestufe

2 Vergabe

Dokumentklasse

Angebot

Jahr, Näherung

2024

Duplikate führt nasindex über den Inhalt zusammen. Es gewinnt die Kopie mit Dokumentklasse, dann mit Gattung, dann die ausserhalb von Sicherungs-, Kopie- oder Versandordnern, dann der kürzere Pfad. Das Jahr stammt aus Pfad oder Dateiname, sonst aus dem Dateidatum. Es taugt für Zeitraumfilter, nicht für Aussagen wie «im Jahr X vergeben».

3 · Installation

Drei Wege, ein Assistent

nasindex kommt als Paket nasindex-<version>.zip mit dem Programm für Intel/AMD und ARM. Das Installationsskript lädt das passende Programm, startet den Einrichtungs-Assistenten, prüft den Zugriff aufs Archiv und startet nasindex. Die Schritt-für-Schritt-Anleitung liegt als ANLEITUNG.md im Paket.

WegWannArchivzugriff
Direkt auf dem NASDauerbetrieb, wenn das NAS Docker kann (Synology Container Manager)bind: der Ordnerpfad der Freigabe, z. B. /volume1/Projekte
Auf einem anderen RechnerEin Linux-Rechner, der dauernd läuft, oder ein Mac mit Docker Desktopcifs: der Container verbindet sich selbst mit der Freigabe, mit einem Lese-Benutzer
Mac zuerst, dann NASGrosses Archiv, schwaches NAS: der Mac liest einmal alles aus, das NAS übernimmterst cifs auf dem Mac, dann bind auf dem NAS mit dem Katalog des Mac

Voraussetzungen

  • Docker mit Docker Compose v2. Prüfen mit docker compose version.
  • Mindestens 5 GB frei im Installationsordner, dazu Platz für den Index, rund ein Zehntel der Archivgrösse.
  • Tailscale auf dem Rechner mit nasindex und auf jedem Arbeitsplatz mit Claude.
  • Auf den Arbeitsplätzen Claude Desktop mit Node.js, oder Claude Code.
  • Im Modus cifs: ein NAS-Benutzer mit nur Leserecht auf die Archiv-Freigabe. Ein Administrator-Konto braucht nasindex nie.

Starten

Paket entpacken, den Ordner nasindex nicht umbenennen oder verschieben, dann darin:

sh installieren.sh

Auf dem Mac geht auch ein Doppelklick auf Installieren.command. Braucht Docker Administratorrechte, wie auf dem Synology-NAS üblich, fragt das Skript selbst nach dem Passwort.

Seed: Katalog von einem anderen Rechner

Ein stärkerer Rechner baut den Index einmal komplett. Sein Katalog besteht aus vier Einträgen: catalog.jsonl.gz, catalog.json, text/ und meta/. Im Container liegen sie unter /daten:

mkdir nasindex-katalog
docker cp nasindex:/daten/catalog.jsonl.gz nasindex-katalog/
docker cp nasindex:/daten/catalog.json nasindex-katalog/
docker cp nasindex:/daten/text nasindex-katalog/
docker cp nasindex:/daten/meta nasindex-katalog/

Den Ordner aufs Zielsystem kopieren und dem Assistenten bei der Frage nach dem Seed-Pfad angeben. Beim ersten Start spielt nasindex ihn ein, im Log als Zeile seed: …. Danach meldet der Abgleich meist «0 neu, 0 geändert».

WichtigDas Zielsystem muss genau dieselbe Freigabe lesen wie der Rechner, der den Katalog gebaut hat. Sonst passen die Pfade nicht, und nasindex liest alles neu aus. Seed nur aus vertrauenswürdiger Quelle einspielen: der Katalog wird ungeprüft übernommen.
4 · Einrichtungs-Assistent

Fragen, Dateien, Prüfungen

Der Assistent ist in nummerierte Abschnitte gegliedert: Voraussetzungen, Archivzugang, Startdaten, Netzwerk, Feldextraktion, Dateien schreiben, Start und Erstindexierung, Abschluss. Bevor er etwas schreibt, zeigt er die Voraussetzungen mit Prüfergebnis.

FrageBedeutung
Läuft der Container auf dem NAS selbst?Ja: Modus bind, danach der Archivpfad. Nein: Modus cifs, danach SMB-Server, Freigabe, Lese-Benutzer, Domäne (optional) und Passwort.
Katalog von einem anderen Rechner (Seed-Pfad)Leer: Erstindexierung hier. Sonst der Ordner mit dem Katalog.
Tailscale-IP-AdresseDer Vorschlag kommt von tailscale ip -4. Nur eine IP-Adresse, kein Hostname. 0.0.0.0 lehnt der Assistent ab. lokal bindet nur an 127.0.0.1.
PortStandard 8765.
FeldextraktionAnbieter, Modell, optional Auftraggeber, Schlüssel und Freigabe. Standard: anthropic, kein Schlüssel, keine Freigabe. Siehe Feldextraktion.

Was entsteht

DateiInhalt
.envModus, Compose-Dateien, Adresse und Port, Werte der Feldextraktion. Keine Zugangsdaten.
docker/mcp.tokenDer Zugangsschlüssel für Claude, zufällig erzeugt.
docker/smb.credNur im Modus cifs: Lese-Benutzer und Passwort.
docker/llm.keyOptional: API-Schlüssel für die Feldextraktion.

Alle Dateien haben die Rechte 600, nur der Besitzer kann sie lesen. Bestehende Dateien überschreibt der Assistent nur nach Rückfrage. Im Modus cifs prüft er die Zugangsdaten am NAS, bevor er startet, und fragt bei einem Fehler bis zu drei Mal neu.

Fortschritt und erneuter Aufruf

Nach dem Start zeigt der Assistent den ersten Zyklus live, zum Beispiel Schritt 5 von 7: Texte auslesen - 1234 von 20000 (6 %), noch ~3 h 10 min. Ctrl-C beendet nur die Anzeige, die Indexierung läuft weiter. Den Stand später wieder ansehen:

sh installieren.sh

Das Skript fragt dann «Die Fragen neu beantworten?». Enter heisst nein: es prüft nur und zeigt den Stand.

5 · Claude anbinden

Arbeitsplätze verbinden

Am Ende druckt der Assistent beide Rezepte mit Adresse und Port. Den Schlüssel lesen Sie aus docker/mcp.token. Er gibt vollen Lesezugriff auf das indexierte Archiv: wie ein Passwort behandeln.

Claude Desktop

In claude_desktop_config.json ergänzen, danach Claude Desktop ganz beenden und neu starten. --allow-http ist richtig so, die Verschlüsselung übernimmt Tailscale.

{
  "mcpServers": {
    "archiv": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://<tailscale-ip>:8765/mcp", "--allow-http",
               "--header", "Authorization: Bearer <schluessel>"]
    }
  }
}

Claude Code

claude mcp add --transport http archiv http://<tailscale-ip>:8765/mcp --header "Authorization: Bearer <schluessel>"

Skill

In Claude unter Einstellungen → Fähigkeiten die Datei claude/archiv-skill.zip aus dem Paket hochladen. Der Skill sagt Claude, wann welches Werkzeug dran ist, dass Zahlen aus dem Original kommen und wie Fundstellen angegeben werden. Test: «Wie ist der Stand des Archivs?»

6 · Werkzeuge für Claude

Suchen findet, Lesen belegt

WerkzeugWofür
archiv_sucheVolltext mit Filtern auf Projekt, Dokumentklasse, Gattung, BKP und Jahr.
archiv_lesenDas ganze Dokument aus dem Index, mit Tabellen. Hier kommen Zahlen und Daten her.
archiv_dateiDie Originaldatei direkt in den Chat: PDF und Bilder (png, jpg, gif, webp) bis 10 MB. Sonst Pfad, Grösse und der Grund.
archiv_sqlEine einzelne lesende SQL-Abfrage. Zählen, gruppieren, Lücken finden.
archiv_statusWas im Index steckt, wie aktuell er ist, ob das Archiv erreichbar ist.

Fragen, die damit gehen

FrageWeg
Was wurde beim Falttor Anlieferung offeriert?Suche mit Dokumentklasse Angebot, dann lesen
Wie viele Angebote haben wir pro Gattung?SQL mit GROUP BY gattung
Welche Gattungen haben Rechnungen, aber keinen Werkvertrag?SQL mit HAVING
Wo taucht Firma X sonst noch auf?Suche ohne Filter über alle Projekte
Alle Werkverträge über CHF 50'000SQL auf die Tabelle felder, wenn die Feldextraktion gelaufen ist
7 · Datenmodell

Was archiv_sql sieht

Für Zähl- und Vergleichsfragen. Die Abfrage ist nur lesend, ein einzelnes SELECT.

Tabelle docs

Eine Zeile je Datei. Die wichtigsten Spalten:

  • rel, filename, ext, size: Pfad im Archiv, Name, Endung, Grösse
  • projekt, phase, bkp, gattung, stufe, dokklasse, jahr: aus dem Pfad
  • dup_of: gesetzt bei einem Duplikat, zeigt auf das Original
  • chars, page_count, table_count, ocr_used: zum ausgelesenen Text
  • extract_status: ok, meta_only, duplicate, pending, error, missing

Tabelle felder

Eine Zeile je verarbeitetem Werkvertrag, verknüpfbar über rel:

  • auftragnehmer, gegenstand, vertragsdatum, vertragsnummer
  • netto, brutto als Zahl, waehrung
  • unterzeichner_ag, unterzeichner_an, sachbearbeiter, telefon, email
  • status je Dokument: ok, leer, zu_gross, fehler
  • <feld>_status je Feld: wert, nicht_im_dokument, nicht_extrahiert

meta_only heisst: kein Volltext, etwa bei CAD-Plänen und Bildern. Sie sind über Pfad und Dateiname trotzdem auffindbar. missing heisst: die Datei ist aus dem Archiv verschwunden.

8 · Betrieb

Was von allein läuft, was Sie tun

nasindex startet nach jedem Neustart des Rechners selbst und prüft das Archiv jede Stunde auf Neues und Geändertes. Alle Befehle laufen im Ordner nasindex. Auf dem Synology-NAS sudo voranstellen.

Sie wollenBefehl
Sehen, ob es läuftdocker compose ps
Die letzten Meldungen sehendocker compose logs --tail 200 nasindex
Fortschritt und Stand sehensh installieren.sh, dann Enter
Wissen, wie viel im Index stecktdocker exec nasindex python3 /app/nasindex.py stats
Sofort indexieren statt auf die Stunde zu wartendocker exec nasindex python3 /app/docker/entrypoint.py build
Den Server ohne Claude prüfendocker exec nasindex python3 /app/docker/entrypoint.py selbsttest
Die NAS-Zugangsdaten prüfen (cifs)docker compose run --rm --no-deps nasindex smb-pruefen
Neu startendocker compose restart
Anhalten und wieder startendocker compose stop und docker compose up -d
Schlüssel für Claude wechselnNeuen Wert in docker/mcp.token (mindestens 32 Zeichen), dann docker compose restart. Arbeitsplätze neu eintragen.

Aktualisieren

Ein Update ist ein neues Paket. Am selben Ort entpacken und vorhandene Dateien überschreiben lassen. .env und die Zugangsdaten sind nicht im Paket und bleiben. Dann sh installieren.sh und «Die Fragen neu beantworten?» mit Enter verneinen. Der Index bleibt erhalten.

9 · Feldextraktion

Beträge aus Werkverträgen

Volltextsuche findet Dokumente, kann aber nicht rechnen. Für Schwellen und Summen liest felder zwölf Felder aus jedem Werkvertrag und schreibt sie in die Tabelle felder. Dafür geht der Vertragstext an ein Sprachmodell. Das ist der einzige Netzaufruf nach aussen in nasindex.

Nie automatisch

Der Container startet felder nie selbst. Es läuft nur auf Ihren Befehl.

Nur mit Freigabe

Ohne Freigabe verweigert felder jeden Lauf, auch den Trockenlauf. Der Assistent fragt danach, Standard ist nein.

Zitiert wird das Original

Beträge werden nie berechnet oder umgerechnet, nur übernommen, wenn sie so im Dokument stehen.

Anbieter

AnbieterAdresseModellSchlüssel
anthropicfest, api.anthropic.comoptional, Standard claude-sonnet-5Pflicht, beginnt mit sk-ant-
openaifest, api.openai.comPflichtPflicht, beginnt mit sk-
eigenerPflicht, ein OpenAI-kompatibler Endpunkt wie vLLM, llama.cpp oder OpenRouter. http:// nur im Tailnet.Pflichtoptional

Geprüft hat Digital Apes nur anthropic mit dem Standardmodell. Bei openai und eigener muss das Modell ein JSON-Schema einhalten und Dokumente bis 500'000 Zeichen fassen, etwa 125'000 Token.

Ablauf

docker compose exec nasindex python3 /app/nasindex.py felder --trockenlauf
docker compose exec nasindex python3 /app/nasindex.py felder --limit 15
docker compose exec nasindex python3 /app/nasindex.py felder

Der Trockenlauf zeigt Anzahl, Zeichen und bei anthropic die geschätzten Kosten, ohne ein Dokument zu senden. Richtwert: 541 Werkverträge mit 14,7 Mio. Zeichen kosten rund 13 bis 15 US-Dollar. --limit 15 gibt ein kleines Set zum Gegenlesen. Ein abgebrochener Lauf macht beim nächsten Aufruf weiter. Nicht parallel zu einem laufenden Indexierungszyklus starten.

Vortest bei eigenem Modell

Vor jedem Lauf fragt nasindex den Server nach der Kontextgrösse und schickt eine Probe mit einem erfundenen Mini-Vertrag. So zeigt sich vorab, ob das Modell das Format einhält. Zu grosse Dokumente bleiben für ein Modell mit mehr Kontext liegen. Meldet der Server keine Kontextgrösse (Ollama, LM Studio, llama.cpp), setzen Sie sie im Assistenten oder als EXTRAKTION_KONTEXT. Ollama kürzt zu lange Eingaben still.

Feldregeln

  • Vertragsnummer nur, wenn das Dokument sie als Vertrags-, Auftrags-, Bestell-, Nachtrags- oder Mehrkostennummer bezeichnet. Projekt-, Objekt-, Kostenstellen- und BKP-Nummern nie.
  • Auftragnehmer sind nie Architekt, Fachplaner, Bauleitung oder Ingenieurbüro, ausser im eigenen Planervertrag. Auch nicht eine Liefer- oder Rechnungsadresse.
  • Unterzeichner AN nur aus der Auftragnehmerfirma.
  • Währung nur bei genanntem Betrag, nie aus einer IBAN.
  • Telefon und E-Mail nur, wenn sie eindeutig zum Auftragnehmer gehören.
  • Optional ein Auftraggeber: der Name gilt dann nie als Auftragnehmer.

Eine Regeländerung wirkt nur auf neu ausgelesene Verträge. felder --force liest alle neu und kostet wie ein voller Lauf.

Freigabe widerrufenEXTRAKTION_FREIGABE= in .env leeren, dann docker compose up -d. Den Stand zeigt docker compose logs nasindex | grep felder:.
10 · Konfiguration

Einstellungen

Der Assistent schreibt die .env. Die übrigen Werte stehen im Abschnitt environment der Compose-Datei, compose.bind.yml oder compose.cifs.yml. Nach einer Änderung docker compose up -d. Zugangsdaten gehören nie in diese Dateien, nur in die Dateien unter docker/.

EinstellungStandardBedeutung
INDEX_INTERVALL3600Sekunden zwischen zwei Zyklen, mindestens 60
ARCHIV_PROJEKTEleer = alleProjekte, kommagetrennt
OCRanaus schaltet die Texterkennung für Scans ab
OCR_SPRACHEdeuSprache der Texterkennung
EXTRAKT_JOBS2Dateien, die gleichzeitig ausgelesen werden
EXTRAKT_TIMEOUT600Sekunden je Datei, bevor abgebrochen wird
XBERG_THREADS2Threads je Auslesevorgang
MCP_HOST_ADRESSE127.0.0.1Adresse, an die der Port gebunden wird. Die Tailscale-IP, nie 0.0.0.0
MCP_PORT8765Port für Claude
EXTRAKTION_FREIGABEleerja gibt die Feldextraktion frei
EXTRAKTION_ANBIETERanthropicanthropic, openai oder eigener
EXTRAKTION_MODELLbei anthropic: claude-sonnet-5Modell, bei openai und eigener Pflicht
EXTRAKTION_BASIS_URLleerAdresse des eigenen Endpunkts, nur bei eigener
EXTRAKTION_KONTEXTleerKontextgrösse des eigenen Modells in Token
EXTRAKTION_AUFTRAGGEBERleerName des Auftraggebers für den Prompt

Ressourcen: Die Compose-Dateien setzen 4 CPUs und 4 GB Arbeitsspeicher. Richtwert: 1 GB je gleichzeitig ausgelesener Datei plus 1 GB Grundlast. Ein ungültiger Wert bricht den Start mit einer Meldung ab, die nur den Namen der Einstellung nennt.

11 · Sicherheit

Was geschützt ist, und wodurch

Archiv nur lesend

Im Modus bind ist der Ordner nur lesend eingebunden. Im Modus cifs verbindet sich der Container mit fest verdrahteten Optionen nur lesend, ohne Ausführen. Der Lese-Benutzer hat ohnehin keine Schreibrechte.

Zugriff nur im Tailnet

Der Server spricht HTTP ohne eigenes TLS. Die Verschlüsselung kommt von Tailscale. Der Port wird nur an die Tailscale-Adresse gebunden, nie an 0.0.0.0. Öffentlich erreichbar ist er nicht vorgesehen.

Der Schlüssel ist Vollzugriff

Wer docker/mcp.token kennt, kann suchen, lesen und Originaldateien abrufen. Nicht per Mail oder Chat weitergeben. Ein Wechsel wirkt nach einem Neustart.

Zugangsdaten als Dateien

Passwort, Token und API-Schlüssel liegen in Dateien mit Rechten 600, nie in Umgebungsvariablen und nie im Programm. Meldungen nennen nie einen Schlüssel oder ein Passwort.

Ein einziger Weg nach aussen

Nur die Feldextraktion sendet Text an einen Anbieter, nur mit Freigabe und nur auf Befehl. Ein Schlüssel geht nur an die konfigurierte Adresse, nie an ein Umleitungsziel.

Zwei Adressen

POST /mcp verlangt den Schlüssel. GET /gesundheit antwortet ohne Schlüssel nur mit ok oder nicht ok. Jeder andere Pfad ergibt 404.

12 · Grenzen

Was nasindex nicht kann

  • CAD-Pläne und Bilder haben keinen Volltext. Sie sind über Pfad und Dateiname auffindbar.
  • Das Jahr ist eine Näherung aus Pfad, Dateiname oder Dateidatum.
  • Beträge sind im Volltext keine Zahlen. Schwellen und Summen gehen nur über die Tabelle felder, heute für Werkverträge.
  • Neue Dateien erscheinen mit dem nächsten Zyklus, also spätestens nach einer Stunde.
  • Eigene Modelle für die Feldextraktion sind ungeprüft. Die Qualität gilt pro Modell.
  • Der Container läuft als root, im Modus cifs mit dem Recht, Freigaben einzubinden.
  • Windows mit Docker Desktop ist im Modus cifs ungetestet. Ein Mac mit einem Netzlaufwerk als bind ist nicht unterstützt, dort cifs verwenden.
13 · Störungen

Wenn etwas hakt

Fällt das Archiv aus, funktioniert die Suche weiter. Der Index liegt im Container. Es fehlen nur neue Dateien und das Lesen von Originalen.

Was Sie sehenWas hilft
«nasindex erreicht das Archiv nicht»Pfad, Server, Freigabe, Benutzer oder Passwort stimmen nicht. Assistent neu starten und die Fragen neu beantworten.
Claude findet den Server nichtTailscale auf beiden Geräten aktiv? Adresse, Port und Schlüssel richtig? Claude Desktop ganz neu gestartet?
Claude findet eine neue Datei nichtDer nächste Zyklus nimmt sie auf. Sofort: entrypoint.py build, siehe Betrieb.
scan: missing-Abgleich uebersprungenEine Schutzwache hat ausgelöst, weil auf einmal viele Dateien fehlen. Nichts ist verloren. Wurde wirklich ein Ordner entfernt, siehe unten.
felder: Konfiguration unvollstaendig (…)Die genannte Einstellung der Feldextraktion fehlt oder ist ungültig. Assistent neu starten.
Kein Dokument passt in den KontextKein Fehler des Laufs. Modell mit mehr Kontext wählen oder die Kontextgrösse richtig setzen.

Ordner absichtlich entfernt

Die Schutzwache verhindert, dass ein kurz fehlendes Netzlaufwerk den Index leert. Ist der Rückgang gewollt, einmal bestätigen:

docker exec nasindex python3 /app/nasindex.py scan --verschwunden-ok --root /archiv --index /daten --cache /daten --rolle indexer

Meldungen von archiv_status

CodeBedeutung
erreichbarDas Archiv ist da und hat Inhalt.
leerDer Ordner ist leer, meist ein falscher Pfad.
fehltDer Ordner existiert nicht, oder es fehlt das Leserecht.
haengtKeine Antwort in der Zeit, vermutlich eine hängende Verbindung zum NAS.

Rückgabewerte von build

CodeBedeutung
0Erfolg, auch «nichts zu tun»
1Konfigurationsfehler oder Archiv nicht erreichbar, die Meldung nennt den Grund
75Archivquelle nicht erreichbar, oder eine Schutzwache hat ausgelöst
130Lauf durch einen Stopp abgebrochen
137Von aussen beendet, oft zu wenig Arbeitsspeicher

Bei Fragen schicken Sie Digital Apes die Ausgabe von docker compose logs --tail 200 nasindex. Sie enthält keine Zugangsdaten.