EnterChat: An Open-Source End-to-End Encrypted Messaging Platform
Описание и применение
EnterChat – полностью самодостаточная платформа для защищённого обмена сообщениями с клиентской реализацией X3DH‑подобного шифрования, сервером на Node.js/TypeScript, PostgreSQL‑базой и Docker‑средой.
Задача
Building a secure messenger that keeps message contents unreadable by the server while supporting real‑time delivery, offline queuing, media, payments, and moderation.
Результат
EnterChat delivers a fully functional, self‑hostable messenger with end‑to‑end encryption, real‑time messaging, media handling, payments, and moderation, all backed by a clean architecture and comprehensive database migrations.
Рабочий процесс
- Set up Docker environment and run postgres/redis containers
- Install backend dependencies and start API gateway (REST on :3000, WebSocket on :3001)
- Install Flutter dependencies and run the mobile app
- Use phone number + OTP flow for authentication
- Send encrypted messages via WebSocket with idempotent clientMessageId
- Receive real‑time updates and delivery receipts
- Upload media via presigned S3 URLs
- Process payments through Razorpay/Stripe
- Moderate content and manage blocked contacts
Доказательства
EnterChat is a complete, self-hostable messaging platform — a Flutter mobile app, a Node.js/TypeScript API gateway, and a PostgreSQL backend — built with real end-to-end encryption (X25519 key exchange + AES-256-GCM)
The standout file is lib/core/security/e2e_crypto_engine.dart (~11KB). It implements an X3DH-inspired key exchange
The API gateway is a Node.js/TypeScript backend built on Express with a hexagonal architecture
The database: 19 migrations covering users, devices, sessions, contacts, chats, partitioned messages, media, groups, calls, notifications, audit logs, OTP verifications, social features, push tokens, delivery receipts and E2EE key-bundle tables, and payments/monetization
- Дата записи: 2026-10-12T22:56:00.754Z