Standalone DNS management service for Flux applications. Provides direct DNS routing for apps that need it (like game servers), allowing connections directly without going through HAProxy.
Certain applications (game servers like Minecraft, Rust, Valheim, etc.) need direct connections for:
- Lower latency
- UDP support (most games use UDP)
- Proper player authentication
This service runs separately from FDM to:
- Maintain separation of concerns
- Improve security isolation
- Prevent race conditions from multiple FDM instances
- Node.js 14+
- Access to DNS Gateway API (mTLS)
- Network access to Flux API
npm installEdit configuration files in config/:
- dnsGatewayConfig.js - DNS Gateway credentials
module.exports = {
endpoint: 'https://dns-gateway.internal:8443',
certPath: '/path/to/client.crt',
keyPath: '/path/to/client.key',
caPath: '/path/to/ca.crt',
enabled: true,
};- gamesConfig.js - App types to manage
module.exports = {
gameTypes: ['minecraft', 'palworld', 'rustserver', ...],
};# Development (with auto-reload)
npm run dev
# Production
npm start| Endpoint | Method | Description |
|---|---|---|
/health |
GET | Health check |
/status |
GET | Service status |
/dns-state |
GET | Current DNS records |
/trigger |
POST | Force processing loop |
- Polls Flux API every 10 seconds for app specifications
- Filters for G-mode apps matching configured app types
- Selects master IP for each app (deterministic selection)
- Updates DNS A records via DNS Gateway when IPs change
- Deletes DNS records for removed apps after grace period (1 hour)
AGPL-3.0-or-later