Developers

Development setup

One-command DDEV environments for core and client — no local PHP or Node needed.

Both repos ship a DDEV environment: PHP, Composer, Node, MariaDB and every sidecar (Mercure, Meilisearch, Valkey, LiveKit) run in containers. Requirements: Docker and DDEV v1.24+ — nothing else installed locally.

Full stack, first run

Warning

Clone into directories named exactly core and client — DDEV derives project names (and the *.ddev.site URLs the stacks use to find each other) from the directory name.

# Backend
git clone https://github.com/tyto-chat/core.git core && cd core
ddev start && ddev init          # deps, DB, keys, admin user, bot

# Frontend (sibling directory)
cd .. && git clone https://github.com/tyto-chat/client.git client && cd client
ddev start && ddev setup         # deps, .env.local, Playwright browser

ddev init prompts for the admin email/password and prints the E2E_TEST_TOKEN used by the client’s Playwright suite.

Useful commands

Core:

Command Description
ddev init First-time setup — safe to re-run, skips what’s done
ddev reset-db Drop + recreate the database, regenerate migrations
ddev test PHPUnit (handles test-DB setup) — see Testing
ddev composer phpstan Static analysis
ddev composer checkcs / fixcs Code style check / auto-fix
ddev mysql MariaDB shell

Client:

Command Description
ddev setup First-time setup: .env.local, Playwright browser
ddev npm test Vitest unit tests
ddev e2e Playwright end-to-end suite — see Testing
ddev npm run typecheck / lint / format TypeScript / ESLint / Prettier
ddev npm run build Production build

Both READMEs (core, client) document the full command sets and service versions.