Skip to content

v1.7.5

Choose a tag to compare

@shayanb shayanb released this 12 Apr 16:24
10f7e0c

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+slipstream via dns-router). Flips ENABLE_* flags, swaps PORT_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-loop
  • moav 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 flippedENABLE_DNSTT=true and ENABLE_SLIPSTREAM=true are 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=53 and PORT_XDNS=5353 are the new default port assignments. Switching is a one-command operation via moav switch-dns xdns. moav update runs an automatic migration that detects sparse .env files and pins explicit values based on currently-running containers before check_env_additions appends the new defaults — existing installs are never silently flipped
  • moav start blocks DNS tunnel conflicts — Previously only warned; now hard-fails when starting a profile would put tunnels from different port groups on port 53. --force bypasses the check. Same-group tunnels (dnstt+slipstream) still allowed to coexist via dns-router multiplexing
  • dns_tunnels_running detection for shared containers — xray serves both XHTTP and XDNS; previously "xray container running" was mis-reported as "xdns running" even when ENABLE_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_upstreams moved to [endpoint] section)

Fixed

  • GeoIP database download during bootstrap was slow — Switched geoip-updater from python:3.11-alpine (~50 MB) to
    curlimages/curl:latest (~9 MB), eliminating the in-container apk add curl step 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 start with a clear error message pointing to moav switch-dns
  • Silent dnstt/slipstream crash loops on missing keys — When ENABLE_DNSTT=true or ENABLE_SLIPSTREAM=true were set after initial bootstrap, containers started but waited indefinitely for key files that were never generated. moav switch-dns now detects missing keys pre-start and offers to bootstrap; moav doctor flags 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 update runs an automatic migration that reads your currently-running containers and writes explicit ENABLE_* / PORT_* values to .env before 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=false sequential-build workaround.

Full Changelog

Full Changelog: v1.7.4...v1.7.5


Quick Install

curl -fsSL moav.sh/install.sh | bash

This will install MoaV to /opt/moav and guide you through setup.

Documentation

moav.sh/docs — Full documentation