Wer öfter druckt, kennt das Problem: Irgendwann stehen fünf angebrochene Filamentrollen im Regal, und keiner weiß mehr, wie viel davon noch drauf ist oder was die Rolle eigentlich gekostet hat. Spoolman ist ein kleines selbst gehostetes Tool genau dafür: Es verwaltet Filamentspulen inklusive Bestand, Verbrauch und Preis, mit einer simplen Web-Oberfläche.
Bei mir läuft der Drucker (ein Ender 3 V3 KE) aktuell zwar gar nicht, aber die Bestandsverwaltung richte ich mir trotzdem schon mal ein. Dann ist sie da, wenn er wieder ans Netz geht.
docker-compose.yaml #
Spoolman gibt es fertig als Container, ein einziger Service reicht:
services:
spoolman:
image: ghcr.io/donkie/spoolman:latest
container_name: spoolman
restart: unless-stopped
volumes:
- ./data:/home/app/.local/share/spoolman
ports:
- "7912:8000"
environment:
- TZ=Europe/BerlinDer Container lauscht intern auf Port 8000, nach außen mappe ich ihn auf 7912. Die Datenbank (standardmäßig SQLite) landet über den Bind-Mount im lokalen Ordner ./data, der auch nach einem Update oder Neustart des Containers erhalten bleibt.
Setup #
Wie bei den anderen Containern auch: Ordner anlegen, docker-compose.yaml reinlegen, data-Ordner anlegen, starten.
mkdir spoolman
cd spoolman
mkdir dataDie docker-compose.yaml von oben in den Ordner legen und dann:
docker compose up -dErreichbar ist die Oberfläche danach unter http://pi-three:7912 (bei mir läuft der Container auf einem Raspberry Pi namens pi-three, bei euch entsprechend Host und Port anpassen).
Ein Hinweis zur Absicherung #
Eine Authentifizierung bringt Spoolman von Haus aus nicht mit. Wer im Netzwerk auf Port 7912 kommt, kommt auch in die Oberfläche. Für mich reicht das, weil der Zugriff ohnehin auf mein internes Netz beschränkt ist. Wer den Container öffentlich erreichbar macht, sollte selbst einen Reverse Proxy mit Auth davorschalten.
Backup ist bei mir simpel gelöst: Der data-Ordner liegt in einem Verzeichnis, das ich sowieso per Syncthing sichere. Spoolman braucht also keine gesonderte Backup-Routine.