Files
upstream-tldraw/apps/dotcom/process-compose.yaml
upstream-mirror a774ac673a
Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
snapshot of https://github.com/tldraw/tldraw.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 16:12:52 +05:00

122 lines
4.6 KiB
YAML

# Dotcom dev stack, brought up by `yarn dev-app`. Usage notes in apps/dotcom/README.md.
version: '0.5'
# Readiness = TCP connect (a portable node one-liner; wrangler's `/` 404s, so http_get won't do).
processes:
# postgres + pgbouncer — the two containers (wal2json / logical replication)
postgres:
command: docker compose -f apps/dotcom/zero-cache/docker/docker-compose.yml up
shutdown:
command: docker compose -f apps/dotcom/zero-cache/docker/docker-compose.yml down
readiness_probe:
exec:
command: node -e "require('net').connect(6543,'127.0.0.1').on('connect',function(){this.end();process.exit(0)}).on('error',()=>process.exit(1))"
initial_delay_seconds: 2
period_seconds: 2
# ~180s budget: the first run pulls the postgres image, which can take minutes.
failure_threshold: 90
# migrations — one-shot; gates zero-cache
migrate:
command: yarn workspace @tldraw/zero-cache migrate
depends_on:
postgres:
condition: process_healthy
availability:
restart: 'no'
# zero-cache — replicates from postgres. Runs directly: nothing reads .schema.js, so there's no
# schema rebuild/restart watch.
zero-cache:
command: yarn workspace @tldraw/zero-cache exec zero-cache
environment:
- NODE_ENV=development
- ZERO_UPSTREAM_DB=postgresql://user:password@127.0.0.1:6543/postgres
- ZERO_CVR_DB=postgresql://user:password@127.0.0.1:6543/postgres
- ZERO_CHANGE_DB=postgresql://user:password@127.0.0.1:6543/postgres
- ZERO_REPLICA_FILE=/tmp/tldraw-dotcom-zero-dev.db
- ZERO_NUM_SYNC_WORKERS=1
- ZERO_CVR_MAX_CONNS=6
- ZERO_UPSTREAM_MAX_CONNS=6
- ZERO_APP_PUBLICATIONS=zero_data
- ZERO_MUTATE_URL=http://localhost:8787/app/zero/mutate
- ZERO_QUERY_URL=http://localhost:8787/app/zero/query
- ZERO_ENABLE_CRUD_MUTATIONS=false
- ZERO_LOG_LEVEL=info
- ZERO_ENABLE_STARTUP_MESSAGE=0
- DO_NOT_TRACK=1
depends_on:
migrate:
condition: process_completed_successfully
readiness_probe:
exec:
command: node -e "require('net').connect(4848,'127.0.0.1').on('connect',function(){this.end();process.exit(0)}).on('error',()=>process.exit(1))"
initial_delay_seconds: 3
period_seconds: 2
failure_threshold: 90
# workers — wrangler dev / workerd on the host
sync-worker:
command: yarn workspace @tldraw/dotcom-worker dev
depends_on:
zero-cache:
condition: process_healthy
readiness_probe:
exec:
command: node -e "require('net').connect(8787,'127.0.0.1').on('connect',function(){this.end();process.exit(0)}).on('error',()=>process.exit(1))"
initial_delay_seconds: 3
period_seconds: 2
failure_threshold: 60
# one-shot wake of the outbox processor DO — local workerd doesn't fire persisted alarms for an
# uninstantiated DO, so without this a restarted stack wouldn't drain trigger-only writes until
# the first mutation. A one-shot (not the readiness probe) so it doesn't poke every 2s forever.
wake-outbox:
command: node -e "fetch('http://127.0.0.1:8787/app/outbox-status').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
depends_on:
sync-worker:
condition: process_healthy
availability:
restart: 'no'
asset-upload-worker:
command: yarn workspace dotcom-asset-upload dev
# image-resize + usercontent bind sync-worker by name, so it must come up first
image-resize-worker:
command: yarn workspace images.tldraw.com dev
depends_on:
sync-worker:
condition: process_healthy
tldrawusercontent-worker:
command: yarn workspace dotcom-tldrawusercontent dev
depends_on:
sync-worker:
condition: process_healthy
# css — tldraw.css / commenting.css are generated, not checked in. Each package's `predev` writes
# them once, then its `dev` watches the source css and re-copies. The client @imports both, so it
# waits for the files to exist.
css:
command: LAZYREPO_PRETTY_OUTPUT=0 yarn lazy run dev --filter='packages/tldraw' --filter='packages/commenting'
readiness_probe:
exec:
command: node -e "require('fs').accessSync('packages/tldraw/tldraw.css');require('fs').accessSync('packages/commenting/commenting.css')"
initial_delay_seconds: 2
period_seconds: 2
failure_threshold: 60
# client — vite dev server
client:
command: yarn workspace dotcom dev
depends_on:
sync-worker:
condition: process_healthy
zero-cache:
condition: process_healthy
css:
condition: process_healthy