Initial commit: split VNOX monorepo into VNOX-Server

Unified server binary (vnox-serverd) combining:
- Gateway (TCP, auth, channels, sessions, SQLite)
- Voice-node (UDP relay, Opus, jitter buffer)

Standalone gateway (vnox-gateway) and voice-node (vnox-voice-node) preserved as sub-crates.
This commit is contained in:
loki5512344 2026-07-09 11:52:56 +02:00
commit e751e0bf5b
94 changed files with 9771 additions and 0 deletions

32
.github/.github/ISSUE_TEMPLATE/bug.md vendored Normal file
View file

@ -0,0 +1,32 @@
---
name: Bug report
about: Something is broken
labels: bug
---
## What happened
<!-- Describe the bug clearly -->
## Expected behavior
<!-- What should have happened -->
## Steps to reproduce
1.
2.
3.
## Environment
- OS:
- VNOX version:
- LNEx version:
- Install method: Docker / systemd / binary / built from source
## Logs
```
paste relevant log lines here (VNOX_LOG=debug)
```

View file

@ -0,0 +1,25 @@
---
name: Protocol change proposal
about: Propose a change to LNEx protocol
labels: protocol
---
## Summary
<!-- One paragraph: what changes and why -->
## Motivation
<!-- What problem does this solve? -->
## Proposed change
<!-- Be specific: packet format, new packet type, behavior change -->
## Backward compatibility
<!-- Is this a breaking change? How should old clients/servers behave? -->
## Alternatives considered
<!-- What else did you consider? -->

68
.github/.github/repo-metadata.md vendored Normal file
View file

@ -0,0 +1,68 @@
# Vnox Repository Metadata
## Description
Self-hosted realtime voice and chat platform. Decentralized, lightweight, and moddable. Built on LNEx, a custom protocol for low-latency federated communication. Not Discord. Not TeamSpeak. Not cloud.
## Topics / Tags
- communication
- voice-chat
- rust
- self-hosted
- decentralized
- real-time
- low-latency
- protocol
- federated
- lightweight
- moddable
- open-source
- p2p
- networking
- gateway
- voice-relay
- chat
- lnex
## Short Descriptions
### Primary (for GitHub repo description)
Self-hosted realtime voice and chat on a custom low-latency protocol. Decentralized, lightweight, and extensible.
### Secondary Options
- Decentralized alternative to Discord for self-hosted deployment
- Low-latency federated communication platform with custom LNEx protocol
- Open-source voice and chat server written in Rust
## Key Features
- Self-hosted deployment
- Decentralized architecture
- Real-time voice and text communication
- Low-latency protocol (LNEx)
- Lightweight footprint
- Extensible/moddable design
- Federation support (Phase 3 roadmap)
- Desktop client with egui UI
- SQLite/PostgreSQL backend support
## Technology Stack
- **Language**: Rust (99.6%)
- **Protocol**: LNEx (custom)
- **Audio**: Opus codec
- **Database**: SQLite (with PostgreSQL support planned)
- **UI**: egui (desktop client)
- **Transport**: TCP (gateway), UDP (voice relay)
## Current Status
- Phase 1: Implemented, not production-ready
- Gateway: ✅ TCP listener, LNEx handshake, channels, chat, SQLite
- Voice node: ✅ UDP relay, voice packet routing
- Desktop client: ✅ egui UI, net layer, audio pipeline (partial)
- LNEx protocol: ✅ Specified and implemented
- Federation: 🔄 Planned (Phase 3)
- Mobile client: 🔄 Planned (Phase 3)
⚠️ **Security Warning**: Traffic in v0.1.x is unencrypted plaintext. Do not use in production.
## License
- **Code**: GPL-3.0
- **Protocol**: CC0 (Public Domain)

47
.github/.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,47 @@
name: CI
on:
push:
branches: [main, dev]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Install system deps
run: sudo apt-get install -y libasound2-dev libopus-dev pkg-config
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: cargo fmt
run: cargo fmt --all -- --check
- name: cargo clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: cargo build
run: cargo build --all
- name: cargo test
run: cargo test --workspace