Docker bedienen
Desktop öffnen und Katalog einrichten
Abschnitt betitelt „Desktop öffnen und Katalog einrichten“- Öffne die bei der Installation eingerichtete Server-Adresse und melde dich an.
- Bediene die App im gestreamten Desktop. Dateidialoge zeigen die Ordner im Container, nicht die Ordner deines PCs.
- Wähle bei vorhandenen Modellen „Bestehende Ordnerstruktur übernehmen“ und im Dateidialog das Lesezeichen „Modelle“ für
/models. Siehe auch Ersteinrichtung.
Für einen zusätzlich eingebundenen Ordner wie /models2 gibst du dessen Containerpfad im Dateidialog ein. Behalte diese Mount-Ziele auch nach Updates bei. Neue Dateien kopierst du auf dem Server in den eingebundenen Modellordner und importierst sie über „Importieren“ → „Dateien…“ oder „Ordner…“.
Die Zwischenablage zwischen Browser und Desktop kann sich von einer lokalen Installation unterscheiden. Wenn das Kopieren eines Links nicht klappt, öffne /katalog/ direkt und suche die Datei dort.
Begleitseite öffnen
Abschnitt betitelt „Begleitseite öffnen“Öffne dieselbe Server-Adresse mit /katalog/ am Ende in einem normalen Browser-Tab, zum Beispiel http://192.168.1.10:3000/katalog/. Die Seite verwendet dieselben Zugangsdaten. Die Überschrift lautet „Download und Slicer“; in der App findest du den Bereich „Download & Slicer“.

Mit „Name suchen“, „Dateityp“, „Ordner“, „Tag“ und „Sortierung“ grenzt du die Liste ein. Bestätige mit „Anwenden“. Sortiert wird nach „Name“, „Neueste“ oder „Größe“. „Zurück“ und „Weiter“ blättern durch die Seiten mit bis zu 50 Dateien.
Die Sprache wird zunächst aus der Browsersprache ermittelt; ohne passende Sprache gilt Deutsch. In der Kopfleiste kannst du Deutsch, Englisch, Spanisch oder Französisch wählen. „Farbschema“ wechselt mit JavaScript zwischen „Automatisch“, „Hell“ und „Dunkel“. Suche und Download funktionieren auch ohne JavaScript.
Ablauf: Modell hochladen und importieren
Abschnitt betitelt „Ablauf: Modell hochladen und importieren“- Öffne auf der Begleitseite „Dateien hochladen“.
- Klicke „Dateien auswählen“ oder ziehe Dateien auf die Upload-Fläche. Dafür muss JavaScript aktiviert sein.
- Warte auf „Fertig“. Fortschritt und „Abbrechen“ stehen pro Datei zur Verfügung. Der Browser überträgt nacheinander; insgesamt erlaubt der Dienst zwei gleichzeitige Uploads.
- Wechsle zur App im Browser-Desktop. Wähle „Importieren“ → „Ordner…“ und
/models/Eingang. Bei abweichendem Upload-Ziel verwendest du dessen Pfad. - Importiere hochgeladene Archive bei Bedarf einzeln über „Dateien…“. Der Upload selbst entpackt sie nicht. Die Ordnerübernahme erfasst Modelle, entpackt aber keine darin liegenden Archive.
- Lade die Begleitseite nach dem Import neu, damit die katalogisierten Modelle erscheinen.

Ein erfolgreicher Upload legt nur eine Datei auf dem Server ab. Die Begleitseite schreibt nicht in die Katalogdatenbank und löst keinen automatischen App-Import aus.
Upload-Grenzen
Abschnitt betitelt „Upload-Grenzen“Erlaubt sind .3mf, .stl, .obj, .stp, .step, .zip, .7z und .rar. Dateiname und Anfangssignatur werden geprüft; das ersetzt keine vollständige Format- oder Virenprüfung. Bestehende Dateien werden nicht überschrieben: Namenskonflikte bekommen Zusätze von (2) bis (100), danach wird die Datei abgelehnt.
KATALOG_UPLOAD_DIR ist standardmäßig /models/Eingang. Das Verzeichnis wird beim ersten Upload angelegt. Es muss auch nach Auflösen von Symlinks unter einer erlaubten Modellwurzel liegen. Ziel oder vorhandener Elternordner müssen für PUID/PGID schreibbar und durchsuchbar sein. Bei fehlenden Rechten erscheint ein Hinweis statt der Upload-Fläche.
KATALOG_UPLOAD_MAX_MB ist standardmäßig 2048 MiB pro Datei und muss eine positive ganze Zahl sein. Aktiviere Änderungen in .env und Compose. Der interne nginx begrenzt auf 4 GiB; verwende deshalb höchstens 4096. Zusätzlich muss mehr als Dateigröße plus 256 MiB frei sein. Nach 60 Sekunden ohne übertragene Körperdaten bricht der Dienst den Upload ab. Nach einem Dienstabsturz werden temporäre Reste beim nächsten Start entfernt, wenn sie älter als eine Stunde sind.
Ein vorgeschalteter Reverse Proxy benötigt ein passendes Größenlimit und Streaming. Bei Fehler 413 prüfe seine Konfiguration. Die Docker-README nennt für Nginx Proxy Manager unter „Advanced“:
client_max_body_size 4g;proxy_request_buffering off;Passe auch die Proxy-Zeitlimits an die Übertragungsdauer an; intern sind 3600 Sekunden eingestellt.
Ablauf: Datei herunterladen oder im Slicer öffnen
Abschnitt betitelt „Ablauf: Datei herunterladen oder im Slicer öffnen“- Suche das Modell auf
/katalog/. - „Herunterladen“ speichert die Datei auf dem Gerät, auf dem dein Browser läuft.
- Öffne alternativ „In Slicer öffnen“ und wähle deinen lokal installierten Slicer. Die Server-Adresse muss von diesem Gerät erreichbar sein. Unter Linux muss das URL-Schema des Slicers registriert sein.

