Skip to main content
Version: 0.9.14

Restart matrix

Most Delphi configuration is resolved when a service starts. Changing an AWS SSM parameter, Secrets Manager value, bootstrap value, or generated config bundle does not change running containers until the affected service re-runs init.sh through update.sh.

Use this page before deployments, secret rotations, and certificate changes to decide the smallest safe restart set.

Rules of thumb

Change typeWhat to runWhy
New image tag./update.sh --ecr-tag <tag> on each changed servicePulls the image, refreshes env, recreates containers.
New generated config bundle (CONFIG_REF, Compose, Caddyfile, collector config, vars.yaml)./update.sh --config-ref <ref> on each affected serviceRe-syncs the bundle from S3, then recreates containers.
SSM or Secrets Manager value./update.sh --restart-only on each consumerRe-runs fetch-env.sh and restarts containers with the new env.
Bootstrap /opt/deployment/.env (ECR_TAG, CONFIG_REF, NAMESPACE, AWS credentials)Prefer ./update.sh ...; if edited manually, run ./init.sh on that hostBootstrap is read before fetch-env.sh; update.sh also backs up the previous .env.
TelWeb database settingUsually no host restart; verify the setting-specific docMany platform/admin settings are DB-backed and reload in the app path.
TelAPI rate-limit settingsNo restartSaved from TelWeb and reloaded through Redis; see API operations.
TLS material decoded by init.sh./update.sh --restart-only on the service presenting or trusting the certCert files are materialized during service startup.
Database schema migrationRun the one-shot migration on Ops before app restartsLong-running Web/API/Voice/Ops containers should match the migrated schema.

Service restart matrix

ServiceRestart when these values changeRestart notes
WebDOMAIN_TELWEB, DOMAIN_SIGNOZ, auth/session/password policy, NEXTAUTH_*, DATABASE_*, REDIS_*, feature flags, legal banner envCaddy can renew Let's Encrypt certificates itself, but Caddyfile/domain changes require Web restart. Password-expiry policy must match Ops.
APIDOMAIN_API, JWT_SECRET, DATABASE_*, REDIS_*, WebRTC/API-access feature flags, media-cache TLS/token values, provider webhook secretsMultiple API instances sit behind a load balancer; restart one instance at a time when possible.
VoiceTelSys SIP settings, TelPhi provider/runtime settings, DATABASE_*, REDIS_*, recording, media-cache TLS/token values, PII logging, SIP_100REL_MODEDrain active calls before restarting a Voice instance. The Scaler can remove an instance from routing before replacement.
TelProSIP/TLS ports and domains, Kamailio/RTPEngine log levels, PUBLIC_IP, PRIVATE_IP, TLS_*, Redis settings, Janus/TURN settingsTelPro is the public SIP edge. Plan a maintenance window or an active/passive cutover for cert and routing changes.
DatabasePostgres/Redis/PgBouncer passwords, TLS server material, TLS mode flags, storage mount changesRestarting Database interrupts all consumers. Coordinate app restarts for password or TLS changes.
MediaMedia TLS material, upload token, media data path, SAN/DNS valuesAfter rotating Media TLS, restart Media first, then API and Voice consumers with the new trust bundle.
OpsScaler settings, Tasker settings, SMTP/SES, backup S3 settings, password-expiry reminder values, migration connectionRestart Ops after changing scheduled-job, backup, scaling, or reminder policy. Password-expiry values must match Web.
SigNozSigNoz backend config, ClickHouse/ZooKeeper settings, retention/storage settingsRestart affects observability, not call processing, but telemetry may buffer or drop while down.
SquidProxy ACLs, upstream proxy, listen portPrivate services depend on Squid for outbound ECR, AWS, and provider traffic; update Squid before services that need the new proxy behavior.

Suggested rollout order

For a normal release:

  1. Read the release notes and release compatibility to identify changed services.
  2. On Ops, run release migrations if the release requires them.
  3. Restart shared infrastructure only when it changed: Squid, Database, SigNoz, Media.
  4. Restart application services: API, Web, Ops, Voice, then TelPro when telephony-edge config or image changed.
  5. For scaled API and Voice groups, roll instances one at a time and keep at least one healthy instance in service.

For a configuration-only change:

  1. Find the consumer in Environment variable index or with show-env.sh.
  2. Restart only those services with ./update.sh --restart-only.
  3. Verify the resolved value from service logs, health checks, or the relevant UI.

Verification checklist

After the restart set completes:

  • docker compose ps is healthy on every touched host.
  • Web and API health endpoints respond.
  • A short test call reaches Voice and creates a conversation.
  • SigNoz receives fresh logs/spans from each restarted service.
  • For TLS/certificate changes, verify the caller/client sees the new certificate chain.

See also