87 lines
3.0 KiB
Markdown
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. |