Security & architecture
Built in the EU, scoped per workspace, honest about AI.
This page describes the system as it runs today — what talks to what, where the data sits, and which controls stand between a visitor’s message and anyone who should not see it. If something here does not match what you find, tell us and we will fix the system or the page.
How the pieces fit
A message from your website travels through five layers. None of them is reachable from the internet except the first.
Layer 1
Web app · cybix.app
Next.js, server-rendered
Dashboard, marketing site, messenger widget page and the WordPress/mobile hand-offs. Every browser call goes through this layer; it never exposes the API directly.
Layer 2
API · FastAPI
Python, workspace-scoped
Conversations, contacts, tickets, knowledge, billing. Every request carries a signed token naming the user and the workspace; queries are filtered on that workspace.
Layer 3
Realtime gateway
WebSockets + push
Delivers new messages to the dashboard, the mobile app and the widget. Payloads carry only what the recipient is entitled to see.
Layer 4
BIX · AI agent
Retrieval + model call
Answers are grounded in your own crawled knowledge base, kept as per-workspace documents on our servers. Only the current conversation and the retrieved snippets are sent to the model provider.
Layer 5
Data
Per-deployment database + volumes
Each workspace has its own database file for conversations, contacts, tickets and inboxes, and its own knowledge-base directory; the main database holds only accounts and billing. White-label and reseller customers get their own stack and volumes on top of that. Everything stays on the same EU volume.
Where your data lives
At rest
Hetzner data centres in Germany and Finland. The contractual processing location is the EU/EEA only; a transfer elsewhere would need your prior consent under the DPA.
In flight to providers
The AI model provider receives the conversation text needed for a reply; translation and transcription providers receive only the text or audio being processed. The full, versioned list is on the sub-processor page.
Self-hosted
Licence customers run the same container stack on their own infrastructure. Nothing leaves their network except the provider calls they configure themselves.
Controls
Identity and access
- Passwords are stored as scrypt hashes (N=2^14), never in plain text; sign-in with Google or SSO stores no password at all.
- Google sign-in is accepted only for verified email addresses, so an unverified address cannot claim an existing account.
- Sessions are HttpOnly, secure cookies. API tokens are signed JWTs that carry the user, role and workspace; a token from one workspace cannot read another.
- Roles: owner, admin, agent and lite. Platform-level access is checked against the database on every request, so a demoted account loses it immediately.
Tenant isolation
- Conversations, contacts, tickets and inboxes live in a separate database file per workspace: a request is attached to exactly one workspace's file, so another workspace's rows are not merely filtered out — they are not on the connection at all. Knowledge documents are stored in a separate directory per workspace, so BIX can only retrieve from the workspace it is answering for.
- Visitors talking to the messenger get their own token bound to a single conversation. They cannot enumerate or read other conversations.
- White-label and reseller deployments run as separate stacks with separate databases and volumes — isolation is physical, not just a WHERE clause.
Encryption and transport
- All traffic is TLS (Let's Encrypt certificates, renewed automatically at the edge proxy). Internal services are not published to the internet.
- Voice and video calls are streamed peer-to-peer over WebRTC (DTLS-SRTP) with no media relay provider in between, and are not recorded unless your workspace enables call transcripts.
- Secrets (API keys, signing secrets, provider credentials) live only in environment configuration on the server — never in source code, never in logs.
AI safeguards
- BIX is always labelled as an AI agent in the widget and greets visitors as such — the EU AI Act Art. 50 disclosure ships by default and cannot be switched off.
- A human can take over any conversation; the visitor can ask for one at any time. Handover pauses the bot for that thread.
- Answers are grounded in the customer's own content. Conversation text is sent to the model provider only to produce the reply and is not used by us to train models.
- Workspaces handling sensitive data can enable restricted mode: message content never appears in list previews or notifications, only in the thread itself.
Operations
- Hosting on Hetzner Online GmbH data centres in Germany and Finland, certified to ISO 27001 and BSI C5 Type 2, under a signed GDPR Art. 28 DPA.
- Deployments are reproducible container stacks; the same image runs on cybix.app and on self-hosted installs.
- Server logs (IP, timestamp, endpoint) are kept for 30 days for security and troubleshooting.
- Deleting a workspace erases its conversations, tickets, contacts and knowledge documents immediately and irreversibly.
Compliance, stated precisely
| Framework | What holds | Evidence |
|---|---|---|
| GDPR / AVG | CYBIX is your processor; you stay the controller of your customers’ data. | Data Processing Agreement · Privacy policy |
| Hosting certifications | ISO 27001, BSI C5 Type 2 and § 8a BSI-KritisV are held by Hetzner Online GmbH for the data centres CYBIX runs in. CYBIX itself does not hold an ISO certificate. | Hetzner DPA v1.2 (signed 26 Aug 2026), Appendix 2 TOMs · annual independent TOM audit |
| EU AI Act (Regulation 2024/1689) | BIX is a limited-risk AI system; the Art. 50 disclosure, human handover and logging are built in. Customers deploying BIX for Annex III purposes take on high-risk obligations. | AI Act statement |
| Data residency | Storage and processing in the EU/EEA; named non-EU providers only for the steps listed, under SCCs or the EU-US Data Privacy Framework. | Sub-processors |
Reporting a vulnerability
Write to support@cybix.app with “Security” in the subject. We confirm receipt within two working days, keep you informed, and do not pursue researchers who test in good faith and stay within their own accounts.