[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-105420":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":12,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":22,"readmeContent":23,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":13,"lastSyncTime":24,"discoverSource":25},105420,"RabbitWall","ysuito\u002FRabbitWall","ysuito","RabbitWall is a web console for a Linux gateway that lets you observe traffic from an AI network and switch its Internet access on or off.",null,"Python",64,9,2,0,3,46.8,"MIT License",false,"main",true,[],"2026-11-01 00:16:23","# RabbitWall\n\n[English](README.md) | [日本語](README.ja.md)\n\n![RabbitWall](docs\u002Fimages\u002Frabbitwall-hero.png)\n\nRabbitWall is a web console for a Linux gateway that lets you observe traffic from an AI network and switch its Internet access on or off.\n\n- View connection sessions on a world map, in a route list, or in session history\n- Monitor node availability and display inferred domains, estimated countries, and newly observed domains\n- Rank traffic volume over the last hour or 24 hours\n- Close Internet access, including established connections and DNS\n- Restrict management access to one PC using source-IP filtering and Caddy client-certificate authentication (mTLS)\n- Choose a color scheme, drag the map, and check clearly labeled status indicators\n\nConfigure IP addresses, network interfaces, initial nodes, upstream DNS, and the site's map location in **one JSON file**. After installation, manage nodes and management-access permissions from Settings. The management PC authenticates with a client certificate.\n\n![RabbitWall demo](docs\u002Fimages\u002Fconsole.png)\n\n## Network layout\n\nPlace RabbitWall between your existing LAN and the AI network. The machine running RabbitWall needs two wired network interfaces: one upstream and one facing the AI network.\n\n```mermaid\nflowchart LR\n    Internet((Internet)) \u003C--> Router[Upstream router]\n    Router \u003C--> LAN[Existing LAN \u002F management network]\n    Admin[Management PC\u003Cbr\u002F>Client certificate] --- LAN\n\n    subgraph RW[\"Machine running RabbitWall\"]\n        direction LR\n        Up[Upstream NIC] \u003C--> Gate[Traffic control \u002F DNS forwarding]\n        Gate \u003C--> Down[AI-side NIC]\n        Web[Web console] -.->|Control \u002F monitoring| Gate\n    end\n\n    LAN \u003C--> Up\n    Down \u003C--> AI[AI network\u003Cbr\u002F>AI hosts \u002F GPU servers]\n    Admin -.->|HTTPS \u002F mTLS| Web\n```\n\n- **Solid lines** show network connections; **dotted arrows** show management and control relationships. The management PC reaches the web console through the existing LAN.\n- AI hosts use RabbitWall as their **default gateway and DNS server**. RabbitWall forwards their traffic and DNS queries upstream.\n- The switch controls **Internet access for the AI network**. The management PC's ordinary traffic goes directly through the existing LAN to the upstream router.\n- Use separate subnets for the upstream and AI interfaces. With the default NAT mode, AI traffic leaves through RabbitWall's upstream IP address.\n\nDNS forwarding uses Unbound; a separate dnstap observer supplies inferred domains. Observer downtime does not stop DNS, and closing the gate blocks cached DNS answers too.\n\n## Try the demo\n\nRun the demo with Python 3.11 or later without changing your operating system settings. It also runs on macOS.\n\n```sh\npython3 setup.py demo\n```\n\nOpen `http:\u002F\u002F127.0.0.1:8766` in your browser. Both the displayed traffic and the Internet-access switch are simulated.\n\n## Installation\n\nThe target environment is **Debian 13 or later, or Ubuntu 24.04, with systemd, NetworkManager, and two wired network interfaces**. Application and firewall tests run in Linux containers with virtual networks. Verify hardware drivers and NetworkManager connection changes on the machine where you install RabbitWall.\n\nDebian 12 and earlier are not supported: their standard dnspython package does not meet the required version (>=2.6.1,\u003C3). Use Debian 13 or later.\n\n1. Prepare the machine and dependencies using the [installation guide](docs\u002FINSTALL.md).\n2. Create a configuration and generate an installation plan.\n3. Apply the plan from a local console and register a client certificate on the management PC.\n\n```sh\npython3 setup.py init\npython3 setup.py plan\nsudo python3 setup.py check\nsudo python3 setup.py install --apply-network\n```\n\nInitial installation changes the machine's firewall and both network interfaces. The commands above are only part of the process: read the [installation guide](docs\u002FINSTALL.md) for prerequisites, static IP settings on AI hosts, and mTLS registration. Installing over a general-purpose workstation or Docker host is not supported.\n\nNAT is the default, so Internet access does not require an additional static route on the upstream router. Routed mode is also available. Internet access starts **closed** after installation, a reboot, or a controller restart. RabbitWall does not provide a DHCP server.\n\n## Maintenance\n\n- [Configuration, updates, and recovery](docs\u002FINSTALL.md)\n- [Daily operation, DNS, and traffic statistics](docs\u002FOPERATIONS.md)\n- [Security boundaries and reporting](SECURITY.md)\n- [Program flow and dependency interactions](docs\u002FPROGRAM_FLOW.md)\n- [OS commands and local IPC reference](docs\u002FOS_COMMANDS.md)\n- [Development and testing](CONTRIBUTING.md)\n\nRabbitWall is released under the [MIT License](LICENSE). See [THIRD_PARTY.md](src\u002Frabbitwall\u002Fstatic\u002FTHIRD_PARTY.md) for map data and other third-party assets. Country-IP data is an optional download.\n\nRepository layout: application in `src\u002Frabbitwall\u002F`, setup and maintenance helpers in `tools\u002F`, service definitions in `systemd\u002F`, and tests in `tests\u002F`.\n","2026-10-31 04:26:44","CREATED_QUERY"]