Files
VDR/README.md

87 lines
3.0 KiB
Markdown

# VirtualDDNSRouter (VDR)
VirtualDDNSRouter (VDR) is a lightweight dynamic DNS router solution that consists of two components:
- **Client**: Updates the server with the current IP address of a service
- **Server**: Acts as a reverse proxy that redirects requests to the correct IP address
This solution is particularly useful for accessing services running on dynamic IP addresses through consistent URLs.
## Quick Start (Recommended Method)
The easiest way to use VDR is by downloading the pre-built binaries:
1. Download the latest release for your platform from [https://git.mahdium.ir/mahdium/VDR/releases/latest](https://git.mahdium.ir/mahdium/VDR/releases/latest)
2. Extract the archives for both client and server
3. Configure each component using the provided examples
4. Run the server and client applications
## Components
- [Client Documentation](VirtualDDNSRouter.Client/README.md) - For updating IP addresses
- [Server Documentation](VirtualDDNSRouter.Server/README.md) - For routing requests
## Architecture
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ VDR Client │ │ VDR Server │ │ Service │
│ │ │ │ │ │
│ • Periodically │◄──────►│ • Maintains IP │◄──────►│ • Running on │
│ updates IP │ │ mappings │ │ dynamic IP │
│ with server │ │ • Redirects to │ │ • Exposes port │
│ │ │ correct IP │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────┐
│ User │
│ │
│ • Accesses │
│ service via │
│ consistent │
│ URL │
└─────────────────┘
┌─────────────────┐
│ VDR Server │
│ │
│ • Redirects to │
│ current IP │
└─────────────────┘
```
## Alternative Deployment Methods
### Using Docker
You can also run VDR using Docker:
```bash
# Build the images
docker-compose build
# Run the services
docker-compose up
```
See the [compose.yaml](compose.yaml) file for details.
### Building from Source
If you prefer to build from source:
```bash
# For the server
cd VirtualDDNSRouter.Server
dotnet build
dotnet run
# For the client
cd VirtualDDNSRouter.Client
dotnet build
dotnet run
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.