MoaV v2.0.1
A bug-fix release on top of v2.0.0. No protocol or config changes — keys, users and certificates are untouched.
moav update && moav build && moav startFixed
-
The sing-box Grafana dashboard shows users again. Every per-user panel read zero — Active Users, Total Users, an empty User Connections table — on servers carrying tens of thousands of connections an hour. The exporter took per-user data from a Clash API field that does not exist; usernames only ever appear in sing-box's log. sing-box now publishes its log to a file the exporter tails, which is the same socket-free mechanism the Xray exporter already used. Existing installs self-heal on restart, and
moav logs sing-boxis unchanged. -
The MahsaNet donation link is now the official MoaV channel, and configurable via
MAHSANET_ADS_URLin the advanced section of.env.example. It was previously hardcoded to a third party's Telegram in two separate places. -
moav netis documented. Kernel network tuning was dispatched but missing frommoav help, so it was undiscoverable without reading the source. -
The profile-selection box lines up again, and the
dnstunnelprofile now names all four tunnels (dnstt, Slipstream, MasterDNS, XDNS) instead of two. -
Community links are consistent across the CLI banner,
moav helpand the interactive-menu exit, which previously printed three different sets — one of them empty. -
IPv6 profile names are distinguishable from IPv4 in clients that truncate long names. The
-IPv6marker moved ahead of the username, so dual-stack protocols no longer render as two identical-looking rows. Bundle contents are unaffected. -
moav logsis readable again. sing-box log colours are restored, including the per-connection id colour that lets you follow one connection across lines. Each service now gets a distinct colour:docker composepicks from about seven, so on a full 30-container stack several collided. -
moav updatenow defaults the component-version prompt to yes. The pinned versions are the ones the release was tested against.
Security
- The MahsaNet ads link can no longer carry credentials. Any value containing
@is refused. Every proxy share link isuser@host, so one rule covers both MahsaNet's formatting requirement and the leak — an audit of live donated records found 30 whose ads link was a full share link, complete with UUIDs and protocol passwords, published to a third party. The code path responsible was already gone, but the field was one substitution from doing it again.
Changed
- sing-box 1.13.12 → 1.13.18. Chiefly for 1.13.16, which stops the AnyTLS client uploading metadata the open-source server never used and that vendors were reportedly using to profile and discriminate against users. (upstream note)
Added
- sing-box dashboard: Connections by User and Traffic by Protocol panels.
- Releases now publish
llms.txtas an asset and refresh the docs site automatically, somoav.sh/install.shand the docs go live within minutes of a tag.
Known limitations
- Per-user traffic (as opposed to connections) is still unavailable for sing-box. Its Clash API reports byte counters and tracks the username internally, but does not expose the two together.
- cadvisor cannot stat container rootfs on Docker 29's
overlayfsstorage driver, so per-container disk metrics are partial. CPU and memory are unaffected.
Full detail: CHANGELOG.md
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
-
💬 Telegram
-
🐛 Issues
-
🌐 moav.sh
-
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