Keep track of your inventory of 3D-printer filament spools.
Spoolman is a web service that helps you keep track of your filament spools and how they are being used.
It acts as a database, where other printer software such as Octoprint and Moonraker can interact with to have a centralized place for spool information. For example, if used together with Moonraker, your spool weight will automatically be reduced as your print is progressing.
It exposes a HTTP API which services can interact with. See the OpenAPI description for more information.
Spoolman includes a web-client that lets you directly manipulate all the data. It also has a few additional nice features such as label printing.
The web client is translated by the community using Weblate.
Spoolman doesn't depend on any specific printer software, but to make the most out of it, you should use it together with a frontend that supports it. It is currently only supported in the Klipper ecosystem, with official support for the major frontends. Support for other ecosystems like Octoprint is ongoing.
- ✔️ Moonraker - See the Moonraker Documentation
- ✔️ Fluidd
- ✔️ KlipperScreen
- ✔️ Mainsail
- ✔️ Octoprint: OctoPrint-Spoolman
- ✔️ Home Assistant integration: spoolman-homeassistant
Spoolman can interact with any of the following databases: SQLite, PostgreSQL, MySQL, MariaDB, CockroachDB. By default, SQLite is used which is a simple no-install database solution that saves to a single .db file located in the server's user directory.
Spoolman can be installed in two ways, either standalone on your machine or using Docker. If you already have Docker installed, it's recommended to use that.
This installation guide assumes you are using a Debian-based Linux distribution such as Ubuntu or Raspberry Pi OS. If you are using another distribution, please look inside the bash scripts to see what commands are being run and adapt them to your distribution.
Copy-paste the entire below command and run it on your machine to install Spoolman.
sudo apt-get update && \
sudo apt-get install -y curl jq && \
mkdir -p ./Spoolman && \
source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/latest | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url') && \
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
cd ./Spoolman && \
bash ./scripts/install.sh