The DDNS repository is a Dynamic DNS client application that automatically updates DNS records when the public IP address changes. It features a plugin architecture for DNS providers, flexible configuration loading from multiple sources (CLI, JSON, environment variables), cross-platform task scheduling (cron, systemd, launchd, schtasks), an embedded web dashboard for configuration and monitoring, and MCP server integration for AI assistants. The application is designed to have minimal runtime dependencies, relying only on the Python standard library, and supports both IPv4 and IPv6 addresses.
This repository is a plugin ecosystem for Koolshare-modified Asuswrt-Merlin router firmware. It provides a software center (softcenter) that manages the installation, update, and removal of various router plugins, including DDNS (ddnspod, phddns, appledns), VPN (shadowvpn), download acceleration (kuainiao), network utilities (dualwan, swap, ssid), and a web-based terminal (shellinabox). The architecture is a collection of shell scripts and ASP web pages, with a central softcenter module that handles app store functionality, version checking, and offline installation. Key entry points include softcenter's install.sh, ks_app_install.sh, and Main_Soft_center.asp. Data flows involve downloading plugins as tar.gz archives from remote servers (koolshare.cn, GitHub raw), installing via scripts, and storing configuration in a dbus key-value store. External dependencies include precompiled binaries (curl, wget, perp, speedtest, shadowvpn, shellinaboxd) and remote endpoints for version checks and push messages. The codebase is heavily duplicated, with many identical backup.sh and install/uninstall scripts across modules, and relies on opaque UPX-packed binaries. Maintenance risks include hardcoded endpoints, outdated toolchains, and lack of tests or CI/CD.