Files
New Futureandopenhands e9ad33e88b Feat/v5 web mcp (#745)
* feat(rust): add Web dashboard and MCP services

Share configuration, status and synchronization between Web and MCP; add authenticated HTTP, stdio lifecycle support, in-process scheduling and offline regression tests. Exercise native tests on the existing Windows/macOS/Linux CI matrix.

Co-authored-by: openhands <openhands@all-hands.dev>

* ci(rust): allow manual cross-platform validation

Enable workflow_dispatch for feature-branch CI without requiring PR creation. Preserve matrices, permissions, publishing boundaries and trusted-branch cache policy.

Co-authored-by: openhands <openhands@all-hands.dev>

* ci(rust): validate feature branch pushes

Run the existing Rust cross-platform matrix for feat/** pushes while retaining trusted-branch-only cache writes and unchanged release triggers.

Co-authored-by: openhands <openhands@all-hands.dev>

* ci(rust): remove temporary branch trigger

The v5 pull request now exists and runs the complete native matrix, so restore the original trusted push branches while retaining Web/MCP paths and tests.

Co-authored-by: openhands <openhands@all-hands.dev>

---------

Co-authored-by: openhands <openhands@all-hands.dev>
2026-09-12 12:09:26 +08:00

5.5 KiB

One-Click Installation Script

DDNS one-click installation script with support for automatic download and installation on Linux and macOS systems.

Quick Installation

The default installer installs the stable Python ddns. The Rust client uses the separate ddns-rs command and never overwrites ddns:

# Install latest stable version online
curl -#fSL https://ddns.newfuture.cc/install.sh | sh

# Use sudo if root permission is needed for system directory
curl -#fSL https://ddns.newfuture.cc/install.sh | sudo sh

# Or using wget
wget -qO- https://ddns.newfuture.cc/install.sh | sh

Note: Default installation to /usr/local/bin. If the directory requires administrator privileges, the script will automatically prompt to use sudo, or you can run with sudo in advance.

Rust V5 development version

Rust V5 is developed on v5; the current 5.0.0-alpha1 has not been published. Build from source or use the Rust CI's five-platform binary artifacts. Do not treat Python's latest / beta channels as V5 downloads:

cargo build --manifest-path rust/Cargo.toml --release --locked
rust/target/release/ddns-rs --help

Source builds and CI binaries support Web and MCP:

rust/target/release/ddns-rs web -c config.json --interval 5
rust/target/release/ddns-rs mcp -c config.json

Web embeds the dashboard and exposes /mcp; standalone HTTP MCP uses mcp --transport http. Web/MCP manage one local config only; non-loopback HTTP listeners require --http-token. In-process scheduling does not migrate or detect OS tasks: manually disable old Python/host tasks to avoid duplicate runs. See the Rust V5 development guide for options, security boundaries, and compatibility limits.

The retained Rust installer is future release tooling for Linux x64/arm64 and macOS x64/arm64. It downloads the separate ddns-rs-linux-x64, ddns-rs-linux-arm64, ddns-rs-macos-x64, or ddns-rs-macos-arm64 Release asset and its .sha256 checksum. The Windows x64 artifact is named ddns-rs-windows-x64.exe. Linux assets use static musl targets and run on both glibc and musl distributions. It installs to ~/.local/bin/ddns-rs by default without requiring administrator privileges. Pass --install-dir /usr/local/bin explicitly for a system-wide installation and provide the required permission yourself. The installer applies only to tagged releases that contain ddns-rs-* assets; version selection must be isolated before publishing V5. See the Rust V5 development guide for the preparation boundaries.

When sha256sum or shasum is available, the installer verifies the published checksum. Use --verify to require it, or --no-verify only when the risk is understood.

Version Selection

# Install latest stable version
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- latest

# Install latest beta version
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- beta

# Install specific version
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- v4.0.2

Command Line Options

Option Description
latest Install latest stable version (default)
beta Install latest beta version
v4.0.2 Install specific version
--install-dir PATH Specify installation directory (default: /usr/local/bin)
--proxy URL Specify proxy domain/prefix (e.g., https://hub.gitmirror.com/), overrides auto-detection
--force Force reinstallation
--uninstall Uninstall installed ddns
--help Show help information

Advanced Usage

# Custom installation directory
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- beta --install-dir ~/.local/bin

# Force reinstallation
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- --force

# Uninstall
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- --uninstall

# Specify proxy domain (override auto-detection)
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- --proxy https://hub.gitmirror.com/

System Support

Operating Systems: Linux (glibc/musl), macOS
Architectures: x86_64, ARM64, ARM v7, ARM v6, i386
Dependencies: curl or wget

Auto-Detection Features

  • System Detection: Automatically identifies operating system, architecture and libc type
  • Tool Detection: Automatically selects curl or wget download tool
  • Network Optimization: Automatically tests and selects the best download mirror (github.com → China mirror sites)
  • Manual Override: Use --proxy to specify a proxy domain/mirror prefix, which takes precedence over auto-detection

Verify Installation

ddns --version    # Check version
which ddns        # Check installation location

Update & Uninstall

# Update to latest version
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- latest

# Uninstall
curl -#fSL https://ddns.newfuture.cc/install.sh | sh -s -- --uninstall

# Manual uninstall
sudo rm -f /usr/local/bin/ddns

Troubleshooting

Permission Issues: Use sudo or install to user directory
Network Issues: Script automatically uses mirror sites (hub.gitmirror.com, proxy.gitwarp.com, etc.)
Unsupported Architecture: Check releases page for supported architectures
Proxy Environment: The script respects system proxy settings (HTTP_PROXY/HTTPS_PROXY); you can also use --proxy https://hub.gitmirror.com/ to specify a GitHub mirror prefix (overrides auto-detection)