feat(web): checkpoint web app init

- frontend (Vite/React) + server (Hono/Drizzle) scaffold under web/
- eeschema WASM embind kicadOpenFile hook + programmatic open-flow
- skip KiCad first-run setup wizard by seeding default config in preRun
- dev: auto-sync output/ WASM artifacts into tests/apps/kicad via link-wasm

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Gergő Törcsvári 2026-06-01 16:30:29 +02:00
commit 735e5aa8e9
No known key found for this signature in database
GPG key ID: 8E75F2CDE64E5322
70 changed files with 7775 additions and 13 deletions

29
web/.env.example Normal file
View file

@ -0,0 +1,29 @@
# ---------------------------------------------------------------------------
# Copy to web/.env and adjust as needed. docker-compose and the server both
# read this file.
# ---------------------------------------------------------------------------
# --- Postgres (docker-compose) ---
POSTGRES_USER=kicad
POSTGRES_PASSWORD=kicad
POSTGRES_DB=kicad_web
# Non-default host port to avoid colliding with a local Postgres on 5432.
POSTGRES_PORT=54329
# --- Server ---
PORT=3050
# Connection string MUST match the POSTGRES_* values + port above.
DATABASE_URL=postgres://kicad:kicad@localhost:54329/kicad_web
# Where uploaded project file bytes are stored by the local-disk FileStorage.
STORAGE_ROOT=./.data/storage
# Owner namespace used while there is no auth (seeded on first migrate).
DEFAULT_OWNER_SLUG=default
# Browser origin allowed to call the API (the Vite dev server, non-default port).
CORS_ORIGIN=http://localhost:3048
# --- Frontend (Vite, must be VITE_-prefixed) ---
VITE_API_BASE_URL=http://localhost:3050
# SAME-ORIGIN: artifacts are smart-copied into public/wasm on `dev` and served by
# Vite at /wasm. Required because KiCad WASM pthread workers can't be cross-origin.
# For prod, set to a CDN URL whose origin also satisfies the worker/COEP rules.
VITE_WASM_ASSET_BASE_URL=/wasm