Skip to main content

Self-Hosting

Most customers use Achilles as a managed service. If your policies require it, you can run the platform in your own cloud account or data center, so conversations, credentials, and audit records stay inside your boundary. This page gives your infrastructure team the shape of the deployment. Your Achilles contact provides the container images and detailed setup guide.

Components​

ComponentRoleNotes
Agent APIRuns agents, enforces permissions, serves every clientThe only component the others depend on. Needs WebSocket support for voice and streaming.
ConsoleWeb app where your team builds, tests, and monitors agentsStatic site pointing at the API
WidgetThe chat script you place on your websitesOne static file
PostgreSQLAgent definitions and versions, sessions, audit records, encrypted credentialsRequired for production
RedisShort-lived conversation history, pending approvals, message queuesRequired for production message channels
AI model providerReasoning and languageHosted provider or a model you run yourself

Requirements​

  • A container platform or virtual machine able to run a long-lived Node.js 20 or later service.
  • A managed or self-run PostgreSQL database with a pooled connection string.
  • Redis with TLS for production.
  • Outbound HTTPS to your model provider, unless the model is self-hosted, and network access to the systems the agent reads.
  • Static hosting for the console and widget, or any web server.
  • A secrets manager for the keys listed below.

For a trial with no database or model account, the platform can run in a demo mode with canned answers and read-only sample agents. Do not use this for real users.

Configuration overview​

Configuration is by environment variables on the API. Generate each secret once with a strong random generator and store it in your secrets manager.

SettingPurpose
End-user signing secretSigns and verifies user tokens. The API will not start without it.
Console signing secretSigns console logins. Must differ from the one above.
Admin API keyLets automation reach admin endpoints. In production, admin calls are refused when it is unset.
Database URLWhere the platform stores its own data
Redis URLConversation state and queues
Credential encryption keyEncrypts datasource credentials you enter in the console
Model provider keys and model listWhich AI providers are enabled
Allowed originsWebsites and console addresses allowed to call the API
Console API addressSet when building the console. Rebuild if the API moves.

Your own business databases are not configured here. Your workspace admin enters those in the console under Datasources, where they are encrypted. See Integration overview.

Deploy targets​

PieceTypical target
Agent APIA container service on your cloud, or a Kubernetes deployment. Port 3100, health path /health.
PostgreSQLYour managed database service
RedisYour managed cache service, over TLS
Console and widgetStatic hosting or a CDN
Background workersRun inside the API by default. For heavy messaging traffic, run the same image as a separate worker against the same Redis and database.

Deployment order that works well: create the database and load the schema, set secrets and the model provider, start the API and check health, enter datasource credentials, then publish the console and widget and add their addresses to the allowed origins.

Health checks​

The API exposes a no-login health endpoint. Use it as your container health check and as a deploy gate.

curl https://api.example.com/health

A healthy response reports an ok status, and for each agent a health score and whether it is ready to deploy. After deploying:

  1. Health reports every agent as ready.
  2. Sign up in the console as the first operator, which also creates your first workspace.
  3. Send a message in the Playground.
  4. Confirm the session appears in Monitor.
  5. Edit an agent and publish to confirm reload works.

Operating tips​

  • Free-tier hosts sleep when idle. Ping the health endpoint every 10 to 14 minutes, or use an always-on plan.
  • Audit records grow steadily. Plan retention and pruning with your compliance team.
  • Rotate the admin key and signing secrets on your normal schedule. Rotating the console secret signs everyone out.
  • Without Redis, conversations do not survive a restart and queued messages are not retried.
  • Schema updates are applied by re-running the provided setup script, which is safe to repeat.