This is the main OpenWrt build system and firmware distribution repository. It is not a single application but a complete, cross-compiling build system for producing embedded Linux firmware images targeting a vast array of routers, access points, and other network-attached devices. The repository consists of a top-level Makefile, a package directory tree (kernel modules, userspace utilities, libraries, firmware blobs), a kconfig-based configuration system, kernel patch sets, and numerous build helper scripts. In production, users clone this repo, run `make menuconfig` to select target hardware and packages, then `make` to produce a flashable firmware image (e.g., sysupgrade or factory image). The primary data flow involves downloading upstream source tarballs, applying OpenWrt-specific patches, compiling packages and the Linux kernel using a custom toolchain, and assembling the firmware image via mtd-utils and image generation scripts. External dependencies include the Linux kernel source, GNU toolchain (gcc, binutils, musl/glibc), and hundreds of upstream projects (hostapd, dnsmasq, openssl, etc.). The architecture is a monolithic build system with modular package definitions, enabling high customization through a kconfig frontend. While the build system is the core, the repo also contains many small userspace tools (mtd, swconfig, procd, netifd, uci) that run on the target device.
This monorepo houses the entire Start9 ecosystem, centered on StartOSβa self-hosted Linux distribution for personal servers. The repository encompasses multiple products: StartOS (server OS with container orchestration, backup, networking, and marketplace), StartWRT (router firmware based on OpenWrt), StartTunnel (WireGuard-based tunnel service), StartCLI (command-line tool), StartRegistry (package registry), and StartSDK (TypeScript SDK for building service packages). The architecture is a hybrid of Rust backend services (using async Tokio, axum, and a custom RPC toolkit) and Angular frontends (using Taiga UI and a reactive PatchDB state store). Key orchestration is handled by the container runtime (Node.js with LXC) and a custom diff-based database (PatchDB) for real-time UI synchronization. The system manages service lifecycle, ACME certificates, DNS, port forwarding, VPNs, encrypted backups, and firmware updates. External dependencies include Linux kernel features (LXC, btrfs, eCryptFS, FUSE, nftables), WireGuard, and standard Rust/Angular libraries. The codebase is actively maintained with frequent version migrations and CI/CD pipelines, but carries some duplication across products and technical debt from rapid evolution.
Gargoyle is a third-party router firmware distribution based on OpenWrt/LEDE. It provides a comprehensive web-based administration interface with features such as bandwidth monitoring, QoS, VPN (OpenVPN, WireGuard, Tor), dynamic DNS, ad blocking, web monitoring, and a plugin system for extensibility. The codebase is a large collection of C utilities (custom netfilter match modules, a package manager 'gpkg', bandwidth accounting libraries, and a CGI framework built on a patched version of haserl), shell scripts for UCI configuration and firewall management, and JavaScript/CSS for the web UI. Internationalization is extensive with over a dozen language packs. The architecture is monolithic in the sense that all components are built as part of a firmware image, but modular at the package level. Key data flows involve kernel-level packet matching (via custom nftables/iptables modules) feeding user-space libraries (libiptbwctl/libnftbwctl) and shell scripts that expose bandwidth and status data through the web interface.
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.