v0.12.1 · AGPL-3.0 · SELF-HOSTED

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.

$ docker compose up -d
AGPL-3.0 · Local-first · No cloud required
MODEL DETAIL SKADIS_KITCHEN-ROLL
INTERACTIVE DEMO

G-CODE REVISIONS 3
WORKS WITH ORCASLICERPRUSASLICERBAMBU STUDIOCURAKLIPPERMOONRAKER
PRINTSTASH CLOUD · WAITLIST OPEN

Cloud backup and remote access.

PrintStash Cloud is a planned optional add-on for off-site backups and remote access. The self-hosted app will remain complete on its own, and your vault will stay under your control.

WHAT STAYS THE SAME
Self-hosted core, no account required
Your vault stays under your control
WHAT CLOUD WOULD ADD
+Off-site backups
+Remote access
SYSTEM CAPABILITIES

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:

PRINTED OK RECOMMENDED NEEDS TEST
HOW IT WORKS

From messy folders to known-good prints.

PrintStash sits between your files, slicer, and printer, keeping track of what happened.

01

Mirror your folders

Point PrintStash at a local disk, NAS, or shared volume. No forced uploads or cloud dependency.

02

Parse slicer metadata

Detect slicer, material, layer height, printer profile, and embedded project data when available.

03

Group G-code revisions

Keep every generated G-code version linked to the model instead of losing it in random folders.

04

Mark what worked

Tag prints as known-good, recommended, or needs-test so you know what to print again.

05

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.

PRINTSTASH VS. A SIMPLE MODEL VAULT

Why not just use a folder?

PROBLEM
WITH FOLDERS
WITH PRINTSTASH
Which G-code did I actually print?
Guess from filenames like final_v3_fixed.gcode
Revision history with known-good status
Where did I save that STL?
Search through random directories
Indexed library with tags and metadata
What material and slicer settings did I use?
Open files manually and hope metadata exists
Slicer metadata parsed automatically when available
Can I send this to my printer?
Copy, upload, or re-slice manually
Send-to-print with Moonraker/Klipper
Which version should I print again?
Rely on memory
Known-good and recommended statuses
SOUND FAMILIAR?

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.

Keep your existing folder structure
Stop naming files as documentation
Find the version that actually printed well
SCOPE

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.

FREQUENTLY ASKED

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.

GUIDES

Learn the workflows.

Deploy your print vault in minutes.

One Docker Compose file. No account, no cloud, no lock-in.