Files
image2api/frontend
dokploy-bot 571ee2c801 feat: 无限画布 — infinite canvas with generation integration
Backend:
- canvases table + owner-scoped CRUD under /admin/api/canvas
  (list/create/get/save/delete, 50 docs/user, 4MiB cap, JSON validation)

Frontend:
- /canvas full-screen workspace: DOM+CSS-transform infinite pan/zoom
  (GPU-composited world layer, viewport culling, rAF-batched pointer moves)
- nodes: image (thumb display, natural-size correction), note
  (uncontrolled contenteditable), generation placeholder with edges
- generate on canvas: prompt from panel or selected notes, selected image
  nodes as references, results auto-placed + bezier edges to sources
- multi-canvas management, debounced autosave + keepalive flush,
  snapshot undo/redo (60 steps), marquee/keyboard interactions
2026-09-19 22:38:41 +08:00
..
2026-07-08 09:49:54 +08:00
2026-07-08 09:49:54 +08:00

ai-gateway frontend

Vue 3 + Vite admin console for the ai-gateway backend. This replaces the old single-file static/admin.html.

Develop

npm install
npm run dev        # http://localhost:5173

The dev server proxies /admin, /health, /generated, /v1 to the backend. Start the backend separately:

# from repo root
python app.py      # http://0.0.0.0:6060

If the backend runs elsewhere, set VITE_BACKEND before npm run dev:

VITE_BACKEND=http://192.168.1.10:6060 npm run dev

Build

npm run build      # outputs static assets to ./dist
npm run preview    # serve the production build locally

When hosting dist/ on a different origin than the API, set VITE_API_BASE (e.g. VITE_API_BASE=http://api-host:6060) at build time, and add that frontend origin to the backend's CORS_ORIGINS env var.