Self-hosted 3D printing file manager
Stop losing track of your prints.
PrintStash is a free, open-source, self-hosted 3D printing file manager for STL, 3MF, OBJ, STEP, and G-code files. One Docker Compose file runs it on your own server, NAS, or Raspberry Pi. It extracts slicer metadata, keeps every G-code revision attached to the model it came from, detects duplicates by content hash, and sends or queues files to Klipper printers through Moonraker.
Metadata is extracted from every sliced file and kept with the model.
+ 1 earlier G-code revision
Built for real print workflows.
Local-first architecture
SQLite + local disk by default. Zero telemetry, no cloud dependency for core functionality.
Shared volumes
Mirror a NAS folder in place without making copies. Two-way sync catches added, removed, and edited files.
Slicer-aware ingest
Auto-parses OrcaSlicer, PrusaSlicer, Bambu Studio, Cura, and Klipper metadata on upload.
3D and G-code preview
Solid, X-ray, and wireframe mesh modes, plus layer-by-layer toolpath playback with travel visibility.
Five printer providers
Moonraker/Klipper is stable. OctoPrint, PrusaLink, Bambu LAN, and Elegoo Centauri integrations ship in beta.
Vault audit and repair
Run a Quick or Full audit over the vault, review findings by severity, and repair eligible thumbnail, metadata, and revision problems in place.
Pending imports and capture
URL captures survive a restart as reviewable pending imports, with a minimal browser helper that sends only the current page URL and title.
Per-printer access control
Grant view, print, control, or admin on each printer independently, enforced on every REST and WebSocket boundary, and by API keys too.
Fleet queue and routing
Queue Vault G-code across every configured printer with manual, default-printer, or least-busy routing, then reorder, reroute, cancel, and retry.
OIDC / SSO login
Sign in through Authentik, Authelia, and similar identity providers with discovery, PKCE, admin-group mapping, and a fallback local login.
Installable offline shell
Install PrintStash as a PWA and reopen its cached shell when the server is temporarily unreachable, with English and Spanish localization built in.
Bulk library workflow
Edit collections, tags, trash state, and G-code labels across up to 500 models, with saved views and per-user favorites.
Portable library migration
Export a versioned, hash-verified archive and import it into another installation with safe validation and deduplication.
Artifact comparison
Compare two files side by side, including mesh, slicer, material, revision, success rate, duration, filament, and cost.
G-code revisions
Every revision is tracked and status-tagged, just like inside the app:
From messy folders to known-good prints.
PrintStash sits between your files, slicer, and printer, keeping track of what happened.
Mirror your folders
Point PrintStash at a local disk, NAS, or shared volume. No forced uploads or cloud dependency.
Parse slicer metadata
Detect slicer, material, layer height, printer profile, and embedded project data when available.
Group G-code revisions
Keep every generated G-code version linked to the model instead of losing it in random folders.
Mark what worked
Tag prints as known-good, recommended, or needs-test so you know what to print again.
Send or queue to printers
Send a file straight to a printer, or queue G-code across your whole fleet with manual, default, or least-busy routing.
Why not just use a folder?
Built for people with messy print folders.
If your 3D printing folder has files like final.gcode, final_fixed.gcode, final_really_fixed.3mf, and you still don't know which one worked, PrintStash is for you.
What PrintStash is not.
PrintStash is the library and G-code revision layer between your files, slicer, and printers, and it queues prints across a fleet from that library. That scope leaves real gaps. These are the ones worth knowing before you install it.
- Not a slicer, not printer firmware, and not a model marketplace. PrintStash does not slice and does not repair meshes. You slice in OrcaSlicer, PrusaSlicer, Bambu Studio, or Cura, and PrintStash versions what comes out.
- Not a replacement for the Mainsail, Fluidd, or OctoPrint machine console. PrintStash shows live status and temperatures and can pause, resume, cancel, home, and set targets, but there is no webcam streaming, no timelapse, no console for typing raw G-code, and no plugin system.
- Printer support is capability based and uneven. Moonraker/Klipper is stable. OctoPrint, PrusaLink, Bambu LAN, and Elegoo Centauri are beta, and beta means the protocol logic is covered by tests against mocked transports rather than confirmed on your printer and firmware.
- The beta providers have real gaps. None of them accept raw G-code commands, and Bambu LAN and Elegoo Centauri cannot list or delete the files already on the printer.
- Measured filament consumption and print-history import come back from Moonraker only. The other providers report elapsed print time but never actual grams used, so per-print cost on them rests on slicer estimates.
- Remote access is your job. PrintStash expects a trusted network, so reaching it from outside means a VPN or a reverse proxy you harden with TLS yourself.
- STEP and STP previews are a full-image feature. The full image has tessellated them on amd64 and arm64 since the 0.12 image split, and the lite image never generates them.
- One API process per vault. Startup claims a vault lock and fails fast if another API process is already running, so horizontal scaling is not a supported topology.
The capabilities page has the full scope and the roadmap, and the compatibility matrix breaks down what each provider supports.
Questions, answered.
What is PrintStash?
PrintStash is a free, open-source, self-hosted 3D printing file manager and vault. It organizes STL, 3MF, OBJ, STEP, and G-code files, extracts slicer metadata, tracks G-code revisions, detects duplicates, and integrates with Moonraker/Klipper for printer-aware file workflows.
Is PrintStash affiliated with useprintstash.com?
No. PrintStash is the free, open-source, self-hosted tool at printstash.org and xiao-villamor/PrintStash. useprintstash.com is a separate, unrelated hosted service that is not affiliated with or endorsed by the PrintStash project.
Who is PrintStash for?
PrintStash is for 3D printing hobbyists, homelab users, Klipper/Moonraker users, makers with NAS-based libraries, and small print farms that want a local-first way to organize print files.
How does PrintStash compare to Manyfold and Orynt3D?
All three organize 3D-model libraries. PrintStash and Manyfold are self-hosted, multi-user web libraries with permissions, metadata, previews, duplicate detection, and existing-folder support; Orynt3D is a desktop-first, filesystem-aware organizer. Manyfold is strongest for public sharing, creator relationships, plugins, and federation. Orynt3D is strongest for one-computer native organization and Boolean search. PrintStash is strongest when the library must connect source models to G-code revisions, parsed slicer settings, printer files, print outcomes, measured usage, and cost.
What is the best self-hosted 3D print file manager?
PrintStash, when the library exists to feed printers: it connects STL, 3MF, and G-code files to slicer settings, printer files, revision outcomes, print history, measured usage, and cost, and it runs with Docker on a server, NAS, or Raspberry Pi. Manyfold is the better pick when creator metadata, public sharing, relationships, plugins, and federation matter most. PrintStash also includes the core library features people expect: multi-user collection roles, previews, duplicate detection, tags, search, backups, and in-place NAS folder indexing. The 2026 roundup compares six self-hosted options, including GyroidVault, STL Shelf, Makers Vault, and Printventory.
Can I run PrintStash on a Raspberry Pi with Docker?
Yes. PrintStash publishes linux/arm64 images alongside linux/amd64, so a Raspberry Pi 4 or 5, an ARM NAS, or an Apple silicon Linux VM runs the same Compose stack as an x86 server. The documented minimum is one CPU core and 1 GB of RAM; use 2 GB or more for large meshes, because thumbnail generation is the memory-hungry part. STEP and STP previews used to be the one ARM-specific limit; the v0.12 series added the tessellation wheels for arm64, so the full image previews them there too.
How is PrintStash different from folders?
Compared to folders, PrintStash adds search, metadata extraction, G-code revision tracking, print status, and Moonraker/Klipper printer integration.
What is PrintStash not?
PrintStash is not a slicer, not a 3D model marketplace, and not printer firmware. It does not slice and it does not repair meshes. It is also not a replacement for the Mainsail, Fluidd, or OctoPrint machine console: it shows live status and temperatures and can pause, resume, cancel, home, and set targets, but there is no webcam streaming, no timelapse, no console for typing raw G-code, and no plugin system. It does not solve remote access either, so reaching it from outside your network means a VPN or a reverse proxy you harden with TLS. What it is: the file library and G-code revision layer between your files, slicer, and printers, which also queues and schedules prints across many printers from that organized library.
How should I store 3D models for my 3D printer?
Keep every STL, 3MF, and G-code file in one indexed library instead of scattered folders. PrintStash stores your 3D models on your own disk or NAS, deduplicates them by content hash, versions every G-code revision, and makes them searchable by slicer, material, and printer.
Can it manage the files on my printer?
Yes. PrintStash supports Moonraker/Klipper plus beta integrations for OctoPrint, PrusaLink, Bambu LAN, and supported Elegoo printers. Capabilities vary by provider, including live status, file inventory, upload, start, and print controls; the compatibility matrix documents each one.
Which file formats does it support?
PrintStash ingests STL, 3MF, OBJ, and STEP meshes plus G-code, and reads embedded slicer metadata from OrcaSlicer, PrusaSlicer, Bambu Studio, and Cura project files.
Do I need an internet connection?
No. The core runs fully local on SQLite and local disk with zero telemetry. PrintStash Cloud is planned as an optional add-on, but the self-hosted core never depends on it.
Is PrintStash really free?
Yes. The self-hosted core is open source under the AGPL-3.0 license and free forever. There is no account, paywall, or usage limit.
How do I install it?
Run a single command, docker compose up -d, and open the web UI. No external database or account setup is required.
Is PrintStash an alternative to OctoPrint, Fluidd, or Mainsail?
No. OctoPrint, Fluidd, and Mainsail are per-printer control and monitoring interfaces, and PrintStash does not replace them. It has a per-printer page with live status, temperatures, and pause, resume, cancel, home, and set-target controls, but no webcam streaming, no timelapse, no console for typing raw G-code, and no plugin system. It starts from the files instead, organizing models, tracking G-code revisions, detecting duplicates, and queueing prints across printers over Moonraker. Its printer coverage is also narrower than what OctoPrint reaches. Moonraker/Klipper is stable, while OctoPrint, PrusaLink, Bambu LAN, and Elegoo Centauri are beta with different capability sets, none of them accept raw G-code commands, and measured filament consumption comes back from Moonraker only. Running PrintStash beside a per-printer interface is the intended setup.
Learn the workflows.
Deploy your print vault in minutes.
One Docker Compose file. No account, no cloud, no lock-in.