Monsoon is a secure, scalable, end-to-end encrypted messaging platform designed with a zero-trust architecture. It features client-side key generation and cryptographic operations to ensure that raw passwords and private keys never leave the user's device.
- Backend:
Go, Gin, NATS, WebSocket, PostgreSQL (Citus) - Frontend:
TypeScript, React, Web Crypto API - Cryptography:
TweetNaCl, Ed25519, X25519, AES-GCM, Argon2
TODO: Write features
Run dev server
yarn dev
Build
yarn build
Make sure to change directory into server/ before running these commands.
Generate DB schema (will extend for migration later)
./run_migrations.sh
Regenerate Swagger docs
go install github.com/swaggo/swag/cmd/swag@latest
./generate_docs.sh
Generate mocks
go install github.com/golang/mock/[email protected]
./generate_mocks.sh
Start the API server
./start_server.sh
API Docs at http://localhost:9000/swagger/index.html
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
