What's New
Added
moav switch-dns— New command to switch active DNS tunnel(s) on port 53. Supports single tunnels (xdns,dnstt,slipstream) and same-group combos (dnstt+slipstreamvia dns-router). FlipsENABLE_*flags, swapsPORT_DNS/PORT_XDNS, stops old services, starts new profile. Pre-flight checks for missing state keys (dnstt/slipstream) and offers to re-run bootstrap before starting containers that would otherwise crash-loopmoav doctor conflicts— New diagnostic check for DNS tunnel port-group conflicts: multiple groups enabled in.env, multiple groups running, config/runtime drift, and dns-router crash loops. Uses a "port group" model where tunnels in the same group (e.g. dnstt+slipstream share dns-router) coexist via subdomain routing, while tunnels in different groups conflict on port 53- Per-service state key checks in
moav doctor config— Detects when an enabled service (dnstt, slipstream, wireguard, amneziawg) is missing its key files, which previously only surfaced as silent container crash loops
Changed
- DNS tunnel defaults flipped —
ENABLE_DNSTT=trueandENABLE_SLIPSTREAM=trueare now the defaults;ENABLE_XDNS=false. Rationale: dnstt+Slipstream have broader client-ecosystem support (standalone binaries on 25+ platforms) while XDNS requires a FinalMask-aware Xray client (Happ, Xray CLI).PORT_DNS=53andPORT_XDNS=5353are the new default port assignments. Switching is a one-command operation viamoav switch-dns xdns.moav updateruns an automatic migration that detects sparse.envfiles and pins explicit values based on currently-running containers beforecheck_env_additionsappends the new defaults — existing installs are never silently flipped moav startblocks DNS tunnel conflicts — Previously only warned; now hard-fails when starting a profile would put tunnels from different port groups on port 53.--forcebypasses the check. Same-group tunnels (dnstt+slipstream) still allowed to coexist via dns-router multiplexingdns_tunnels_runningdetection for shared containers — xray serves both XHTTP and XDNS; previously "xray container running" was mis-reported as "xdns running" even whenENABLE_XDNS=false. Now requires the enable flag to be true for tunnels on shared containers- telemt — Updated to 3.3.39 (memory hard-bounds, TLS fronting hash compact cert, bounded retries, build info metrics)
- TrustTunnel — Updated server to v1.0.33 (deep-link DNS upstreams and server display names)
- TrustTunnel Client — Updated to v1.0.49 (deep-link import, DNS socket hardening,
dns_upstreamsmoved to[endpoint]section)
Fixed
- GeoIP database download during bootstrap was slow — Switched
geoip-updaterfrompython:3.11-alpine(~50 MB) to
curlimages/curl:latest(~9 MB), eliminating the in-containerapk add curlstep that ran on every invocation. First-run bootstrap is faster and subsequent GeoIP refreshes are near-instant - dns-router crash loop under port 53 conflict — Previously when both XDNS (via xray) and dnstunnel profile were started, dns-router would infinitely restart trying to bind host port 53 already held by xray. Now blocked at
moav startwith a clear error message pointing tomoav switch-dns - Silent dnstt/slipstream crash loops on missing keys — When
ENABLE_DNSTT=trueorENABLE_SLIPSTREAM=truewere set after initial bootstrap, containers started but waited indefinitely for key files that were never generated.moav switch-dnsnow detects missing keys pre-start and offers to bootstrap;moav doctorflags the condition explicitly
Upgrade
moav update Your current DNS tunnel is preserved. Although v1.7.5 flips the default DNS tunnel from XDNS to dnstt+Slipstream,
moav updateruns an automatic migration that reads your currently-running containers and writes explicitENABLE_*/PORT_*values to.envbefore the new defaults are appended. Existing XDNS installs keep running XDNS. To switch anyway:moav switch-dns xdns|moav switch-dns dnstt+slipstream.Low-RAM VPS (≤ 1 GB) may hit a BuildKit OOM during image rebuild. See TROUBLESHOOTING.md → Build fails on low-memory VPS for the
COMPOSE_BAKE=falsesequential-build workaround.
Full Changelog
Full Changelog: v1.7.4...v1.7.5
Quick Install
curl -fsSL moav.sh/install.sh | bashThis will install MoaV to /opt/moav and guide you through setup.
Documentation
moav.sh/docs — Full documentation
- Setup Guide — Complete installation instructions
- Client Setup — How to connect from devices
- DNS Configuration — DNS records setup
- CLI Reference — All commands and options
- Monitoring — Grafana dashboards and metrics
- Troubleshooting — Common issues and solutions