SpoolSync is an advanced, user-friendly filament management platform for 3D printing enthusiasts and print farms. It provides real-time tracking, inventory management, and seamless integration with printers and hardware, all in a self-hosted, privacy-first package.
-
Live Weight Tracking:
- ESP32-based load cells report spool weights in real time over Wi-Fi.
- Instantly see filament usage as your printer runs.
-
NFC Tag Scanning & Filament Inventory:
- Tap a spool with your phone to view details or start the ingest flow.
- Supports OpenPrintTag, Bambu, and serial tags.
-
Printer Integration:
- Polls PrusaLink and PrusaConnect [Work In Progress] for live print job status.
- Automatically deducts filament when a job completes.
-
Storage Locations:
- Organize spools into drying chambers, long-term storage, or open shelves.
- Always know where every spool is stored.
-
Smart Inventory Alerts & Ordering:
- Set reorder thresholds per filament type.
- Track orders from placement through delivery.
-
Weigh & Ingest Flow:
- Quickly weigh a spool on any connected scale and ingest it into your library.
- Full NFC + scale workflow in a single step.
-
ESP32 Device Management:
- Provision and monitor all your ESP32 spool holder devices from one place.
- View per-device calibration and connectivity status.
-
Settings & OIDC SSO:
- Configure OIDC single sign-on (Authentik, Keycloak, Google Workspace, etc.).
- All admin settings are managed through the UI — no env-var fiddling required.
-
Self-Hosted & Private:
- Deploy with Docker Compose in under five minutes.
- No subscriptions, no cloud lock-in, no telemetry.
- Backend: Node.js (Express), Prisma ORM, Socket.IO for real-time updates
- Frontend: Vue.js (Vuetify UI)
- Firmware: ESP32 (C++/Arduino) for load cell and NFC-enabled spool holders
- Integrations: Modular JSON-based printer integrations (e.g., PrusaConnect)
-
Pull the latest images and start:
docker compose up -d
-
Or build from source:
git clone https://github.com/Spool-Sync/SpoolSync-App.git cd SpoolSync-App cp .env.example .env # edit as needed docker compose up --build -d
-
Access the web UI:
- Visit
http://localhost(or your configured port)
- Visit
backend/— Node.js API, integrations, databasefrontend/— Vue.js SPAfirmware/— ESP32 firmware for spool holder hardware
- API: See
backend/prisma/schema.prismaand backend source - Integrations: See
backend/integrations/printers/for JSON config examples
This project is licensed under the GPL-3.0 License.
Pull requests and issues are welcome! Open an issue to get started.
- Inspired by Spoolman and the Open Print Tag project









