PrintStash v0.5.0: first tagged release
The first tagged PrintStash release added URL and ZIP import, STEP previews, public share links, measured Moonraker jobs, and revision outcomes.
PrintStash v0.5.0 was the first tagged release. It established the basic model-to-print workflow: ingest a source file, keep G-code revisions with it, send one through Moonraker, and save the result.
This was a beta release for trusted self-hosted networks. The notes below describe v0.5.0 as it shipped, not the current feature set.
Import, CAD, and sharing
The ingest pipeline accepted STL, 3MF, OBJ, STEP/STP, and G-code through browser uploads, the OrcaSlicer post-processing hook, direct URLs, and ZIP archives. Server-side URL fetches included SSRF checks, while archive handling rejected path traversal and oversized expansion.
STEP and STP files were tessellated with OpenCASCADE for browser previews. The original CAD file remained available for download.
Public share links exposed one model through an expiring, read-only page. Downloads were opt-in, tokens were stored as hashes, and public requests were scoped back to the shared model.
Revisions and print records
G-code files could be kept as revisions of a model with parsed slicer metadata, notes, status, and a recommended choice. A successful job could mark an eligible revision known good automatically. Individual revisions used the same soft-delete and trash lifecycle as other files.
Moonraker supplied completed-job duration and filament use for print history and cost records. Manual history entries also worked without a registered printer.
The Moonraker provider included live status, upload and start, remote inventory, pause, resume, cancel, job history, and provider diagnostics. Bambu LAN support at this point was limited to beta local status and pause, resume, and cancel controls. It did not yet upload or start files.
Server features in the first release
v0.5.0 also included:
- first-run setup and JWT authentication;
- named API keys and collection-level roles;
- trash restore and purge;
- full backup and restore plus JSON or CSV metadata export;
- health checks and audit logs;
- SQLite and local disk by default, with Postgres and S3-compatible storage as options.
Metadata extraction still depended on what each slicer wrote into the file, and the G-code viewer was an inspection aid rather than a print simulator. Direct public exposure was outside the intended deployment model.
Historical upgrade notes
The v0.5.0 Compose flow required an explicit Alembic step:
docker compose downdocker compose pulldocker compose run --rm api uv run alembic upgrade headdocker compose up -dThe release images were:
ghcr.io/xiao-villamor/printstash-api:0.5.0ghcr.io/xiao-villamor/printstash-frontend:0.5.0
Use the current installation guide for a new server. The v0.5 changelog retains the original setup and migration detail.