
Spoolman
Self-hosted web application to track and manage 3D-printing filament spools with a REST API, WebSocket updates, label/QR printing and integrations for common printer frontends.

Spoolman is a web service for tracking and managing physical 3D-printer filament spools. It provides a central database for filaments, vendors and individual spools, offers a web client for manual management and exposes a REST API and WebSocket updates for integrations and automation.
Key Features
- Filament and spool inventory: store manufacturers, filament types, spool metadata and custom fields for precise tracking.
- REST API: a documented HTTP API to read and modify application data for automation or third-party integrations.
- Real-time updates: WebSocket notifications and live spool-weight updates during prints for immediate feedback.
- Integrations: designed to integrate with popular 3D printing frontends and ecosystems for automatic weight tracking and multi-printer support.
- Label and QR generation: print labels with QR codes for easy spool identification and scanning workflows.
- Multi-database support: works with SQLite, PostgreSQL, MySQL (and compatible engines) for flexible deployment options.
- Monitoring support: integrates with Prometheus to export metrics for historical analysis and alerting.
Use Cases
- Centralized filament inventory for makerspaces or multi-printer setups to prevent runouts and track stock.
- Automated workflows where printer frontends update spool weights in real time and other systems consume that data via the REST API.
- Production or hobbyist monitoring where Prometheus collects usage metrics for capacity planning and reporting.
Limitations and Considerations
- Ecosystem coverage: first-class support is centered on the Klipper/Moonraker ecosystem; support for other ecosystems (for example OctoPrint) may be incomplete or rely on third-party plugins.
- HTTPS requirement for some browser features: browser security constraints (e.g., QR code behaviors) require serving the web client over HTTPS; a reverse proxy may be needed to enable secure access.
- Runtime requirements: the backend targets modern Python tooling and the frontend expects Node.js 20+ for development; deployment workflows use Docker for convenience.
Spoolman is intended as a focused tool for filament inventory and usage tracking. It combines a programmable API, live updates and monitoring hooks to fit into automated 3D-printing workflows while providing a user-facing web client for administration and label printing.