40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# 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
|