Skip to content

Setup & Deployment

git clone https://github.com/luckeyfaraday/athena-mobile.git
cd athena-mobile
npm install
npm run dev

This starts the Vite dev server. Without local configuration, the app runs in demo mode.

Default local URL:

http://127.0.0.1:5174

For a phone on the same Tailscale network, run:

npm run dev:tailscale

This 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:5174

To 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 dev

Copy .env.example to .env.local:

cp .env.example .env.local

Default .env.local values:

VITE_ATHENA_MODE=demo
VITE_ATHENA_BACKEND_URL=
VITE_ATHENA_CONTROL_URL=
VITE_ATHENA_PROJECT_DIR=
VITE_ATHENA_TOKEN=
  • VITE_ATHENA_MODE: demo for local fixture mode, live to 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.json and ~/.context-workspace/electron-control.json).
  • Set VITE_ATHENA_PROJECT_DIR to the local Athena workspace path used for session history and new terminal launches before the app has discovered active workspaces.

Build the static app, then run the production server:

npm run build
npm start

The production server listens on 127.0.0.1:4174 by default. It serves dist/ and mounts the same local endpoints used in development:

  • /athena-backend proxies to Athena backend discovery from ~/.context-workspace/backend.json.
  • /athena-control proxies to Electron control discovery from ~/.context-workspace/electron-control.json.
  • /athena-push handles Web Push enrollment and notifications.

Expose it privately with Tailscale HTTPS:

tailscale serve --bg https / http://127.0.0.1:4174

Then open the Tailscale HTTPS URL on the phone and add Athena Mobile to the home screen.

Useful production overrides:

PORT=4174 npm start
ATHENA_HOST=tailscale npm start
ATHENA_BACKEND_TARGET=http://127.0.0.1:8000 npm start
ATHENA_CONTROL_TARGET=http://127.0.0.1:9000 npm start