feat(qrcode2stl): add self-contained pinned build stack #22

Open
claude wants to merge 3 commits from add-qrcode2stl-stack into main
Owner

Adds stacks/qrcode2stl/ — a self-hosted, fully local qrcode2stl (QR / text / WiFi / geo / ... → 3D-printable STL).

Why a build, not an image: upstream publishes no image (Docker Hub + GHCR both empty), and its own Dockerfile clones master unpinned. This stack ships a small multi-stage Dockerfile that clones a pinned commit (a9431ae), builds with Vite (Node 22), and serves the static dist/ via nginx:alpine. Dockhand builds it on deploy.

Shape: pure client-side SPA — no backend, DB, volumes, secrets, or runtime env vars. restart: unless-stopped (genuinely Dockhand-managed). Published on dockernet at host port 8770 (verified free).

Validated: built + smoke-tested on the Unraid host itself — image builds clean, nginx serves HTTP 200 with correct title and /assets/ paths; throwaway artifacts removed.

Deploy = register as a Dockhand git-stack (compose path stacks/qrcode2stl/docker-compose.yml) + sync.

🤖 Generated with Claude Code

Adds `stacks/qrcode2stl/` — a self-hosted, fully local [qrcode2stl](https://github.com/flxn/qrcode2stl) (QR / text / WiFi / geo / ... → 3D-printable STL). **Why a build, not an image:** upstream publishes no image (Docker Hub + GHCR both empty), and its own Dockerfile clones `master` unpinned. This stack ships a small multi-stage Dockerfile that clones a **pinned commit** (`a9431ae`), builds with Vite (Node 22), and serves the static `dist/` via `nginx:alpine`. Dockhand builds it on deploy. **Shape:** pure client-side SPA — no backend, DB, volumes, secrets, or runtime env vars. `restart: unless-stopped` (genuinely Dockhand-managed). Published on `dockernet` at host port **8770** (verified free). **Validated:** built + smoke-tested on the Unraid host itself — image builds clean, nginx serves HTTP 200 with correct title and `/assets/` paths; throwaway artifacts removed. Deploy = register as a Dockhand git-stack (compose path `stacks/qrcode2stl/docker-compose.yml`) + sync. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin add-qrcode2stl-stack:add-qrcode2stl-stack
git switch add-qrcode2stl-stack

Merge

Merge the changes and update on Forgejo.
git switch main
git merge --no-ff add-qrcode2stl-stack
git switch add-qrcode2stl-stack
git rebase main
git switch main
git merge --ff-only add-qrcode2stl-stack
git switch add-qrcode2stl-stack
git rebase main
git switch main
git merge --no-ff add-qrcode2stl-stack
git switch main
git merge --squash add-qrcode2stl-stack
git switch main
git merge --ff-only add-qrcode2stl-stack
git switch main
git merge add-qrcode2stl-stack
git push origin main
Sign in to join this conversation.
No reviewers
No labels
lab-honing
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
adam/foundry!22
No description provided.