AXIOM External Communication Specification
Scope: Production self-hosted deployment via docker-compose.prod.yml
1. Container Architecture
AXIOM consists of the following Docker containers running entirely on your own host machine:
- Web Dashboard (Next.js): Exposed on host port 3001.
- Backend API (Go): Exposed on host port 8081. Handles authentication, job orchestration, and local cryptographic license verification.
- Autonomous Test Runner (Python / Playwright / Maestro): Communicates only inside the internal Docker network.
- PostgreSQL / Redis / MinIO: Bound strictly to host 127.0.0.1 and inaccessible from external networks.
All target URLs, login credentials, test code, DOM snapshots, recorded videos, and screenshots are stored exclusively inside your local PostgreSQL and MinIO volumes.
By default, ports 3001 and 8081 listen on host network interfaces. Restrict inbound access via your host firewall or security group if not intended for external access.
2. External Network Connections
Configured AI Provider (OpenAI / Google / Anthropic)
Timing: Only when AI generation, repair, or analysis features are triggered
Sends the scenario prompt, test code, and DOM context required for AI generation or self-healing. When an internal Ollama endpoint is configured, all AI traffic remains 100% within your internal network.
api.axiom-qa.dev
Timing: Once every 24 hours
Sends anonymous aggregate counters (instance ID, license ID, version, OS, CPU architecture, uptime, total run/feature/defect counts, and AI provider type—never URLs, credentials, or test contents). Set AXIOM_TELEMETRY_DISABLED=true in .env to disable completely.
Target System Under Test
Timing: During test execution
The runner container accesses the target web application or API you specified.
ghcr.io / Docker Hub
Timing: During container image pull / update
Used when pulling or updating container images. For air-gapped environments, pre-load the container images onto the host.
3. Offline License Key Verification
Each license key (AXIOM-LIC-...) carries an Ed25519 digital signature from the operator and is verified locally using the public key embedded in the Go API binary. No external network call is required to verify a license key.
When daily telemetry is enabled, the response also checks whether the license key has been revoked.
