Setup & Deployment
Development
Section titled “Development”git clone https://github.com/luckeyfaraday/athena-mobile.gitcd athena-mobilenpm installnpm run devThis starts the Vite dev server. Without local configuration, the app runs in demo mode.
Default local URL:
http://127.0.0.1:5174For a phone on the same Tailscale network, run:
npm run dev:tailscaleThis binds the dev server to the laptop’s Tailscale IP only. Then open the laptop’s Tailscale URL on the phone, for example:
http://100.124.147.99:5174To bind a different address, set ATHENA_HOST — an explicit IP, or 0.0.0.0 to deliberately expose every interface:
ATHENA_HOST=0.0.0.0 npm run devConfiguration
Section titled “Configuration”Copy .env.example to .env.local:
cp .env.example .env.localDefault .env.local values:
VITE_ATHENA_MODE=demoVITE_ATHENA_BACKEND_URL=VITE_ATHENA_CONTROL_URL=VITE_ATHENA_PROJECT_DIR=VITE_ATHENA_TOKEN=VITE_ATHENA_MODE:demofor local fixture mode,liveto call the configured Athena services.- To connect to Athena Desktop, start Athena Desktop first, set
VITE_ATHENA_MODE=live, and restart the mobile dev server. - In live mode, blank URLs use the same-origin Vite proxy, which reads Athena’s discovery files (
~/.context-workspace/backend.jsonand~/.context-workspace/electron-control.json). - Set
VITE_ATHENA_PROJECT_DIRto the local Athena workspace path used for session history and new terminal launches before the app has discovered active workspaces.
Production deployment (private PWA)
Section titled “Production deployment (private PWA)”Build the static app, then run the production server:
npm run buildnpm startThe production server listens on 127.0.0.1:4174 by default. It serves dist/ and mounts the same local endpoints used in development:
/athena-backendproxies to Athena backend discovery from~/.context-workspace/backend.json./athena-controlproxies to Electron control discovery from~/.context-workspace/electron-control.json./athena-pushhandles Web Push enrollment and notifications.
Expose it privately with Tailscale HTTPS:
tailscale serve --bg https / http://127.0.0.1:4174Then open the Tailscale HTTPS URL on the phone and add Athena Mobile to the home screen.
Useful production overrides:
PORT=4174 npm startATHENA_HOST=tailscale npm startATHENA_BACKEND_TARGET=http://127.0.0.1:8000 npm startATHENA_CONTROL_TARGET=http://127.0.0.1:9000 npm start