Parts inventory: catalog, search, and stock tracking

FastAPI + SQLite behind a single-page frontend, deployed as a container on
mainserver behind Caddy.

One flexible parts table plus key/value specs so components, filament,
fasteners and tooling share a schema. Categories and locations are nestable
trees whose filters and sidebar counts both roll up through descendants.
Category spec templates pre-fill the properties worth recording for each kind
of part, which is what makes manual entry tolerable. Every quantity change is
logged. Search is FTS5 with prefix matching across names, MPNs, spec values,
tags, category and location.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jay
2026-08-24 09:19:58 -04:00
commit ffe508b7f3
15 changed files with 2330 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
# Single-user gate. Set a real password before exposing this publicly.
PARTS_PASSWORD=change-me
# Signing key for the session cookie. Generate: openssl rand -hex 32
PARTS_SECRET=change-me-too
# Session lifetime in days.
PARTS_SESSION_DAYS=30
# Set to "off" to disable the login gate entirely (LAN-only use).
PARTS_AUTH=on
# SQLite path. The container image already defaults this to /data/parts.db.
PARTS_DB=/data/parts.db