PrintStash v0.5.0 — Import, CAD, Sharing & Measured Prints. This is the
first tagged release. PrintStash is a beta, self-hosted app: useful today for
local libraries and Moonraker/Klipper workflows, and deliberately not a full
manufacturing platform.
✅ What works (stable)
- Ingest STL, 3MF, OBJ, STEP/STP, and G-code — upload, import from a URL or
.zip(SSRF-guarded fetches; zip-slip / zip-bomb protected), or push from
OrcaSlicer with a post-processing hook. - STEP/STP CAD files are tessellated (OpenCASCADE) and previewed in the browser.
- Models + G-code revisions on one record, with version history, slicer
metadata parsing, browser mesh + toolpath viewers, and a recommended/known-good verdict. - Auto known-good revisions after the first successful print; delete G-code
revisions (soft, trash-aware). - Measured prints: real filament used, actual duration, and per-print cost
captured from Moonraker on completion. Log history manually too — even without a
registered printer. - Public share links: expiring, read-only, view-only by default; tokens hashed,
strictly isolated, rate-limited. - Moonraker/Klipper: live status, send-to-print, file inventory sync, remote
start, pause/resume/cancel, job history, and provider diagnostics. - Run locally: first-run setup wizard, JWT auth + API keys, per-collection
RBAC, trash restore/purge, backup/restore, JSON/CSV export, health checks, audit logs. - SQLite + local disk by default; optional Postgres and S3/R2 storage.
🧪 Experimental — know this before you rely on it
- Bambu LAN is beta: local status plus pause/resume/cancel only. Upload,
send-to-print, remote file inventory, and remote-file start are not implemented
for Bambu yet. Moonraker/Klipper is the fully supported provider. - Hardware coverage is still thin — provider reports are very welcome.
- Slicer-metadata parsing varies by slicer/profile; missing fields are expected.
- The G-code viewer is a visualization aid, not a slicer-grade simulator.
- Designed for trusted self-hosted networks. Do not expose it directly to the
public internet without a reverse proxy, TLS, and strong secrets.
See docs/known-limitations.md
for the full list, including non-goals.
⬆️ How to upgrade
First install: follow Quick Start in the
README. Copy
.env.example to .env and set strong, random VAULT_JWT_SECRET and
VAULT_API_KEY (openssl rand -hex 32).
Existing Docker Compose install:
# Back up first (Settings → backup, or the API), then:
docker compose down
docker compose pull # or: docker compose build --pull
docker compose run --rm api uv run alembic upgrade head
docker compose up -dPin images for repeatable upgrades:
ghcr.io/xiao-villamor/printstash-api:0.5.0ghcr.io/xiao-villamor/printstash-frontend:0.5.0
Full details: CHANGELOG.md.