### Install DDNSTO on OpenWrt SNAPSHOT (apk) Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/README.md Installs the DDNSTO package and its LuCI interface on OpenWrt SNAPSHOT using the apk package manager. Ensure the software source is correctly added if necessary. ```bash # Add software source (if needed) echo "https://your-repo-url/packages.tar.gz" >> /etc/apk/repositories # Install apk add ddnsto luci-app-ddnsto ``` -------------------------------- ### Install DDNSTO on OpenWrt 24.10 / 22.03 (opkg/ipk) Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/README.md Installs the DDNSTO package and its LuCI interface on OpenWrt 24.10 or 22.03 using the opkg package manager. It requires adding a custom feed and updating the package list. ```bash # Add software source (if needed) echo "src/gz ddnsto https://your-repo-url/packages" >> /etc/opkg/customfeeds.conf opkg update # Install opkg install ddnsto luci-app-ddnsto ``` -------------------------------- ### DDNSTO Project Structure Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/docs/address_data_flow_analysis.md Overview of the directory structure for the ddnsto-openwrt-package, highlighting the backend, LuCI frontend, and documentation. ```text ddnsto-openwrt-package/ ├── ddnsto/ # 后端二进制和启动脚本 │ ├── files/ │ │ ├── ddnsto.config # UCI 默认配置 │ │ ├── ddnsto.init # 启动脚本 │ │ └── ddnsto.uci-default # 初始化脚本 │ └── Makefile ├── luci-app-ddnsto/ # LuCI 前端应用 │ ├── luasrc/ │ │ ├── controller/ddnsto.lua # 后端 API 接口 │ │ ├── model/cbi/ddnsto.lua # 传统配置页面 │ │ └── view/ddnsto/main.htm # 主页面模板 │ └── root/www/luci-static/ddnsto/index.js # React 前端应用 └── docs/ └── address_data_flow_analysis.md # 本报告 ``` -------------------------------- ### Trigger GitHub Actions Build with Tag Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/README.md Demonstrates how to create and push a Git tag to trigger the GitHub Actions workflow for automatic building of DDNSTO packages. ```bash # Create and push tag git tag v3.2.1 git push origin v3.2.1 ``` -------------------------------- ### Local Compilation of DDNSTO Package Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/README.md Steps to compile the DDNSTO and luci-app-ddnsto packages locally using the OpenWrt SDK. This involves cloning the SDK, copying the package, updating feeds, configuring the build, and compiling. ```bash # Clone OpenWrt SDK git clone https://github.com/openwrt/openwrt.git cd openwrt # Copy package to feeds cp -r /path/to/ddnsto-openwrt-package package/ # Update feeds ./scripts/feeds update -a ./scripts/feeds install -a # Configure make menuconfig # Select: Network -> Web Servers/Proxies -> ddnsto # Select: LuCI -> Applications -> luci-app-ddnsto # Compile make package/ddnsto/compile V=s make package/luci-app-ddnsto/compile V=s ``` -------------------------------- ### DDNSTO Address Write Path Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/docs/address_data_flow_analysis.md Diagram illustrating the unique path for writing the 'address' field, originating from user actions in the onboarding wizard. ```text ┌─────────────────────────────────────────────────────────────────────────┐ │ 写入路径 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ 用户操作 │ │ ↓ │ │ OnboardingWizardCard.tsx (快速向导) │ │ ↓ 调用 saveAddress() │ │ POST /api/onboarding/address │ │ ↓ │ │ ddnsto.lua: api_onboarding_address() │ │ ↓ uci:set("ddnsto", sid, "address", url) │ │ /etc/config/ddnsto (UCI 配置) │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` -------------------------------- ### React Frontend Source Location Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/docs/address_data_flow_analysis.md Indicates the location of the React frontend source code and its compiled output path. ```text src/ddnsto-openwrt-web/ ├── src/ │ ├── App.tsx # 主应用组件 │ ├── components/ │ │ ├── OnboardingWizardCard.tsx # 快速向导组件 │ │ ├── StatusCard.tsx # 状态显示卡片 │ │ └── ... │ └── main.tsx └── package.json 编译后输出到:`luci-app-ddnsto/root/www/luci-static/ddnsto/index.js` ``` -------------------------------- ### DDNSTO API Endpoints Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/README.md The LuCI controller provides the following RESTful API endpoints for interacting with the DDNSTO service. ```APIDOC ## API Endpoints LuCI controller provides the following RESTful API: ### `/api/config` #### Description Reads or updates the DDNSTO configuration. #### Method GET, POST ### `/api/status` #### Description Retrieves the current running status of the DDNSTO service. #### Method GET ### `/api/service` #### Description Controls the DDNSTO service (start, stop, restart). #### Method POST ### `/api/logs` #### Description Retrieves the logs for the DDNSTO service. #### Method GET ### `/api/connectivity` #### Description Performs a network connectivity check. #### Method GET ``` -------------------------------- ### DDNSTO Address Read Path Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/docs/address_data_flow_analysis.md Diagram illustrating the data flow for reading the 'address' field from the UCI configuration to display in the status card. ```text ┌─────────────────────────────────────────────────────────────────────────┐ │ 读取路径 │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ /etc/config/ddnsto (UCI 配置) │ │ ↓ │ │ ddnsto.lua: read_config() │ │ ↓ │ │ GET /api/config 或 GET /api/status │ │ ↓ │ │ App.tsx: fetchConfig() / fetchStatus() │ │ ↓ │ │ StatusCard.tsx (状态卡片展示) │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` -------------------------------- ### Lua: Set DDNSTO Address UCI Source: https://github.com/linkease/ddnsto-openwrt-package/blob/main/docs/address_data_flow_analysis.md This Lua code snippet demonstrates the unique point where the 'address' field is set in the UCI configuration for DDNSTO. ```lua function api_onboarding_address() ... local url = param(body, "url") or param(body, "address") ... uci:set("ddnsto", sid, "address", url) -- 唯一写入点 uci:commit("ddnsto") ... end ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.