Spoolman is an incredible piece of software written by Donkie on GitHub. With Spoolman, you have a full 3D printing filament inventory control panel, one centralized place to track your rolls of 3D printing filament. Spoolman has plugins for OctoPrint, Klipper, and Moonraker, which allows the usage and tracking of your filaments to be 100% automated.
In this post, we will cover what Spoolman is, how to set it up, and how to use it. As an added bonus, we will cover getting free and unlimited secure remote access to Spoolman from anywhere using OctoEverywhere.com.
What Is Spoolman?
Spoolman is a web server that runs locally, like OctoPrint or Moonraker. From the Spoolman web page, you can add, track, and control details about your entire inventory of 3D printing filament. You can add details about your filament rolls, including color, manufacture, material type, remaining weight, spool location, and more.
Spoolman integrates with OctoPrint, Moonraker, Mainsail, Fluidd, KlipperScreen, and Home Assistant to let you monitor and control your filaments. This allows you to select which filament is being used directly in your 3D printing control software, and the total amount of filament used will automatically be reported to Spoolman!
How To Setup Spoolman
Spoolman can be set up on any device on your home network. We recommend and will cover how to set up Spoolman using Docker, but you can also install It as a standalone Python service.
Spoolman can be installed on any Windows, Mac, Linux, or Raspberry Pi device using Docker. Docker is easy to install as a container manager, which allows Spoolman to run in an isolated environment, making it easy to manage and clean up.
Step 1 – Install Docker
The first step in installing Spoolman is to install Docker. You can find a full Windows, Mac, Linux, or Raspberry Pi setup guide on the docker website.
Step 2 – Create Folders For Your Spoolman Data
The Spoolmand Docker container needs a location on your computer to store files. The Spoolman folder can be anywhere on your computer.
We recommend you make a root folder called spoolman and then create a folder named data in the spoolman folder. Make sure you know the full file path to your spoolman folder; you will need it in the next step.
Step 3 – Setup The Docker Compose File
Spoolman uses docker compose, an easy way to describe and run docker containers. To start, create a file called docker-compose.yml in the spoolman folder you created in the last step. Open the docket-compose.yml file and paste the following text.
version: '3.8'
services:
spoolman:
image: ghcr.io/donkie/spoolman:latest
restart: unless-stopped
volumes:
- type: bind
source: ./data # This is where the data will be stored locally.
target: /home/app/.local/share/spoolman # Do NOT change this line
ports:
# Map the host machine's port 7912 to the container's port 8000
- "7912:8000"
environment:
- TZ=America/Los_Angeles # Optional, defaults to UTC
The info above defines where docker will get the Spoolman container and options for running the container. We are using volumes to map the data folder in the container to your data folder in this spoolman folder. We are using ports to map the Spoolman default port of 8000 to your machine’s port of 7912
Step 4 – Start The Docker Container
To start the docker container, simply open a command prompt or terminal, navigate to the spoolman folder you created above, and run the following command.
docker compose up -d
If you’re using Linux or a Mac, you will need to add sudo before the command, to run it as an admin. docker compose up tells docker that you want to start the Spooman docker container using the docker-compose.yml file you just created. The -d option tells Docker to return from the command when the container is started and to let the container run independently in the background.
Your Spoolman web server is now up and running! 🎉
You can access Spoolman using the port 7912 on your local computer:
http://127.0.0.1:7912
To access Spoolman from any other device on your network, use the replace 127.0.0.1 with the device’s IP address.
http://<spoolman server ip>:7912
Setup The Spoolman Plugins
- Spoolman For OctoPrint – If you’re using OctoPrint, install the Spoolman for OctoPrint plugin from the OctoPrint plugin manager. Once the plugin is installed and you restart OctoPrint, find Spoolman in the OctoPrint settings to set your Spoolman server’s IP and port.
- Spoolman For Moonraker & Klilpper – If you’re using Klipper on your printer, you must enable the Spoolman integration built into Moonraker. See this page for details on how to set up the Moonraker integration.
- Spoolman For Home Assistant – To access your fimant inventory in Home Assistant, use the spoolman-homeassistant addon.
Setup Remote Access To Spoolman
OctoEverywhere provides secure, free, and unlimited remote access to OctoPrint, Klipper, Bambu Lab 3D printers, and Spoolman! OctoEveywhere is a maker community project that aims to empower the worldwide community with free 3D printing tools.
To set up remote access to Spoolman in OctoEveryhere, simply set up the OctoEverywhere plugin on one of your 3D printers and then follow this quick Spoolman setup. You simply need to provide OctoEverywhere the URL you use to access Spoolman, and it will do everything else!
Join The Spoolman Community
The Spoolman community hangs out in the Mainsail Discord server, in the #spoolman channel. The OctoEverywhere community also has a #spoolman channel, where you’re welcome to hang out and ask questions.