Quickstart¶
Get the full stack running locally in a few commands.
Make sure you've covered Prerequisites first: Docker installed and running, fvm installed.
1. Install the pinned Flutter SDK¶
fvm install
2. Start the backend stack¶
./jarvis up
On first run this:
- copies
.env.example→.envif.envdoesn't already exist yet (dev-only defaults, never real secrets) - preflights Docker (checks it's installed and running)
- assembles enabled-module migrations into the image-baked migrations directory
- renders
backend/generated/crontabfor the scheduler - runs
docker compose up -d --build
When it finishes, it prints the PocketBase admin URL and the dev user:
PocketBase admin: http://127.0.0.1:8091/_/
Dev user: user@jarvis.local
Note
The default LLM_PROVIDER=stub runs the agent stack fully offline with canned responses — no LLM API key is needed to get started. Set LLM_PROVIDER=deepseek and a DEEPSEEK_API_KEY in .env later if you want real completions.
3. Run the app¶
cd app && fvm flutter run
On first launch the app shows a first-run screen asking for the backend URL and owner credentials. The backend URL field is seeded from the build-time JARVIS_BACKEND_URL dart-define, which is empty for a plain fvm flutter run — so type http://localhost:8091 into it yourself. (To pre-fill it instead, run fvm flutter run --dart-define=JARVIS_BACKEND_URL=http://localhost:8091.)
Dev credentials¶
These are the dev-only defaults from .env.example — never used in production.
| Account | Password | |
|---|---|---|
| Superuser (PocketBase admin) | dev@jarvis.local |
devpassword123 |
| App user (owner) | user@jarvis.local |
userpassword123 |
Use the app user credentials on the first-run screen.
Check it's alive¶
Open http://127.0.0.1:8091/_/ in a browser — that's the PocketBase admin UI. Log in with the superuser credentials above.
Or hit the health endpoint directly:
curl http://127.0.0.1:8091/api/health
Next steps¶
./jarvis resettears the stack down (including volumes) and brings it back up clean — useful for starting over../jarvis logsfollows logs for every service.- See How it fits together for what's actually running under the hood.