Sign inSign up

jcrcomputers/spoolmonitor

By jcrcomputers

•Updated 10 days ago

Filament spool manager with Bambu Lab AMS sync over the Bambu cloud. 2.0.2

Image
Integration & delivery
Internet of things
Content management system
0

3.5K

jcrcomputers/spoolmonitor repository overview

⁠SpoolMonitor

Filament spool management for 3D printers: track spools across locations, get low-stock alerts, and sync Bambu Lab AMS slots from your printers through the Bambu cloud (no developer mode needed).

⁠Quick start

docker run -d \
  --name spoolmonitor \
  -p 7997:7996 \
  -v ./data:/app/data \
  -e TZ=Australia/Sydney \
  --restart unless-stopped \
  jcrcomputers/spoolmonitor:2.0.2

Open http://localhost:7997⁠, create the first admin (add -e SETUP_TOKEN=<long-random-string> to require a token on a fresh database). The API is at http://localhost:7997/api⁠ (Swagger at /api/docs with ENABLE_API_DOCS=true).

⁠Docker Compose

services:
  spoolmonitor:
    image: jcrcomputers/spoolmonitor:2.0.2
    container_name: spoolmonitor
    restart: unless-stopped
    ports:
      - "7997:7996"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Australia/Sydney
      # All optional, see Configuration:
      # - SETUP_TOKEN=<long-random-string>
      # - PUID=1026   # only if logs show a permission error on /app/data
      # - PGID=100

The image is linux/amd64. No .env file is needed.

⁠Features

  • AMS sync with preview and undo, remembered slot choices, RFID tray UUID re-sync
  • Printers page: live AMS strip, grid or list, group by location, Sync all
  • Works via your Bambu cloud account, no developer mode
  • Dashboard Needs attention panel, Spools filters, Locations with Compare
  • Filaments catalogue with live Bambu store prices (incl. PETG Matte, Basic, CF)
  • Alerts (in-app or email), backup and restore, change password
  • admin / viewer roles, API keys (X-API-Key), audit log

⁠Configuration

VariableDefaultNotes
TZAustralia/SydneyTimezone
SETUP_TOKENemptyOptional. Only matters for a fresh empty database: the setup wizard requires it when set
ENABLE_API_DOCSfalseSwagger UI at /api/docs
CORS_ORIGINShttp://localhost:7997Optional. Only for browser apps on another origin (UI and API are same-origin)
PUID, PGIDunsetOptional. Only if logs show a permission error on /app/data (e.g. Synology)
JWT_SECRETgenerated in /app/dataChanging it logs everyone out
API_KEYSemptyBootstrap API keys, comma-separated
SMTP_SERVER, SMTP_PORT, SMTP_USER, SMTP_PASSWORDemptyEmail alerts
LOG_LEVELINFOLogs go to container stdout

Port: 7996 in the container (UI and /api). Volume: /app/data (database, secrets, API keys). The container runs as uid 1000 and health-checks GET /healthz.

⁠Synology / NAS

Create a data folder (e.g. /volume1/docker/spoolmonitor/data), then in Container Manager create a Project from the compose file above with that absolute path as the volume. Only if the logs show a permission error on /app/data, run id <user> over SSH and set PUID and PGID (e.g. 1026 and 100).

⁠Upgrading from 1.x

Back up ./data, change the image to jcrcomputers/spoolmonitor:2.0.2 (or latest), remove any 7995 port mapping, then docker compose pull && docker compose up -d. Migrations are automatic, API keys keep working, and every user logs in again once. Change integrations from :7995 to :7997/api (7995 is no longer published).

⁠Changelog

⁠2.0.2 (2026-10-28)
  • Needs attention skips low spools that have a spare at the same location, and adds Dismiss and Mute
  • Sync on a printer with no location asks for one, then carries on with the sync
  • AMS humidity uses the measured percentage from newer firmware
  • Fixed "Error completing AMS sync" when two slots hold the same filament and colour
  • The Bambu login window no longer closes when you click outside it
⁠2.0.1 (2026-10-12)

New Spool S logo (header, login, favicon, phone home-screen icon), catalogue photo for colours whose photo is also the product hero (e.g. PETG Matte Black), and docs clarifications (.env is optional, simpler 1.x upgrade steps).

⁠2.0.0 (2026-10-03)

Security and platform release: re-login required (PyJWT, rotated key), API only under /api on port 7997, write-only printer tokens, automatic Alembic migrations, SETUP_TOKEN, login rate limiting, non-root container. Also: AMS sync preview/undo with remembered choices and RFID re-sync, Printers page overhaul, Needs attention panel, Spools filters, backup/restore, API key roles.

⁠1.4.0 (2026-07-07)

Location comparison, PLA Pure colours, AU store moved to the new storefront API, AMS sync fixes, larger DB pool.

Older entries: see CHANGELOG.md in the repository.

Tag summary

Content type

Image

Digest

sha256:a7fc6aa7f…

Size

163.2 MB

Last updated

10 days ago

docker pull jcrcomputers/spoolmonitor