Can you self host an AI agent?
Yes. A self-hosted install is the full Kortix platform, and the sessions it starts run on Platinum sandboxes, off that server. The comparison hub sets it beside the tools that send for you.
Hosting a model is the easy half of a self-hosted sales agent. What decides whether it works is where the CRM credentials and lead data sit, and whether the sandbox can reach your API. Kortix is the open-source AI Operating System. Its install settles reachability before a session starts.
Mode | How you set it | Public URLs | App replicas | Sessions run domain | --domain <domain> | https://<domain> and https://api.<domain> | 2 each of kortix-api, llm-gateway, frontend behind Caddy | yes tunnel | --tunnel cloudflare | The web app stays on http://localhost:13737. Only the API is public, at the tunnel URL. | 1 each | yes local | neither flag | none: every port binds 127.0.0.1 | 1 each | no, the sandbox cannot reach the API
Source: https://kortix.com/docs/host
Run it on Kortix Cloud, in your VPC, or on your own on-prem network.
One Compose stack on your server, a sandbox that calls back, and a key that decides whether a session starts.
Three commands on one host that answers on a public address. The stack runs in one Compose project, and the daily updater pulls new images without a rebuild.
curl -fsSL https://kortix.com/install | bashkortix self-host init --domain kortix.example.com --admin-email you@example.comkortix self-host startSource: https://kortix.com/docs/host
Both records point at the server before the first start, because Caddy needs them to get the certificate. Tunnel mode keeps the web app on the loopback port and publishes only the API.
Create A or AAAA records for kortix.example.com and api.kortix.example.com, plus a wildcard *.p.kortix.example.com for previews.Domain mode is the production setup. Tunnel mode is for evaluation on your own machine.Source: https://kortix.com/docs/host
The control plane sits on your server and the agent computer does not. A Platinum key and a model provider key are both part of what the install needs before it can read a lead.
Every session runs on Platinum, the reference sandbox provider.A Platinum API key (PLATINUM_API_KEY). Without it, sessions do not start.A self-hosted instance has no Kortix-managed models.Source: https://kortix.com/docs/host
A sales agent needs three things from your side: a way into the CRM, the lead data it reads and writes, and the rules on what it may send. Self-hosting puts those on a machine you control, which is the part a security reviewer asks about first. The model is the part you least need to own. Any provider key you add in the project settings serves the same agent, and changing the key leaves the rest of the repo alone. That is why an install can feel finished on the first afternoon and still fail on the first lead: the repository is in place, the agent is configured, the connector is connected, and the callback is missing.
Kortix splits an install in two. The control plane, meaning the web app, the API, the database and the connectors, runs as one Compose stack on your host. Sessions do not. Each one runs on a Platinum sandbox, and that sandbox calls back to your instance's public API URL. Give the instance no public address and the sandbox has nowhere to call: the install finishes, the login page loads, and a session still fails to start. That is the first-day failure worth planning for, and the mode table covers it.
Reachability cuts both ways. A connector call to a private or internal address is refused by default with connector_egress_blocked, so a HubSpot or Salesforce endpoint that only exists inside the office network will not answer until an operator lists it in KORTIX_CONNECTOR_EGRESS_ALLOW_HOSTS. Write that allow-list down on the same day as DNS, before the first failed sync. A self-hosted agent still talks to the CRM through Kortix's connector layer, which keeps its own rules about where a call may go.
The stack exposes two ports through Caddy, 80 and 443, and everything else listens on loopback. One instance directory carries the Postgres database, the stored files and a single .env that holds every secret and signing key, so that directory is both the backup and the thing to guard. Model calls leave the box with the provider key a project holds, and they go to the provider you chose. A sales team can answer the data-residency question from that split alone, without reading a vendor's security page.
Three things a buyer can open before a lead is read. The approval controls decide what the agent may send.
Connector credentials are brokered server-side and never enter the machine.
Credentials are encrypted in the secrets manager and injected at runtime, scoped to the agents you grant them to.
The agent’s persona, skills and permissions are files in the repo.
Short answers on what the install needs, and on what the bill covers.
Yes. A self-hosted install is the full Kortix platform, and the sessions it starts run on Platinum sandboxes, off that server. The comparison hub sets it beside the tools that send for you.
Yes. An agent is a file in a project repo, and a person starts a session from the web app, the CLI or Slack. What the repo holds is the short version of the layout.
AiSDR bills $1.50 per person contacted. Kortix bills credits for the agent computer, per second while it runs and nothing while it is stopped, and a self-hosted instance still needs a Platinum key and your own model provider key.
Start with one sales agent and one rule on the CRM call, on a server the sandbox can reach.