← Blog

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.

guidedockerself-hosting

Printables and Thingiverse are useful places to discover models. They are less useful as the permanent home for your own downloads, edits, private designs, and sliced files.

PrintStash covers that second job. It is an open-source web library that runs in Docker and keeps its database, model files, and metadata on storage you control. It is not a marketplace and does not try to replace one.

What you need

Use a machine with Docker and Docker Compose. An old desktop, a home server, a compatible NAS, or a Raspberry Pi 4 or 5 will work. PrintStash supports linux/amd64 and linux/arm64 images.

Allow about 1 GB of RAM at minimum. Two GB is more comfortable when the server has to preview large meshes. Storage use depends on whether you copy files into the managed vault or index an existing folder in place.

Install it

Terminal window
mkdir printstash && cd printstash
curl -O https://raw.githubusercontent.com/xiao-villamor/PrintStash/main/docker-compose.yml
docker compose up -d
docker compose logs api | grep "setup token"

Nothing needs editing before that first start, because every variable in the Compose file has a working default and the API generates its own signing secret on first boot. The only value you have to fetch is the first-run setup token, which the grep above pulls out of the API log.

Open http://localhost:3000, or replace localhost with the server’s address, then enter the token. The setup wizard creates the first admin account. There is no default username or password.

The default stays on SQLite and local disk. Postgres and S3-compatible storage are optional, and the installation guide covers them alongside production Compose and first-run checks.

Bring in an existing library

There are three practical ways to start:

  1. Mount a local or NAS folder into the API container and add it as a shared volume. PrintStash indexes the files in place and mirrors the folder structure.
  2. Upload individual files, folders, or ZIP archives into the managed vault.
  3. Paste a supported Printables, MakerWorld, or Thingiverse URL and choose which files to import.

Shared volumes are useful when another application still needs the original folder tree. PrintStash stores metadata and generated previews in its own data directory, but the indexed source bytes stay on the mounted volume. New files written through PrintStash can go back to that volume without overwriting an existing path.

See using a NAS with shared volumes before mounting a large archive.

What the private library adds

PrintStash groups source geometry and sliced output on a model record. STL, 3MF, OBJ, STEP/STP, G-code, and BGCODE files can be searched together instead of spread between a downloads folder, a slicer project folder, and a printer.

For common OrcaSlicer, PrusaSlicer, Bambu Studio, and Cura output, it reads settings such as material, nozzle size, layer height, temperatures, estimated duration, and filament use. Multiple G-code files can become named revisions of the same model, with notes and outcomes such as known good or failed.

The library also includes:

  • browser previews for meshes and G-code toolpaths;
  • collections, tags, metadata search, and content-hash duplicate detection;
  • multiple accounts and collection-level roles;
  • expiring read-only share links;
  • printer connections for Moonraker, PrusaLink, OctoPrint, Bambu LAN, and supported Elegoo printers.

Provider features differ. Check the printer compatibility matrix before assuming a particular printer supports uploads, remote inventory, or measured filament use.

What stays outside PrintStash

Use Printables, MakerWorld, Thingiverse, or another catalogue to browse public models and follow designers. PrintStash only imports selected files and source details into your private library. For which parts of a public model page a private library does and does not reproduce, including photos and the sharing limits, see hosting a private Thingiverse-style library.

It also is not a replacement for a printer host. OctoPrint, Fluidd, and Mainsail still provide webcams, terminals, machine setup, macros, and detailed live control. PrintStash can sit beside them and manage the model and revision history. The controller comparison explains that split.

Remote access is your responsibility. Keep the service on a trusted network, or place it behind a reverse proxy with TLS and suitable authentication. PrintStash has no telemetry and does not require a hosted account.

Test one folder first

Start with one representative folder instead of scanning the whole NAS. Confirm that filenames, previews, and collection structure look right. Add two slices of one model, write down why they differ, and mark the result after a print.

If that folder is easier to search and the revision record helps after a print, expand the scan. If it adds maintenance without changing how you find files, keep the smaller setup.