Skip to content

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:

  1. copies .env.example.env if .env doesn't already exist yet (dev-only defaults, never real secrets)
  2. preflights Docker (checks it's installed and running)
  3. assembles enabled-module migrations into the image-baked migrations directory
  4. renders backend/generated/crontab for the scheduler
  5. 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 Email 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 reset tears the stack down (including volumes) and brings it back up clean — useful for starting over.
  • ./jarvis logs follows logs for every service.
  • See How it fits together for what's actually running under the hood.