# MeshVPN Coordinator Server The Coordinator Server is the central brain of the MeshVPN network. It handles node registration, peer signaling, and provides STUN services for NAT traversal. ## Features - **Integrated STUN Server**: Helps clients discover their public endpoints. - **Node Coordination**: Manages public keys and virtual IP assignments. - **Signaling**: Facilitates UDP hole punching between peers. - **Web Dashboard**: (Coming soon) Visualization of the mesh network. ## Installation ### Prerequisites - [Go](https://go.dev/dl/) (1.21+) - [Redis](https://redis.io/download) (For real-time node state) - [PostgreSQL](https://www.postgresql.org/download/) (For identity and ACLs) ### Setup 1. **Clone the repository** 2. **Install dependencies**: ```bash go mod tidy ``` 3. **Configure Environment**: Create a `.env` file with: ```env REDIS_ADDR=localhost:6379 POSTGRES_URL=postgres://user:pass@localhost:5432/meshvpn STUN_PORT=3478 COORD_PORT=50051 ``` 4. **Run the server**: ```bash go run main.go ``` ## API Endpoints - **STUN**: UDP port 3478 - **gRPC Coordinator**: TCP port 50051