Files

Deployment

Production

Production runs directly on Debian 13 with systemd. The only services deployed by this project are:

  • sip-go-agent-dispatcher.service
  • sip-go-agent-agent.service
  • the separately managed native asterisk.service

RabbitMQ, OSS, AI providers and SaaS are external endpoints. They are not installed by the production package and are not started by systemd or Docker.

Build a release candidate from the project root:

deploys/build-package.sh
# output: dist/packages/sip-go-agent-<version>-linux-amd64.tar.gz

The local builder intentionally marks the manifest as not production-approved. Only an externally approved, clean release (source_dirty=false and production_approval=true) may be installed on a Debian 13 amd64 host as root:

tar -xzf sip-go-agent-<version>-linux-amd64.tar.gz
./install.sh

The package contains only the two Go services, their systemd units, production environment templates, the endpoint inventory, the version lock and the installer. Credentials, certificates, broker URLs and the approved static Cell artifact are injected separately. Asterisk is built or installed with the scripts under cell/, and its management-owned configuration is never overwritten.

The production install does not install test scripts, test fixtures, Docker or sudo rules for test tooling.

Test-only tooling

Test dependencies must run in disposable Docker containers. The existing make mq-integration-local target starts a temporary RabbitMQ container, runs the integration tests, and removes the container. Do not install RabbitMQ or other test infrastructure as a host service.

test/nonprod-call-evidence.sh is a host-side capture-first gate for non-production mixed/real calls against native Asterisk. It is deliberately outside the production package and is not a business service. It still fails closed when root, tcpdump, Asterisk or the required system diagnostics are unavailable.

The test directory also contains the offline OSS environment example and the AI fixture. They are test inputs only; they do not authorize external access and are never copied into a production release.