Security & Privacy
FleetGram is self-hosted infrastructure. Your data lives on your server, under your control. This page documents the data flow, our retention policy, our no-training commitment, the GDPR Article 28 DPA template, and our incident response playbook.
Last updated: 2026-05-23. Owner: security@fleetgram.net.
- ✓Self-hosted. No FleetGram cloud, no SaaS backend, no analytics pings.
- ✓No training on your data. Anthropic API and ElevenLabs contractually exclude API traffic from model training. Telegram never receives the LLM context.
- ✓Retention: 90 days by default. Configurable per topic via
/retention(0 = keep forever, N = N days). - ✓DPA-ready. Article 28 GDPR template (download) and 72-hour breach notification (Article 33).
- ✓Incident response playbook with severity tiers, GDPR notification templates, and a post-mortem checklist (download).
Data flow diagram
FleetGram runs as a single daemon on your server. Every external call leaves from your machine — there is no FleetGram relay in the middle.
┌──────────────────┐ TLS ┌──────────────────┐
│ Telegram user │ ◄──────► │ Telegram Bot API │
└──────────────────┘ └─────────┬─────────┘
│ webhook / polling
▼
┌──────────────────────────┐
│ FleetGram daemon │
│ (your server) │
│ │
│ ┌──────────────────┐ │
│ │ topic-history │ │ ← plain JSON
│ │ topic-memory/ │ │ ← lossless markdown
│ │ state.json │ │ ← settings
│ └──────────────────┘ │
│ │
└─────┬─────────┬──────────┘
│ │
┌─────────┘ └──────────┐
▼ TLS ▼ TLS (optional)
┌────────────────┐ ┌──────────────────┐
│ Anthropic API │ │ ElevenLabs API │
│ (Claude LLM) │ │ or Edge TTS │
└────────────────┘ └──────────────────┘
No FleetGram cloud. No analytics. No telemetry.The daemon spawns a worker subprocess per task. The worker uses Anthropic's Claude Code SDK. Voice synthesis is optional and goes to ElevenLabs (paid) or Microsoft Edge TTS (free default) only when the user explicitly asks for a voice reply.
What leaves your server
| Service | What is sent | Why | Can be disabled |
|---|---|---|---|
| Telegram Bot API | Message text, bot replies, user IDs | Core routing | No — required transport |
| Anthropic API | Conversation context (bounded by retention) + system prompt | LLM inference | Yes — swap to GLM or self-hosted model |
| ElevenLabs API | Bot reply text for TTS | Voice replies | Yes — Edge TTS default, or disable voice |
| Microsoft Edge TTS | Bot reply text for TTS | Voice replies (free default) | Yes — disable voice globally |
Nothing else leaves. No analytics, no telemetry, no usage reporting back to FleetGram. If you grep the source for fetch(, every call goes to one of the four endpoints above.
Where data is stored
Every persistent artifact lives on your server under ~/.claude/PAI/PULSE/:
| Path | Contents | Sensitive? |
|---|---|---|
| data/topic-history.json | Per-topic conversation history | High |
| data/topic-memory/<topic>.md | Extracted long-term memory per topic | High |
| data/topic-bindings.json | Topic → folder mapping | Moderate |
| state/state.json | Settings, retention config, tier info | Low |
| logs/ | Operational logs (no message content) | Low |
We recommend chmod 600 on ~/.claude/.env and ~/.claude/PAI/PULSE/data/, plus full-disk encryption for compliance.
Retention policy
Default conversation retention is 90 days. Messages older than the window are permanently deleted by a daily sweep that runs at startup and every 24 hours. Pruned messages and their compacted summaries are removed atomically from disk.
Per-topic retention is useful when you want a tighter window on sensitive topics (e.g. legal at 14 days) and a longer one on knowledge base topics (e.g. research at 365 days).
On-demand wipe: /clear inside a topic deletes the entire history for that topic immediately.
No training on your data
FleetGram conversations are not used to train AI models.
This applies to the FleetGram codebase, our sub-processors, and any telemetry we collect (there is none).
How the no-training guarantee holds end-to-end:
- FleetGram itself is open-source software you run on your own server. We have no remote access to your conversation data and no backend that could ingest it.
- Anthropic (Claude API) contractually excludes API traffic from model training by default. See Anthropic privacy policy and their commercial terms.
- ElevenLabs Enterprise/paid plans contractually exclude your text from model training. See ElevenLabs privacy policy.
- Microsoft Edge TTS (default voice path) and Telegram Bot API are routed through but never see the LLM context.
To further minimize exposure: keep retention short on sensitive topics, use /clear after one-off confidential conversations, and route through GLM (open-weights via z.ai) or a self-hosted model if you must remove Anthropic entirely.
Encryption
- In transit: TLS 1.2+ on every external call (Telegram, Anthropic, ElevenLabs, Edge TTS).
- At rest: conversation history is plain JSON on disk — we recommend disk-level or filesystem-level encryption (LUKS, FileVault, dm-crypt) for compliance environments. Premium tier offers application-level envelope encryption on request.
- Secrets: bot tokens and API keys live in
~/.claude/.env. Setchmod 600and rotate quarterly.
Authentication & access
- The bot answers only messages from the registered Telegram supergroup. Messages from any other chat are ignored.
- No web login. Telegram is the only control plane. There is no admin dashboard exposed to the public internet.
- Tier-based feature gates run in-process — no external authorization service to compromise.
- SSO/SAML available on Premium tier on request, integrated against your IdP.
GDPR & DPA
FleetGram is infrastructure software you operate. In a team or organizational deployment:
- You act as data controller under Article 4(7) GDPR.
- FleetGram (the software) acts as your data processor.
- Anthropic, ElevenLabs, Telegram, Microsoft are sub-processors. Maintain DPAs with each.
We provide a fillable DPA template aligned with Article 28 GDPR. It covers nature of processing, retention, technical and organizational measures (Article 32), sub-processor list with cross-border transfer mechanisms, breach notification (Article 33), and audit rights.
Data subject rights (GDPR Chapter III): erasure via /clear, access/portability via JSON export of topic-history.json, restriction via /retention 0.
Incident response
Our playbook follows GDPR Article 33–34 timelines and ISO 27001 A.16 procedures. It defines four severity tiers (P1 critical → P4 low), each with response-time SLAs, and contains template notifications for supervisory authorities and data subjects.
| Severity | Example | Response time |
|---|---|---|
| P1 Critical | Active data exfiltration, bot token leaked, history exposed | < 1 hour |
| P2 High | Unauthorized access suspected, anomalous API usage | < 4 hours |
| P3 Medium | Misconfiguration, no confirmed exposure | < 24 hours |
| P4 Low | Hardening needed, no active risk | < 7 days |
Breach notification timeline: supervisory authority within 72 hours (Article 33), data subjects “without undue delay” when high risk is likely (Article 34).
Vulnerability disclosure
Report security issues to security@fleetgram.net or open a GitHub issue with the security label.
- Acknowledgment within 48 hours.
- Patch within 7 days for critical issues.
- Coordinated disclosure preferred — we credit researchers in the changelog unless requested otherwise.
PGP key available on request. No bug bounty at this stage, but we are happy to provide a public acknowledgment and a written confirmation for your portfolio.
Downloads
Security questions before you sign?
Book a 30-min security review. We'll walk your team through the data flow, answer DPA / SCC questions, and pre-fill the template against your controller details.