Proxie is your personal AI agent. Publish your content, and your Proxie handles inbound communication on your behalf.
Monorepo using npm Workspaces:
api/: Backend Node REST API serverclient/: Frontend React appdata/: Dataset (currently static, deploy via /scripts/content.js)infra/: Infrastructure definition for Kubernetes deployproxy/: NGINX config for ingress to client and apiscripts/: Helper zsh scripts (GCP setup, deploy, content)
- Node 18+
- npm 9+
- Docker (for proxy and deploy)
- gcloud CLI (for GCP scripts)
npm installThis installs workspace dependencies for client, api, and proxy.
The client fetches from /api/*. Configure backend host via VITE_API_BASE_URL in client/.env.local.
- API standalone (port 3001):
npm run dev:api
- Client standalone (port 5173 by default):
npm run dev:client
- Client + API concurrently:
npm run dev
- API and Client launch configs live in
.vscode/launch.json.
NGINX is used primarily for deployment to handle ingress for client/dist and /api to http://localhost:3001.
- Build client and start API:
npm run build && npm run dev:api - Start NGINX proxy (Docker):
npm run proxy
Build and deploy is handled by ./scripts/deploy.zsh to create a Docker image and release to GCP as a knative services.yaml
Note: Sensitive config should use GCP Secret Manager. See .env.stage.yaml and .env.prod.yaml for examples.
Need to run setup at least once:
./scripts/gcp-setup.zsh --project <PROJECT_ID>npm run deploy <stage|prod>