NetChat is a large Java-based communication platform project with:
- encrypted client-server chat
- room-based messaging
- private messages
- moderation tools
- realtime voice and live video signaling
- browser-based admin dashboard
- persistent storage and backup replication
- transfer tracking and cloud-style archival
- optional external API integrations
- Console chat client and Java server
- Embedded browser admin app
- AES/GCM packet encryption
- PBKDF2 password hashing
- audit trail and delivery logging
- VPN/proxy risk heuristics
- room history and transfer persistence
- outbound-only backup replica structure
src/
Main.java
netchat/
client/ Console client, local media controller, video window
server/ Server, moderation, auth, sessions, realtime call signaling
web/ Embedded admin web server
persistence/ Storage, snapshots, backup replication
transmission/ Delivery tracking and archive records
security/ Risk profiling and proxy/VPN heuristics
integration/ Internal integration events/projects
integrations/ External API clients and activation hub
shared/ Models, protocol, crypto, utilities
webapp/
index.html Browser admin app
app.js Dashboard rendering and actions
- user registration and login
- public rooms
- private direct messages
- room history
- system announcements
- encrypted packet transport with AES/GCM
- salted password hashing with PBKDF2
- rate limiting
- blocked-word filtering
- external moderation hook support
- failed login lockout
- VPN/proxy heuristic detection
- mute
- kick
- ban
- audit logging
- admin web actions
- voice call signaling
- live video session signaling
- UDP audio streaming
- live screen-video streaming
Note: the current "video" layer is implemented as live screen streaming with standard Java APIs.
- overview cards
- user management
- room inspection
- call status
- transfer feed
- audit feed
- storage and infrastructure panels
- announcement and moderation actions
- local persistent record files
- encrypted snapshots
- outbound replica sync directories
- transfer logs
- cloud-style encrypted archive objects
At runtime the project writes data into storage/, including:
users.dbmessages.dbaudit.dbnetwork.dbintegrations.dbtransfers.dbsnapshots/cloud-archive/- backup replica directories
The codebase contains optional integration hooks for:
- PostgreSQL
- Redis
- MinIO / S3-style object storage
- Cloudflare Turnstile
- OpenAI Moderation
- Firebase Cloud Messaging
- Twilio Voice
- Elasticsearch
These integrations are compile-safe and optional. They become active only when valid configuration values are provided.
Integrations read configuration from Java system properties or matching environment variables.
Examples:
netchat.postgres.url
netchat.postgres.user
netchat.postgres.password
netchat.redis.url
netchat.minio.endpoint
netchat.minio.accessKey
netchat.minio.secretKey
netchat.minio.bucket
netchat.turnstile.secret
netchat.openai.apiKey
netchat.firebase.projectId
netchat.firebase.bearerToken
netchat.twilio.accountSid
netchat.twilio.authToken
netchat.elastic.endpoint
netchat.elastic.apiKey
Environment variable form:
NETCHAT_POSTGRES_URL
NETCHAT_OPENAI_APIKEY
NETCHAT_TWILIO_ACCOUNTSID
- Java 21 recommended
& "C:\Users\lukas\.jdks\corretto-21\bin\javac.exe" -encoding UTF-8 -d out (Get-ChildItem -Recurse -Filter *.java | ForEach-Object { $_.FullName })Start the application through Main.java.
When launched, you can choose:
- start server
- start client
- show project vision
- chat server: chosen port, default
5000 - web admin app:
port + 1000, for example6000
Bootstrap admin account:
username: admin
password: Admin1234
- This project is a large prototype / platform foundation.
- Several advanced integrations are structurally implemented but still need real credentials and real infrastructure to operate externally.
- The browser app is currently focused on administration and monitoring.
- The main user chat flow is still centered on the Java client/server side.
Copyright (c) 2026 Lukas Pellny. All rights reserved.
NetChat and the source code in this repository are proprietary project material created by Lukas Pellny. Copying, publishing, or reusing substantial parts of this implementation requires prior written permission from the owner.