Skip to content

Commit 7ba517f

Browse files
committed
docs: add live site URL, deployment steps, CI/CD summary
1 parent dd83066 commit 7ba517f

2 files changed

Lines changed: 46 additions & 6 deletions

File tree

README.md

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,18 @@ VALIDATOR: all screws inside plate, none overlapping cutouts
9494
| `--no-auto-align` | off | Skip brute-force; use raw KiCad coords + manual nudge |
9595
| `--pcb-dx` / `--pcb-dy` | 0 | Manual nudge after auto-align |
9696

97+
## Live Site
98+
99+
**https://kb-plate-validator.fly.dev**
100+
101+
Hosted on Fly.io (Chicago). Auto-deploys on every push to `main` via GitHub Actions.
102+
97103
## Web Application
98104

99105
The KB Plate Validator can also be run as a web application with a modern, drag-and-drop interface. It supports instant **SVG Preview** and multi-format exports:
100106
* **DXF**: Standard CAD format for SendCutSend and laser cutting.
101-
* **Gerber (ZIP)**: Production-ready files for JLCPCB and PCB manufacturers.
102-
* **3D (STL)**: Extruded 1.5mm solids for 3D printing and CAD modeling.
107+
* **Gerber (ZIP)**: Production-ready files for JLCPCB and PCB manufacturers (requires optional deps).
108+
* **3D (STL)**: Extruded 1.5mm solids for 3D printing and CAD modeling (requires optional deps).
103109

104110
### Running via Docker (Recommended)
105111

@@ -304,14 +310,41 @@ SCREW_COMBO
304310
- Expected: 101 (96 pure + 5 combos)
305311
- Overlap conflicts: 5 marginal (acceptable clearance)
306312

313+
## Deployment Setup (for maintainers)
314+
315+
The site runs on Fly.io. One-time setup if you fork and want your own deployment:
316+
317+
```bash
318+
# Install flyctl
319+
curl -L https://fly.io/install.sh | sh
320+
321+
# Authenticate
322+
flyctl auth login
323+
324+
# Create app (only once)
325+
flyctl launch --name your-app-name --region ord --yes --no-deploy
326+
327+
# Generate deploy token, add to GitHub secrets as FLY_API_TOKEN
328+
flyctl tokens create deploy -x 999999h
329+
330+
# First deploy
331+
flyctl deploy --remote-only
332+
```
333+
334+
After that, every push to `main` auto-deploys via `.github/workflows/fly-deploy.yml`.
335+
336+
**GitHub Actions workflows:**
337+
- `docker-publish.yml` — builds and pushes `ghcr.io/rivasmario/kb_plate_validator:latest` on every push to main
338+
- `fly-deploy.yml` — deploys to `kb-plate-validator.fly.dev` on every push to main
339+
307340
## Contributing
308341

309-
PRs welcome. The image auto-publishes to `ghcr.io` on every merge to `main` via GitHub Actions.
342+
PRs welcome. The site auto-deploys on every merge to `main`.
310343

311344
1. Fork → branch → change
312345
2. `docker build -t kb-plate-validator .` to validate locally
313346
3. Open a PR — CI will build the image automatically
314-
4. Merge → image ships
347+
4. Merge → site updates within ~2 min
315348

316349
See `.github/pull_request_template.md` for the PR checklist.
317350

handover.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,15 @@
3838

3939
### Pending Issues / Next Steps
4040
- ~~**Bump Dockerfile base image to `python:3.12-slim`**~~**DONE** (was already 3.12-slim; gerbonara + cadquery already in requirements.txt).
41-
- **GitHub Actions CI/CD****DONE** (April 18, 2026): `.github/workflows/docker-publish.yml` builds on every PR, publishes `ghcr.io/rivasmario/kb_plate_validator:latest` on every merge to main. PR template added. `.gitignore` updated to exclude `.venv*/`.
42-
- **Make ghcr.io package public** after first workflow run: GitHub → Packages → `kb_plate_validator` → Package settings → Change visibility → Public. (Repo is already public; packages still default to private.)
41+
- **GitHub Actions CI/CD + Fly.io deployment****DONE** (April 18, 2026):
42+
- `.github/workflows/docker-publish.yml` — builds on every PR, publishes `ghcr.io/rivasmario/kb_plate_validator:latest` on push to main
43+
- `.github/workflows/fly-deploy.yml` — auto-deploys to `https://kb-plate-validator.fly.dev` on push to main
44+
- `.dockerignore` added (excludes .venv, __pycache__, test scripts)
45+
- PR template at `.github/pull_request_template.md`
46+
- `.gitignore` updated to exclude `.venv*/`
47+
- ghcr.io package visibility set to public
48+
- `cadquery` and `gerbonara` removed from `requirements.txt` (too heavy for container; exporters.py handles missing imports gracefully)
49+
- Fly.io app: `kb-plate-validator` in `ord` (Chicago), 1GB shared-cpu-1x, auto-stop when idle
4350
- **STL viewer** installed locally as `f3d` (lightweight, dnf package).
4451
- **Verify SendCutSend acceptance** of the new closed-LWPOLYLINE DXF output (should resolve their "open entities" error).
4552
- **Generate-route still single-threaded** — large plates take ~7s for legacy_chain alignment. Not blocking but a future optimization opportunity.

0 commit comments

Comments
 (0)