Files
PilotVault/Web App/README.md
T
tajniak81andClaude Opus 4.8 afc6952eda Initial commit: PilotVault multi-service project
Add API Server (Go/PocketBase), Web App (Go BFF + Vue), Fly App
(Flutter/DJI MSDK), Adobe Plugin, and Docker/Docker AIO deployment
configs. Design assets and build artifacts are gitignored.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 11:43:33 +02:00

52 lines
1.5 KiB
Markdown

# Web App (Control Panel)
The PilotVault control-panel BFF. It serves the embedded Vue single-page app and
proxies `/bff/*` to the API Server, so the browser only ever talks to this
server (same-origin). The API Server is the gateway to PocketBase and to the live
Fly App data; the browser never contacts either directly.
## Layout
```
server/ # Go BFF (package main) — proxies /bff/* and serves the SPA
dist/ # built web assets (go:embed target — produced by the web build)
.env.example # configuration template
go.mod
main.go # entrypoint, routing, static serving
bff.go # /bff/* proxy handlers
web/ # Vue 3 + Tailwind source, built by Vite into ../server/dist
```
## Configuration
See [server/.env.example](server/.env.example). Key variables:
- `ADDR` — address the BFF listens on (default `:8090`).
- `API_BASE` — default API Server the BFF proxies to (default `http://localhost:8080`).
Users can override this per-session at login.
## Develop
```sh
# 1. Build the web app into server/dist (embedded by the Go binary)
cd web && npm install && npm run build && cd ..
# 2. Run the BFF
cd server && go run .
```
For a live UI with hot-reload, run `npm run dev` in `web/` (it proxies `/bff` to
a locally running BFF on `:8090`).
## Build
```sh
cd server && go build -o web-app .
```
Or build the container image (multi-stage; builds the web app then the binary):
```sh
docker build -t pilotvault-web-app .
```