Skip to content

MiniSharkCraft/Veyluro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Veyluro

β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—     β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘
β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β•    β•šβ–ˆβ–ˆβ•”β•  β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘
 β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•
  β•šβ•β•β•β•  β•šβ•β•β•β•β•β•β•   β•šβ•β•   β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•
           V E Y L U R O   Β·   W A T E R   &   D R A G O N

"Veil your privacy. Let the dragon flow."

End-to-End Encrypted Messenger - Mobile Β· Desktop Β· Server Web

Go React Expo Wails


What Is Veyluro?

Veyluro lΓ  nền tαΊ£ng nhαΊ―n tin zero-knowledge, end-to-end encrypted cho mobile + desktop. Server chỉ lΖ°u encrypted bundle vΓ  metadata giao vαΊ­n, khΓ΄ng giα»― private key để đọc nα»™i dung tin nhαΊ―n.

  • Mobile - React Native + Expo
  • Desktop - Wails v2
  • Backend - Go + Chi + MySQL/MariaDB + WebSocket hub
  • Web runtime - static bundle được serve tα»« packages/server/cmd/server/web

Messages được mΓ£ hΓ³a client-side bαΊ±ng AES-256-GCM. Session key mα»—i tin nhαΊ―n được wrap theo tα»«ng recipient bαΊ±ng RSA-2048-OAEP.


Current State

  • apps/mobile lΓ  mobile app chΓ­nh
  • apps/desktop/wails-app lΓ  desktop app chΓ­nh
  • apps/android-native lΓ  hΖ°α»›ng native song song (work-in-progress)
  • shared crypto/types nαΊ±m ở packages/common
  • server API + realtime nαΊ±m ở packages/server

Security Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  SENDER DEVICE                   β”‚
β”‚                                                  β”‚
β”‚  plaintext -> AES-256-GCM -> ciphertext          β”‚
β”‚                      ^                           β”‚
β”‚           ephemeral session key (random)         β”‚
β”‚                      β”‚                           β”‚
β”‚      RSA-OAEP wrap x N recipients                β”‚
β”‚      sessionKeys = { userId: encryptedKey, ... } β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚  { sessionKeys, payload }
                      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚               GO SERVER (BLIND)                  β”‚
β”‚                                                  β”‚
β”‚  Stores encrypted bundles and metadata.          β”‚
β”‚  Forwards via WebSocket hub.                     β”‚
β”‚  Cannot read message plaintext.                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚  same bundle
                      β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                RECIPIENT DEVICE                  β”‚
β”‚                                                  β”‚
β”‚  sessionKeys[myId] -> RSA-OAEP unwrap            β”‚
β”‚                              β–Ό                   β”‚
β”‚             session key -> AES-256-GCM decrypt   β”‚
β”‚                              β–Ό                   β”‚
β”‚                        plaintext                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Storage

Platform Storage Backed by
Web bundle runtime IndexedDB (idb) Browser origin
Desktop (Wails) IndexedDB WebView storage
Mobile expo-secure-store Android Keystore / iOS Keychain

Monorepo Structure

veyluro/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ mobile/
β”‚   β”œβ”€β”€ desktop/wails-app/
β”‚   └── android-native/
β”œβ”€β”€ packages/
β”‚   β”œβ”€β”€ common/
β”‚   └── server/
β”œβ”€β”€ docs/
└── scripts/

Features

Feature Status
End-to-end encrypted DM βœ…
End-to-end encrypted group chat βœ…
Realtime WebSocket delivery βœ…
Friend system βœ…
Pending messages βœ…
Notes / ephemeral content βœ…
Google OAuth βœ…
TOTP 2FA βœ…
Passphrase key recovery βœ…
User blocking βœ…
Admin moderation tools βœ…
Avatar upload to Cloudflare R2 βœ…
Mobile client βœ…
Desktop client βœ…

Build And Run

Requirements:

  • Node.js 20+
  • pnpm 9+
  • Go 1.23+
  • MySQL 8+ hoαΊ·c MariaDB 10.6+

Common commands:

pnpm install
npm run dev:mobile
cd apps/desktop/wails-app && /home/congmc/go/bin/wails dev
cd packages/server && go run ./cmd/server

Release examples:

# Android
cd apps/mobile/android && ./gradlew clean assembleRelease

# Wails Linux
cd apps/desktop/wails-app && /home/congmc/go/bin/wails build

# Wails Windows portable + installer
/home/congmc/go/bin/wails build -platform windows/amd64
/home/congmc/go/bin/wails build -platform windows/amd64 -nsis

Web reCAPTCHA (web-only)

reCAPTCHA chỉ Γ‘p dα»₯ng cho auth flow cα»§a web runtime:

  • register
  • login
  • forgot-password
  • reset-password

BαΊ£n mobile/desktop khΓ΄ng bα»‹ Γ©p captcha.

Env cαΊ§n set:

  • Server: RECAPTCHA_SECRET_KEY
  • Frontend web: VITE_RECAPTCHA_SITE_KEY

Configuration

Xem cΓ‘c file template:

  • packages/server/.env.example
  • apps/mobile/.env.example
  • apps/desktop/wails-app/frontend/.env.example

KhΓ΄ng commit .env runtime secrets hoαΊ·c keystore vΓ o public repo.


Documentation

About

πŸ›‘οΈAMoon Eclipse - The Paranoid Chat App Secure Real-time Chat built with Golang & React Native. High-integrity architecture featuring JNI Checksum Verification & HMAC Signing to nuking malicious clones. πŸš€

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors