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>
52 lines
1.5 KiB
Markdown
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 .
|
|
```
|