Skip to content

MoaV v1.6.1

Choose a tag to compare

@shayanb shayanb released this 15 Mar 16:07
cdc7b6c

What's New

GeoIP Country Distribution

All four protocol dashboards (sing-box, Xray, WireGuard, AmneziaWG) now show user connections by country. Uses DB-IP Lite for fully offline lookups — no external API calls at runtime. Database downloads automatically during bootstrap.

Non-Root Containers (PR #68)

All service containers now run as unprivileged moav user. Privileged port binding via setcap. Docker socket replaced with tecnativa/docker-socket-proxy for the admin container. .dockerignore prevents secrets from leaking into build context.

Telemt Anti-DPI Tuning

17 new configurable settings for MTProxy in aggressive censorship environments: keepalive payload randomization, timing jitter, pool hardswap, fast reconnect backoff, STUN TCP fallback. All configurable from .env with documentation. New Grafana panels for ME pool health, DC availability, upstream quality, and NAT type detection.

Admin Dashboard

  • Prometheus-backed stats bar: active users, total users, connections, and traffic across all protocols
  • Collapsible MahsaNet and Users sections with one-liner summaries
  • Toast notifications replacing browser alert dialogs
  • Live uptime counter, server IP (masked), domain, version, and documentation links in footer
  • Inline confirm-to-delete for MahsaNet configs (two-click pattern, no more browser popups)

Donate Command Refactor

Generalized donation framework ready for multiple services:
moav donate # Interactive wizard (auto-selects configured service)
moav donate setup # Configure API keys
moav donate list # Numbered list of donated configs
moav donate delete # Select and delete specific configs
moav donate status # Donation statistics
moav donate remove # Remove all configs

MahsaNet Integration (https://github.com/mahsanet)

  • Fixed health display ({}% in CLI, [object Object] in dashboard)
  • Numbered config listing with selective deletion
  • Better error messages for API failures
  • MahsaNet API reference documented in troubleshooting

Bootstrap Optimization

  • sing-box binary downloaded directly instead of pulling full container image — fixes hang in censored networks where ghcr.io is blocked (#75)
  • Scripts volume-mounted at runtime instead of COPY'd into image — subsequent bootstraps start in <2 seconds
  • GeoIP database auto-downloaded during bootstrap
  • Fixed local outside function crash in domainless mode (#77)

Bug Fixes

  • Xray IPv6 "network unreachable" — blackhole outbound silently drops IPv6 traffic
  • Xray per-user traffic stats — fixed JSON parsing (was using protobuf regex on JSON output) and removed -reset flag that returned empty values
  • Xray user-add targeting wrong inbound (api-in instead of vless-xhttp-reality)
  • sing-box GeoIP Clash API auth — fixed secret loading and Bearer header authentication
  • Grafana geo panels not rendering — fixed panel nesting for uncollapsed rows
  • Grafana geo tables empty — switched to cumulative counters for reliable data
  • Bootstrap invalidating existing user bundles — file existence guards per protocol
  • Bootstrap failing for all users on single failure — non-fatal error handling
  • Non-root cert permissions for sing-box, TrustTunnel, admin, Conduit
  • TrustTunnel exec failed: operation not permitted — added cap_add: NET_ADMIN
  • Cross-profile depends_on breaking moav start dnstunnel
  • DNS port 53 prompt on moav start all when DNS tunnels are disabled
  • Double monitoring prompt on moav start all

Upgrade

  moav update

Upgrading from 1.5.x: Run docker compose --profile setup run --rm geoip-updater to download the GeoIP database, then restart exporters: docker compose restart singbox-exporter xray-exporter wireguard-exporter amneziawg-exporter. New installs get this automatically during bootstrap.

Note: The moav donate command syntax changed. Use moav donate instead of moav donate mahsanet.

Full Changelog

Full Changelog: v1.5.1...v1.6.1

New Contributors


Quick Install

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

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

Documentation