OZfile

Fund records, information collection, testing dates, reporting preparation,
and the evidence behind each reported number.

Run the stack

Standalone mode, from the repository root
(docker-compose.yml header comment; steps also in CONTRIBUTING.md, "Profile: developer"):

cp .env.example .env
cp api/.env.example api/.env && php artisan key:generate
./scripts/setup-local-ssl.sh
docker compose up -d
docker compose -f docker-compose.api.yml up -d

A shared-proxy mode also exists for a machine already running another reverse proxy
— see the header comment in docker-compose.yml.

ServiceURLSource
Frontend (Vue/Quasar, via Traefik)https://ozfile.testdocker-compose.yml
API (Laravel, via nginx)http://localhost:8083docker-compose.api.yml (OZ_API_PORT)
Mailpit — outgoing mail in devhttp://localhost:8027docker-compose.api.yml (OZ_MAILPIT_PORT)
Traefik dashboard (standalone mode)http://localhost:8890docker-compose.yml

This app's own routes

RouteServesDefined in
/This pageapi/routes/web.php
/upFramework health checkapi/bootstrap/app.php (health: '/up')

No product API routes yet — api/routes/api.php does not exist on disk. api/AGENTS.md: "product API implementation has not started."

Frontend commands

From webapp/ — webapp/package.json scripts:

yarn devVite dev server, port VITE_PORT (5173 unless set — webapp/vite.config.ts:17)
yarn dev:dockerWhat the frontend container runs, bound for Traefik/HMR
yarn buildType-check, then production build
yarn type-checkvue-tsc --build
yarn lintoxlint then eslint, both with --fix — inspect the diff
yarn formatprettier, writes source

Run yarn type-check, yarn build and yarn lint before handing off frontend work — webapp/AGENTS.md, "Run and check".

API commands

From api/, inside the team's approved Docker/Composer runtime — never a host-side PHP or Composer (api/AGENTS.md):

composer install
composer validate --strict
composer check-platform-reqs
composer test
vendor/bin/pint --test
php artisan route:list --except-vendor

api/README.md, "Setup and checks".

The oz CLI

Plain ESM, Node ≥ 22, no dependencies or build step — tools/oz/README.md:

tools/oz/bin/oz status        # doctor + Atlas + index freshness, degrades gracefully
tools/oz/bin/oz check         # ingest check, then Atlas check, then page tests
tools/oz/bin/oz test [api|webapp|pages|tooling|all]
tools/oz/bin/oz ingest check
tools/oz/bin/oz open <page>   # schema, board, start, changes, study, pitch, atlas…

Read first

Conventions