Guide
Can you keep AI coding tool usage data on your own servers?
Yes, two ways. Run the whole thing yourself: three containers on your own hardware, agents pointed at your internal hostname, and no outbound connection to any vendor at any point. Or skip vendors entirely and collect the tools' own OpenTelemetry into a store you already run. Both keep every byte inside your network.
What has to be true for the data to genuinely stay yours
On-prem is a label, and plenty of products wear it while still talking to their vendor. Before you accept any answer, including ours, work through this list with the vendor's engineer rather than their account manager.
- Does the backend make any outbound connection at all, ever? Not "is telemetry off by default", but is there any code path that opens a socket to the vendor.
- Is there a licence check? A licence server is an outbound connection with a business reason attached, and it is the most common reason an air-gapped deployment fails on day one.
- Does it check for updates against the vendor? If it does, that is a connection and a fingerprint.
- Where does the endpoint agent send data, and can that be pointed at a hostname you control? If the agent has a vendor domain compiled into it, nothing else on the list matters.
- Does the dashboard authenticate against anything of the vendor's, or is identity entirely yours?
- Will it run with egress blocked at the firewall? That is the test, and the answer is either yes or the deployment is not what you were sold.
How to verify it rather than believe it
All four of these are cheap, and any vendor who resists them has told you something.
- Block outbound traffic from the container's network and run it for a week. Nothing should degrade.
- Watch egress the boring way, with netstat, firewall logs or a network policy, and look at what actually opens.
- Read the agent's source, if it has any. The component running on an engineer's laptop is the one your security team will ask about, and reading it is the only answer that does not require trusting anyone.
- Try an air-gapped install. Not as a proof of concept, as a test: if the install path assumes a registry pull from the internet, you have found the dependency.
The route with no vendor at all
Worth putting first, because for some teams it is the correct answer and nobody will tell them so. Claude Code and Codex CLI both export OpenTelemetry to an endpoint you nominate. If you already run a collector and a metrics store, you can have Claude Code usage flowing into infrastructure you own by the end of the afternoon, with no third party involved and nothing to procure.
That is the maximal version of keeping data on your own servers, and it costs nothing but time. What you take on is the config distribution to every machine, a second and third integration for the tools that do not speak OTel the same way, the storage and cardinality decisions, and the dashboards. If your platform team already exists and has capacity, that is a good trade.
What Synopt self-hosted actually is
Three containers via Docker Compose, plus one agent per Mac. That is the whole operational footprint: no message broker, no cache server, no separate worker.
| Component | What it is |
|---|---|
| Backend container | A single Go binary with the ingest API and the processing pipeline. Holds no state of its own: everything is in Postgres |
| Database container | PostgreSQL with the TimescaleDB extension, managed by you. Background jobs run in-process on a timer, which is why there is no Redis in the diagram |
| Dashboard container | The Next.js dashboard on its own Node process, the only container you expose to browsers |
| Agent, per Mac | Signed installer or one CLI command, pointed at your backend's internal hostname |
Against the checklist above: no phone-home, no vendor telemetry, no update check against us, and no licence check of any kind, because there is no licensing code in the backend to check anything. Agent updates are served by your own backend or your MDM. It runs air-gapped, and you can verify that by watching the container's egress rather than by trusting this paragraph.
Agent to backend traffic is HTTPS over your internal network, authenticated with a per-agent bearer token that is stored only as a hash.
EU hosting and self-hosting are different questions
These get conflated constantly, usually by someone trying to sell one as the other. Synopt Cloud runs on Hetzner in Germany, inside the EU, so an EU customer does not need to self-host to keep data in the EU. Self-hosting is the answer to a stricter requirement: telemetry may not leave our network at all, or we cannot accept a processor relationship with a vendor this early.
Those are different constraints with different owners. Work out which one you actually have before you take on the operational cost of the stronger answer.
What you give up by self-hosting
- It is not self-serve. There is no self-hosted signup and no public download of the backend: it is sold with a support agreement, and that is stated up front rather than discovered at the end of a trial.
- You own the operations. Upgrades, backups, Postgres, TLS, uptime and the retention job are yours.
- The backend and dashboard are not open source. The agent is, under Apache-2.0, and it is the only component that runs on an employee's machine. If your evaluation requires source access to the backend, raise it early.
- You serve agent updates. No vendor update channel means no vendor dependency, and it also means the distribution is your job.
What self-hosting does not change
The limits travel with the product. Self-hosted or hosted, the agent is macOS only, so Windows and Linux engineers are not covered. There is no alerting of any kind in either deployment: findings appear in the dashboard and nothing notifies you. There is no SSO or SAML. Synopt has never been SOC 2 audited or penetration tested, and running it on your own hardware does not change that, it only changes who the audit would be about.
Capture is the same three tools in both cases: Claude Code, Codex CLI and Cursor IDE. Not Cursor CLI, not GitHub Copilot, not ChatGPT.
Questions people actually ask
- Can AI coding tool usage data be kept entirely on our own servers?
- Yes. Either run the product yourself, which is three containers and one agent per Mac with no outbound connection to any vendor, or collect the tools' own OpenTelemetry into infrastructure you already run. The second option involves no vendor at all and is genuinely the right answer for some teams.
- Does a self-hosted deployment phone home?
- It should not, and you should test rather than trust. Synopt's self-hosted backend makes no outbound connection to us: no telemetry, no update check, and no licence check, because there is no licensing code to make one. Block egress at the firewall and run it for a week. That is the test that settles it.
- Does self-hosting run air-gapped?
- Yes. There are no runtime dependencies on external services, and agent updates are served by your own backend or your MDM rather than by a vendor channel. Plan the install itself, though: an air-gapped environment needs the container images brought in deliberately.
- Do EU companies need to self-host?
- Not for data residency. Synopt Cloud runs on Hetzner in Germany, so data stays in the EU on the hosted deployment. Self-hosting is the answer for a stricter constraint: telemetry that may not leave your network, or a procurement position that cannot accept a processor relationship yet.
- Is the self-hosted backend open source?
- No. The agent is Apache-2.0 and public, which matters because it is the only component that runs on an employee's Mac. The backend and dashboard are shipped as images and binaries under a commercial agreement. If backend source access is a requirement for you, say so early and you will get a straight answer.
Before you plan a deployment, the hosted demo renders the overview, security and cost views on sample data, from the same dashboard build you would run yourself. Open the live demo
Read next
Published 2026-09-08. Last updated 2026-09-08.