Please report security issues privately to marina.lune93@proton.me. Do not open public issues for undisclosed vulnerabilities. We aim to acknowledge reports within 72 hours.
Switchboard handles customer message data and provider (Telegram) account sessions. Before deploying:
- Generate real secrets.
SESSION_SECRET,TELEGRAM_SESSION_KEY, andINTERNAL_SECRETmust each be a unique 32-byte value (openssl rand -hex 32). The app refuses to start in production if any of them is unset or left at the build-time placeholder (seesrc/lib/security/secret-guard.ts). - Never commit a real
.env. Only.env.example/.env.production.example(placeholders) belong in version control. A.gitleaks.tomlconfig is provided; wire it into a pre-commit hook / CI. - Set strong seed passwords. Seeding a production database requires
SEED_ADMIN_PASSWORD/SEED_CS_PASSWORD; the seed script throws otherwise. Change the admin password on first login. - Put the app behind a trusted proxy and set
TRUSTED_PROXY_HOPSto match your topology, so rate-limiting and audit logs use a trustworthy client IP. - Keep internal services private. The bridge worker (3001) and the voice
gateway/helper (3002/3003) are protected only by
INTERNAL_SECRETand must sit on a private network — never expose them publicly. - Never commit database dumps, logs, screenshots, or media — they can
contain real personal data. They are excluded by
.gitignore.
- Client-side anti-copy / watermark overlays are deterrents, not access controls.
- Operating automated Telegram user accounts may be subject to Telegram's Terms of Service; review them for your use case before deploying.