Filament spool manager with Bambu Lab AMS sync over the Bambu cloud. 2.0.2
3.5K
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).
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).
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.
admin / viewer roles, API keys (X-API-Key), audit log| Variable | Default | Notes |
|---|---|---|
TZ | Australia/Sydney | Timezone |
SETUP_TOKEN | empty | Optional. Only matters for a fresh empty database: the setup wizard requires it when set |
ENABLE_API_DOCS | false | Swagger UI at /api/docs |
CORS_ORIGINS | http://localhost:7997 | Optional. Only for browser apps on another origin (UI and API are same-origin) |
PUID, PGID | unset | Optional. Only if logs show a permission error on /app/data (e.g. Synology) |
JWT_SECRET | generated in /app/data | Changing it logs everyone out |
API_KEYS | empty | Bootstrap API keys, comma-separated |
SMTP_SERVER, SMTP_PORT, SMTP_USER, SMTP_PASSWORD | empty | Email alerts |
LOG_LEVEL | INFO | Logs 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.
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).
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).
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).
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.
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.
Content type
Image
Digest
sha256:a7fc6aa7f…
Size
163.2 MB
Last updated
10 days ago
docker pull jcrcomputers/spoolmonitor