secubox-openwrt/package/secubox/secubox-vortex-dns
CyberMind-FR 592e46bde8 fix(vortex-dns): Fix shell glob syntax error in zone list
Remove 2>/dev/null from for-loop glob pattern which causes syntax
error in BusyBox ash shell. The [ -f "$zf" ] check handles the
case when no zone files exist.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 09:11:05 +01:00
..
files fix(vortex-dns): Fix shell glob syntax error in zone list 2026-03-08 09:11:05 +01:00
Makefile feat(vortex-dns): Complete meshed subdomain delegation system 2026-02-05 13:23:18 +01:00
README.md

SecuBox Vortex DNS

Meshed multi-dynamic subdomain delegation system.

Architecture

MASTER (*.secubox.io)
├── SLAVE node1.secubox.io
│   └── services: git.node1.secubox.io, web.node1.secubox.io
├── SUBMASTER region1.secubox.io
│   ├── SLAVE a.region1.secubox.io
│   └── SLAVE b.region1.secubox.io
└── SLAVE node2.secubox.io

Features

  • Wildcard Delegation: Master owns *.domain, delegates subzones to slaves
  • First Peek: Services auto-register when discovered on mesh
  • Gossip Sync: Exposure configs propagate via P2P mesh
  • Submastering: Hierarchical delegation (master → submaster → slaves)
  • Multi-Provider: OVH, Gandi, Cloudflare via dns-provider

CLI Reference

# Master operations
vortexctl master init secubox.io          # Initialize as master
vortexctl master delegate 192.168.1.100 node1  # Delegate subzone
vortexctl master list-slaves              # List delegated zones

# Slave operations
vortexctl slave join <master_ip> <token>  # Join master hierarchy
vortexctl slave status                    # Show slave status

# Mesh operations
vortexctl mesh status                     # Mesh DNS status
vortexctl mesh sync                       # Force sync with peers
vortexctl mesh publish <service> <domain> # Publish to mesh

# General
vortexctl status                          # Overall status
vortexctl daemon                          # Run sync daemon

Configuration

config vortex 'main'
    option enabled '1'
    option mode 'master|slave|submaster|standalone'
    option sync_interval '300'

config master 'master'
    option enabled '1'
    option wildcard_domain 'secubox.io'
    option dns_provider 'ovh'
    option auto_delegate '1'

config slave 'slave'
    option enabled '0'
    option parent_master '192.168.1.1'
    option delegated_zone 'node1'

config mesh 'mesh'
    option gossip_enabled '1'
    option first_peek '1'
    option auto_register '1'

Part of SecuBox v0.19 MirrorNetworking Layer