Signed site configs
Ed25519-signed configs for every registered site, locked to their allowlisted domains. Extending the allowlist — staging, subdomains, alternate domains — is a one-command change we hand over.
Deployment
There is no self-serve install to figure out. Observer is deployed in one guided session — our engineers alongside your DevOps team, on your hardware. Source access follows NDA and licensing; the deployment itself is deliberately short.
The onboarding session
Every step below is executed jointly: we drive, your DevOps team approves, watches and learns the runbooks as they are written.
ClickHouse 24.8, the collector, and the API/dashboard go onto your VPS — or onto yours plus a staging box of ours. Docker Compose for the turnkey path, or bare Node 22 processes under systemd. We size the box with your DevOps and start the services together.
We generate the Ed25519-signed site configs and register your first site — domain-locked to its allowlisted domains. The admin user is created, and TOTP two-factor is switched on together, live in the call.
The ClickHouse schema is applied with TTLs enforced at the storage level: raw events 24 hours, rollups 25 months, recordings 30 days. Then 14 days of golden demo data are seeded, so every screen is alive before your first real visitor arrives.
Your side adds one A record pointing at the server. TLS is set up with your DevOps, and the snippet is domain-locked to your allowlisted domains — the same code pasted on any other site is refused at the collector with a 403.
Your first page view flips the add-website wizard green with a running view count. Then the 6-spec browser privacy suite runs against YOUR deployment — no cookies, zero storage, PII scrubbed end-to-end — and the report is delivered to your DevOps.
Steps 1–3 are usually one session; DNS propagation (step 4) is the only part with waiting built in. The demo data in step 3 is clearly labeled and removable the moment your real traffic starts.
What reaches you in writing
Before onboarding, the only Observer code that ever touches your systems is generic: the datastore container your DevOps may pre-provision, and the one-line snippet your sites carry. Everything beyond these two lines — keys, configs, runbooks — is issued during the session, after NDA.
# step 1 · the datastore — sized and run together with your DevOps docker run -d --name observer-ch -p 127.0.0.1:8124:8123 \ -e CLICKHOUSE_USER=observer \ -e CLICKHOUSE_PASSWORD=******** \ clickhouse/clickhouse-server:24.8 # step 4 · the only line your websites get — domain-locked, async, cookie-less <script async src="https://sa.yourdomain.com/v.js" data-site="obs_XXXX"></script>
Credentials are chosen with your DevOps during the session and never appear in documentation. ClickHouse binds to localhost by default; the collector (:8090) and API/dashboard (:8081) are the only listeners your sites and team need to reach.
After the session
Ed25519-signed configs for every registered site, locked to their allowlisted domains. Extending the allowlist — staging, subdomains, alternate domains — is a one-command change we hand over.
Site tokens, API keys with scopes, RBAC roles for owner · admin · analyst · viewer — plus the operations runbooks written during the session. All stored on your hardware.
A direct channel to the engineers who ran your deploy: monitoring shared, upgrades scheduled as config swaps, the privacy suite re-run at every upgrade.
Bring a VPS and a DevOps engineer. We bring the stack, the keys, the schema and the verification — and the whole thing is alive in one session.