Skip to content

Add example docker-compose for manager, frontend and SMB - #345

Open
birme wants to merge 1 commit into
mainfrom
feature/152-example-docker-compose
Open

birme wants to merge 1 commit into
mainfrom
feature/152-example-docker-compose

Conversation

@birme

@birme birme commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add a single self-contained docker-compose.yml at the repo root that brings up the full Open Intercom stack on one host: manager, frontend, sfu (Symphony Media Bridge) and mongo.
  • Wire sensible defaults so docker compose up works out of the box: manager points at SMB_ADDRESS=http://sfu:8180 with SMB_APIKEY matching the SFU API_KEY (default eyevinn), DB_CONNECTION_STRING=mongodb://mongo:27017/intercom-manager, CORS_ORIGIN=http://localhost:3000, and PUBLIC_HOST=http://localhost:8000.
  • Frontend bakes MANAGER_URL into the web build at container start and publishes port 3000; manager on 8000; SFU exposes its HTTP API on 8180 and UDP 10000 media.
  • MongoDB uses a named volume and a healthcheck, with the manager depends_on mongo service_healthy.
  • Inline comments document production notes, including that the SFU typically needs host networking for RTP.

Test plan

This is a docs/deployment-example change only — a single new docker-compose.yml is added and no application code changed, so the standard npm test, npm run typecheck, and npm run lint are unaffected. The meaningful verification is at the compose level:

  • docker compose config validates the file (no schema/interpolation errors)
  • docker compose up brings the stack up and the UI is reachable at http://localhost:3000
  • Manager reaches the SFU and MongoDB with the default env wiring

Closes #152

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

Provides a single-host compose bringing up the manager, frontend,
Symphony Media Bridge SFU and MongoDB with sensible defaults so the
stack can be evaluated with `docker compose up`.

Closes #152
@birme

birme commented Sep 18, 2026

Copy link
Copy Markdown
Contributor Author

Code Review — Verdict: LGTM

Self-authored PR reviewed by daily-backlog-pr Phase 3 (code-reviewer invocation, separate from the implementer). Since GitHub blocks state-bearing self-review by the author's own account, the verdict is recorded here as a marker instead of an --approve review.

Adds only docker-compose.yml (85 lines, no application code). Every service's env wiring was verified against the actual upstream images and this repo's config: manager env vars match src/config/load-env.ts/.env.example; SFU API_KEY/ports/cap_add: SYS_NICE/ulimits rtprio:99 match Eyevinn/docker-wrtc-sfu; frontend PORT/MANAGER_URL (browser-reachable localhost) correct; mongo healthcheck + depends_on: service_healthy gating correct. No hardcoded secret (the eyevinn SMB_APIKEY default is the upstream-documented, overridable, host-internal inter-service key), no yarn, no rm -rf, no forced push.

Suggestions only (non-blocking): add an inline "override SMB_APIKEY in production" note, mention NUM_UDP_PORTS for scaled setups, and link the file from the README.

No Blocking items — LGTM. This PR now awaits a human with a different account to gh pr review --approve and merge (the automation cannot self-approve).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Example docker-compose

2 participants