Guides
Setup and workflow walkthroughs for a self-hosted print library: getting files in and organized, connecting printers, indexing a NAS folder in place, putting TLS in front of the app, and taking backups that restore. Each guide names its prerequisites and the limits that matter before you start.
GUIDES
56 entriesClean a downloaded STL pack on ingest
What actually cleans a downloaded pack: content-hash dedup on ingest during ZIP import, not mesh repair or a manual duplicate sweep.
Makerspace print library: roles, logins, audit
PrintStash handles makerspace access control: per-member logins, collection roles, per-printer permissions, optional OIDC, audit trail with secrets redacted.
Manage files across multiple Klipper machines
Per-machine file management works up to about two printers, then becomes the small-farm bottleneck. Where the line sits, and what a fleet-queue library changes.
Sync a printer's SD card with a central library
Two-way SD sync only exists on Klipper, where the card is a server folder. Elsewhere pick a direction of truth: push from the library or pull recorded history.
Back up Docker volumes for a 3D print library
Which volume holds the database, model files, and encryption key, why the built-in archive beats copying a live volume, and what a snapshot cannot restore.
Send prints to an Elegoo Centauri Carbon
PrintStash v0.11.3 added G-code upload for the Centauri Carbon and Carbon 2. How SDCP and MQTT differ, what setup needs, and how thin the hardware evidence is.
Can you manage a 3D printer farm from a phone?
PrintStash runs on a phone as a PWA: the farm at home or away, over WireGuard, Tailscale, alerts via ntfy or Telegram. Offline means the shell, not the library.
Manage multiple 3D printers from one dashboard
What a self-hosted multi-printer dashboard shows: live state for every machine of any brand, aggregate stats over prints, and where the numbers stop comparing.
Put a self-hosted 3D print library behind SSO
PrintStash supports OpenID Connect, so members sign in with the identity provider you run. What group mapping does and does not control, and what stays manual.
Filament, cost, and which revision worked
Where a print record should live, which numbers are measured and which estimated, and how to read filament use and cost per model, revision, and printer.
Easiest 3D printing tools for Docker Compose
Which 3D printing tools install in one Compose command, by services and values to edit first, plus what you do by hand. Includes the minimal PrintStash install.
Self-host a private Thingiverse-style library
How much of a public model site you can reproduce: previews, search, tags, and collections, but no catalogue, comments, or galleries, plus the sharing story.
Repair non-manifold STL errors before print
What holes, normals, self-intersections, and non-manifold edges do to a slice, which tools report and which fix them, and two common repair tools unsupported.
Organize STL files by fixing how they arrive
Model libraries decay one file at a time, not all at once. The four ways files enter, what to do at each, and why intake beats another folder reorganization.
Managing the STL library after the first scan
What changes once a library is indexed: scan cost, taxonomy rot, browsing performance at scale, and the backup boundary that catches people out.
Organize your STL library, keep it simple
Four ways to keep a model collection in order, from a folder tree to a library wired to the printers, and which one your collection has outgrown.
Should you store print settings in 3MF or STL?
STL cannot hold settings, so the question is when a 3MF project earns its keep, which format keeps the geometry, and where a library reads settings instead.
Automatically tag and organize 3D model library
Slicer metadata, printer profiles, and content hashes arrive untagged. What a model is for never does, so keep a short tag list and automate the rest.
Managing a mixed Klipper and OctoPrint fleet
One library for machines that speak different protocols: what each provider lacks, how to keep 0.4 and 0.6 slices straight, and why cost data differs.
Auto-upload OrcaSlicer G-code to your library
Set up OrcaSlicer's post-processing hook so every export lands in a self-hosted library, and what it does not do: file the slice as a revision.
Print over LAN without vendor cloud services
Which printers keep working with the vendor cloud off, how to set up a fully local slice-to-print workflow, and what you give up by leaving the cloud behind.
Sync a printer's files with a central library
Printer file sync indexes and correlates the machine's G-code against your library instead of copying files back, and tells you when it guesses.
Version-control slicer profiles across printers
Put your slicer's preset files in Git, keep them in sync, and use the settings baked into each G-code file to prove which profile produced a good print.
What to look for in a self-hosted 3D manager
Nine criteria that separate a model library you keep from one you abandon, each with a test you can run on a trial instance, plus the things people overweight.
Send G-code to multiple printers from one app
How a self-hosted fleet queue routes G-code across printers: what one queued job means, how least-busy routing works, and which providers can receive files.
Find duplicate 3D models by content, not name
'By content' means two things: byte-identical hashes (dedupe tools) or geometric similarity (CAD part search). Which you need, and what PrintStash does.
Connecting OctoPrint to PrintStash
Set up the beta OctoPrint provider with an app key: live status, upload and start, remote file inventory, and job control beside your existing instance.
Connecting a Prusa printer to PrintStash through PrusaLink
Set up the beta PrusaLink provider for local status, upload and start, remote file inventory, and job control, without Prusa Connect cloud.
How PrintStash fits alongside OctoPrint, Fluidd and Mainsail
Keep OctoPrint, Fluidd, or Mainsail for printer control. Add PrintStash when you need a searchable library, G-code revisions, and print history.
How to use PrintStash's API for automation
Use PrintStash's REST API from scripts: authenticate with an API key, upload models or G-code, trigger a library scan, and inspect the live API contract.
How to automate PrintStash backups to S3
Create full PrintStash backups, mirror them to an S3-compatible bucket, and schedule the API call with credentials you can revoke.
Set up a makerspace 3D printing library with PrintStash
Set up a shared PrintStash library with individual accounts, collection roles, slicer API keys, expiring links, and a recoverable deletion policy.
Migrate from folders to PrintStash without breaking anything
Index an existing model folder or NAS share in place, review the result, and move to PrintStash without changing the paths other tools already use.
How to connect PrintStash to multiple Klipper printers
Connect several Moonraker/Klipper printers, check their individual capabilities and file inventories, and send a known G-code revision to the right machine.
How to organize thousands of STL files
Index a large STL library without moving it, then use collections, tags, content hashes, and parsed metadata to make the useful models findable.
Organize STL, 3MF, and G-code files
A practical folder and metadata system for source models, slicer projects, and G-code, with or without a dedicated self-hosted library.
How to build a print farm workflow with PrintStash
Use PrintStash as the file and print record for a small farm, with known G-code revisions, provider-aware sending, measured or estimated costs, and alerts.
A private Printables alternative with Docker
Run a private 3D model library with Docker, index files from local or NAS storage, and keep search, previews, and print records on your own server.
Run PrintStash on a Raspberry Pi or ARM NAS
Install on linux/arm64, size for mesh previews, and choose full or lite API images. STEP previews reached ARM in v0.12.0, with limits that bite harder on a Pi.
Put PrintStash behind a reverse proxy with TLS
Use the production Compose file with Caddy, Traefik, or nginx, keep the API off the host network, and preserve uploads and WebSocket status updates.
Share a 3D model with an expiring link
Create a read-only link for one PrintStash model, choose its lifetime and visible revisions, and enable file downloads only when needed.
G-code revisions in a 3D printing workflow
Track which slice printed well: naming conventions, Git, controller stats, or a library that models revisions, plus a worked setup and wasted-filament mistakes.
Getting started with PrintStash
Install PrintStash with Docker Compose, set the required secret, create the first admin account, add a model, and connect a local printer.
SQLite or Postgres, local disk or S3?
Choose a PrintStash database and file backend based on the failure modes you can operate, starting with the default SQLite and local-disk stack.
Monitoring PrintStash with Prometheus and Grafana
Scrape PrintStash request latency, ingestion results, and printer status with Prometheus, then use the health endpoint for direct readiness checks.
Connecting a Klipper printer to PrintStash through Moonraker
Connect PrintStash to Moonraker for live status, remote files, upload and start, printer controls, measured filament use, and print history.
Share a model without moving it to the cloud
Use a narrow, expiring PrintStash link for model review while keeping the rest of a self-hosted library private.
Track filament use with Spoolman and PrintStash
Connect Spoolman, import filament presets, select a spool for each job, and write measured Moonraker consumption back without counting it twice.
Collections and tags to find the right model
Use one nested collection tree for browsing, tags for repeated properties, and attached documentation for the notes a model grid cannot carry.
When a print finishes: notifications in PrintStash
Configure PrintStash alerts for completed, failed, or cancelled prints and offline printers through Discord, Telegram, ntfy, or a signed webhook.
Keep STEP files beside the printable mesh
Store STEP and STP sources with STL, 3MF, and G-code files, preview CAD geometry in the browser, and keep the original download intact.
Import from Printables, MakerWorld, Thingiverse
Import supported Printables, MakerWorld, and Thingiverse pages, handle MakerWorld authentication, and preserve folders without storing duplicates.
Running PrintStash on Unraid
Install the PrintStash API and frontend templates on Unraid, put them on the required custom Docker network, and map persistent and library storage safely.
Mirror your NAS folder into PrintStash without moving files
Index a local or NAS folder where it already lives, mirror its directory tree as collections, and keep scans safe when the network mount disappears.
G-code revisions and known-good verdicts
Keep each G-code revision with its source model, record why it exists, and separate a successful known-good slice from the one you recommend next.
Backups that actually restore
Create the archive in the app, mirror it off the host, and restore it to a scratch stack. What a backup owns, what it leaves to your NAS, and how recovery runs.