← Blog

PrintStash v0.6.0: index a NAS folder in place

PrintStash v0.6.0 introduced external libraries, with in-place folder indexing, write-back, collection mirroring, periodic scans, and unmounted-share safety.

release

PrintStash v0.6.0 introduced what was then called External Libraries. A local or NAS folder could remain the source of truth while PrintStash indexed its files, stored metadata and thumbnails, and presented the folder as part of the web library.

The feature was opt-in and managed by a superuser. It was renamed Shared volumes in v0.6.2.

Index files without copying them

An external library pointed at a folder visible to the API container. PrintStash hashed and parsed supported files where they lived instead of copying their bytes into managed vault storage.

Two collection modes were available. Mirror mode translated the folder hierarchy into nested collections. Single mode placed every indexed file into one chosen collection.

Reconcile changes in both directions

A scan added new files to the index, rehashed changed files, and moved records for missing files to trash. Web uploads and new revisions could also be written back to the chosen external library.

Write-back used collision-safe names and never replaced an existing file. Removing a model or an external library only changed PrintStash records; hard delete and orphan cleanup skipped external source bytes.

Abort when a mount looks wrong

An unmounted NAS share can leave an empty directory behind. Treating that as a real empty library would trash every indexed record.

v0.6.0 added checks that stopped reconciliation when the root was missing, unreadable, or unexpectedly empty while indexed files still existed. The source folder remained untouched in every case.

Enabled libraries could run on a fixed background interval or be scanned manually. v0.6.2 later replaced the interval with cron schedules and filesystem watching.

Reliability work

The release fixed a timezone comparison that could silently stop the periodic scheduler after its first scan. It also updated the frontend test API after the upload modal started requesting the external-library feature flag and destination list.

Backend coverage exercised folder mirroring, write-back, reconciliation, scheduler behavior, and the safety rules with real STL, 3MF, and G-code fixtures.

For the current setup, use the shared-volume guide. It includes Docker mounts, network-share behavior, write permissions, and recovery checks.