Files
when/docs/development.md
eleith e11ef0d16f
ci/woodpecker/pr/calendar Pipeline was successful
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/config Pipeline was successful
ci/woodpecker/pr/db Pipeline was successful
ci/woodpecker/pr/jobs Pipeline was successful
ci/woodpecker/pr/video-chat Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
ci/woodpecker/push/calendar Pipeline was successful
ci/woodpecker/push/cli Pipeline was successful
ci/woodpecker/push/config Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/jobs Pipeline was successful
ci/woodpecker/push/video-chat Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/worker Pipeline was successful
feat(config): make Docker onboarding YAML-first
2026-11-01 19:04:16 -08:00

1.0 KiB

Development

Read the philosophy. Then resist the urge to add a plugin system.

run it

you can use Node 26 and pnpm (versions in mise.toml) directly. or you can use docker. one is documented-ish. the other is not.

docker development

With Docker installed, start from apps/web:

mkdir -p config data public
cp -n ../../docs/when.example.yaml config/when.yaml
chmod 600 config/when.yaml

Fill in config/when.yaml and set YAML url.app to http://localhost:5173. No .env file or session key is required. If you want interpolation, create an optional .env beside the development Compose file. To keep sessions across restarts, set auth.secret in YAML or supply a stable AUTH_SECRET.

Then run:

docker compose -f docker-compose.dev.yml up --build

Web is on 5173, Mailpit on 8025. The sample Compose file is for deployment, not hot reload.

Testing

write more than zero but not so many they aren't worth their costs. Use the cheapest test that proves the behavior.