Initial commit: DDNS service with NIC V2 protocol support

Features:
- Token-based subdomain claiming
- NIC V2 (DynDNS2) protocol implementation
- Technitium DNS integration
- Rate limiting (10 req/min IP, 1 req/min token)
- Web UI for space claiming
- Docker/Docker Compose support
- Compatible with UniFi, pfSense, EdgeRouter

Module: git.dws.rip/DWS/dyn
This commit is contained in:
2026-02-01 16:37:09 -05:00
commit 2470f121e2
16 changed files with 1835 additions and 0 deletions

29
docker-compose.yml Normal file
View File

@@ -0,0 +1,29 @@
version: '3.8'
services:
dyn:
build: .
container_name: dyn-ddns
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/data
environment:
- SERVER_PORT=8080
- DATABASE_PATH=/data/dyn.db
- TECHNITIUM_URL=${TECHNITIUM_URL}
- TECHNITIUM_TOKEN=${TECHNITIUM_TOKEN}
- TECHNITIUM_USERNAME=${TECHNITIUM_USERNAME:-}
- TECHNITIUM_PASSWORD=${TECHNITIUM_PASSWORD:-}
- BASE_DOMAIN=${BASE_DOMAIN:-dws.rip}
- SPACE_SUBDOMAIN=${SPACE_SUBDOMAIN:-space}
- RATE_LIMIT_PER_IP=${RATE_LIMIT_PER_IP:-10}
- RATE_LIMIT_PER_TOKEN=${RATE_LIMIT_PER_TOKEN:-1}
- TRUSTED_PROXIES=${TRUSTED_PROXIES:-}
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s