Retire the shared coturn service — every WebRTC/SIP service now runs its own
Shared coturn (services/coturn.sh, ensure_coturn_user in lib/common.sh) is no longer an installable or usable option anywhere in this repo. It's moved to attic/coturn.sh (with tools/coturn-test-check.sh alongside it), which is outside setup.sh's services/*.sh glob, so it never registers, never appears in the menu, and `sudo ./setup.sh coturn` now fails with "unknown service". Asterisk and Mattermost each already had an opt-out to run their own dedicated coturn instead of the shared one; that opt-out is now the only behavior — the shared-coturn preference, the opt-out prompt, and every ensure_coturn_user() call site are gone. find_free_coturn_range() (lib/common.sh) is what makes unconditional dedicated coturn safe: it scans every coturn-owning service's own .env on the box for already-claimed relay ranges and picks one that can't collide, so Asterisk + any number of Mattermost instances can each run their own coturn on one box without the relay-port collisions this repo's coturn history warns about. Existing installs still pointed at a shared coturn container are left running as-is on `update` (no silent migration attempt against a service that no longer exists to heal against) — a full/fresh reinstall is the migration path, which generates a new dedicated coturn with fresh credentials and says so. Also updates CLAUDE.md's coturn guidance for future service authors, attic/README.md with the retirement rationale, and stale services/coturn.sh path references in services/asterisk.sh, tools/pstn-test-check.sh, README.md, and docs/vps-sizing-recommendations.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crt4ymNEHEbWqscB1qvZgC
This commit is contained in:
@@ -31,10 +31,16 @@ Rules of thumb:
|
||||
`ensure_swapfile()` unconditionally, which offers a 2GB swapfile any time
|
||||
RAM is ≤4096MB and none exists yet (`services/asterisk.sh` also calls it
|
||||
directly for the standalone-run case, so it's covered either way).
|
||||
- Sharing one `coturn` instance (`services/coturn.sh`) instead of letting
|
||||
each WebRTC-capable service (Asterisk, Mattermost) embed its own saves a
|
||||
container per consumer and — more importantly — avoids relay-port
|
||||
collisions between them.
|
||||
- **Historical note, no longer applicable:** this doc's Tier 2/3 plans below
|
||||
were sized around one shared `coturn` instance instead of each WebRTC-
|
||||
capable service (Asterisk, Mattermost) embedding its own — it saved a
|
||||
container per consumer and avoided relay-port collisions between them.
|
||||
That shared-coturn service has since been retired from this repo (see
|
||||
`attic/coturn.sh`); every service now runs its own dedicated coturn, and
|
||||
`lib/common.sh`'s `find_free_coturn_range()` avoids the same relay-port
|
||||
collisions by scanning each coturn-owning service's `.env` instead. Budget
|
||||
a coturn container per WebRTC-capable service/instance, not one shared
|
||||
~40MB line, when re-planning a box from scratch.
|
||||
|
||||
## Tier 1 — ~1 vCPU / 1GB RAM / 25GB SSD
|
||||
|
||||
@@ -43,7 +49,7 @@ Example: DigitalOcean Basic, $6/mo.
|
||||
This is tight enough that Docker's own daemon overhead is already a
|
||||
meaningful fraction of the box. **Pick one purpose, not a stack:**
|
||||
|
||||
- **Option A — Asterisk only.** Asterisk + the shared coturn service fits
|
||||
- **Option A — Asterisk only.** Asterisk + its own dedicated coturn fits
|
||||
comfortably per this repo's own droplet-sizing notes (`services/asterisk.sh`
|
||||
README section) — a swapfile is added automatically (RAM ≤4GB, see above),
|
||||
and this plan is "fine for a couple of extensions and light personal use."
|
||||
|
||||
Reference in New Issue
Block a user