| Slicer | Dateitypen über den Link |
|---|---|
| OrcaSlicer, Creality Print, ElegooSlicer, SuperSlicer | 3MF, STL, OBJ, STP, STEP |
| Bambu Studio | Nur 3MF; auf macOS wird der Link mit JavaScript angepasst. |
| Cura, Lychee | 3MF, STL, OBJ |
| PrusaSlicer | Datei herunterladen und im Slicer öffnen. |
Slicer-Links sind signiert und gelten eine Stunde. Sie erlauben in dieser Zeit den Download ohne Anmeldung. Behandle sie wie Zugangsdaten und gib sie nicht öffentlich weiter. Bei abgelaufenen Links lade die Seite neu. Selbstsignierte HTTPS-Zertifikate auf Port 3001 werden von Slicern häufig abgelehnt; verwende im Heimnetz HTTP auf Port 3000 oder einen Reverse Proxy mit gültigem Zertifikat.
Nur nicht gelöschte Katalogdateien unter erlaubten Modellwurzeln werden ausgeliefert. Standardmäßig sind das /models und /models mit angehängten Ziffern. Pfade mit .. und Symlinks nach außerhalb sind gesperrt. Nicht erreichbare oder nicht erlaubte Dateien bleiben ohne Download-Schaltflächen sichtbar. Einen ZIP-Sammeldownload gibt es nicht.
Von den Modelldetails aus
Abschnitt betitelt „Von den Modelldetails aus“„Im Browser öffnen“ zeigt in der App den Dialog „Download und Slicer im Browser“. Übertrage den Link in einen neuen Tab deines eigenen Browsers. Die Container-App öffnet diesen Tab nicht selbst. Nach dem ersten Besuch der Begleitseite kennt die App die Browser-Adresse; weitere Besuche aktualisieren sie. Ohne bekannte Adresse zeigt sie den anzuhängenden Pfad.
Für eine feste Adresse setze KATALOG_PUBLIC_URL in .env und aktiviere die Variable in Compose, beispielsweise https://katalog.example.de mit deiner tatsächlichen Domain. Erlaubt sind http:// oder https://, ein Host und optional ein Port; kein Pfad, Query, Fragment oder abschließender Slash. Die feste Adresse hat Vorrang. Ungültige Werte werden mit einem Log-Hinweis ignoriert.
Aus der Liste entfernen und wieder anzeigen
Abschnitt betitelt „Aus der Liste entfernen und wieder anzeigen“- Wähle „Aus Liste entfernen“ und bestätige mit „Entfernen“.
- Die Datei bleibt im Katalog und auf dem Speicher. Nur die Begleitseite blendet sie aus. Ihre Download- und Slicer-Links liefern dann
404, auch zuvor ausgestellte Links. - Wähle unmittelbar danach „Rückgängig“ oder öffne „Ausgeblendete anzeigen (N)“ und nutze „Wieder anzeigen“.
Nsteht für die angezeigte Anzahl.
Diese Liste wird unter /config/.katalog-web-hidden.json gespeichert. Sie ist kein Papierkorb und löscht keine Modelle.
Ablauf: Katalog auf einem anderen Gerät ansehen
Abschnitt betitelt „Ablauf: Katalog auf einem anderen Gerät ansehen“- Stelle sicher, dass die LAN-Adresse freigegeben ist.
- Öffne auf dem anderen PC, Handy oder Tablet dieselbe Server-Adresse mit
/katalog/und melde dich an. - Suche das gewünschte Modell und lade es bei Bedarf herunter. Zur vollständigen Katalogbearbeitung öffnest du die Server-Adresse ohne
/katalog/für den gemeinsamen Desktop.
Weitere Container-Variablen
Abschnitt betitelt „Weitere Container-Variablen“Diese Einstellungen ergänzt du bei Bedarf unter environment: in Compose:
| Variable | Wirkung |
|---|---|
CATALOG_DB |
Fester Datenbankpfad. Sonst wird die nach Änderungszeit neueste /config/.local/share/*/catalog.db gewählt. |
KATALOG_ALLOWED_ROOTS |
Ersetzt die erlaubten Modellwurzeln durch eine mit : getrennte Liste absoluter Containerpfade. |
KATALOG_WEB_PORT |
Interner Dienstport, Vorgabe 8099; der Start passt den nginx-Proxy an. Nicht am Host veröffentlichen. |