# timofey-maykov/be7000-openwrt architecture

> Architecture diagram of the GitHub repository timofey-maykov/be7000-openwrt, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/timofey-maykov/be7000-openwrt
- Repository: https://github.com/timofey-maykov/be7000-openwrt

## Overview

Beam WRT is a Xiaomi BE7000 router firmware based on OpenWrt, with device-specific boot, storage, wireless and networking adaptations plus LuCI management features. The main user workflow is installing or updating the firmware, booting into the active flash slot, then managing the router through LuCI. The graph preserves documented capabilities even where implementation was not sampled; those relationships cite the README, while sampled UI-to-RPC relationships cite their caller source. Backend behavior not shown in excerpts is represented at its exact tree path without inferring further calls.

Main entry points: [`patches/tree/002-image-be7000.patch`](https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/tree/002-image-be7000.patch) (Image & slots), [`overlay-files/www/luci-static/resources/view/be7000-storage/storage.js`](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-storage/storage.js) (Storage page), [`awg-feed/luci-app-be7000-update/htdocs/luci-static/resources/view/be7000-update/update.js`](https://github.com/timofey-maykov/be7000-openwrt/blob/main/awg-feed/luci-app-be7000-update/htdocs/luci-static/resources/view/be7000-update/update.js) (Firmware update page), [`patches/tree/001-dts-be7000.patch`](https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/tree/001-dts-be7000.patch) (BE7000 device port)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_firmware["Firmware &amp; Boot"]
  node_openwrt["OpenWrt base"]
  node_device_port["BE7000 device port"]
  node_image_layout["Image &amp; slots"]
  node_ethernet_fixes["Ethernet fixes"]
end

subgraph group_router["Router Services"]
  node_bootconfirm["Boot confirmation<br/>[be7000-bootconfirm]"]
  node_bigoverlay["Persistent overlay<br/>[bigoverlay]"]
  node_romsync["ROM package sync<br/>[be7000-romsync]"]
  node_wifi_defaults["Wi-Fi defaults"]
  node_fiveg_command["5 GHz split command"]
  node_extroot_command["External overlay tool"]
  node_storage_rpc["Storage RPC"]
  node_docker_rpc["Docker RPC"]
  node_update_rpc["Update RPC"]
end

subgraph group_management["LuCI Management"]
  node_wireless_view["Wireless settings<br/>[wireless.js]"]
  node_fiveg_panel["5 GHz mode panel<br/>[panel.js]"]
  node_storage_view["Storage page<br/>[storage.js]"]
  node_docker_view["Docker stacks<br/>[stacks.js]"]
  node_update_view["Firmware update page<br/>[update.js]"]
  node_credits_view["Credits page<br/>[credits.js]"]
  node_status_card["Status project card<br/>[05_be7000.js]"]
end

subgraph group_presentation["LuCI Experience"]
  node_nimbus_menu["Nimbus navigation<br/>[menu-nimbus.js]"]
  node_nimbus_theme["Nimbus theme<br/>[header.ut]"]
end

node_owner(("Router owner"))
node_github["GitHub releases"]
node_usb[("USB storage")]
node_docker_engine["Docker engine"]

node_owner -->|"installs firmware"| node_image_layout
node_openwrt -->|"provides base"| node_device_port
node_device_port -->|"customizes image"| node_image_layout
node_image_layout -->|"boots slot"| node_bootconfirm
node_image_layout -->|"provides persistence"| node_bigoverlay
node_owner -->|"manages updates"| node_update_view
node_update_view -->|"calls update RPC"| node_update_rpc
node_update_view -->|"checks releases"| node_github
node_bootconfirm -->|"confirms new boot"| node_romsync
node_owner -->|"manages storage"| node_storage_view
node_storage_view -->|"calls storage RPC"| node_storage_rpc
node_storage_view -->|"selects disk"| node_usb
node_bigoverlay -->|"moves overlay"| node_usb
node_owner -->|"manages stacks"| node_docker_view
node_docker_view -->|"calls Docker RPC"| node_docker_rpc
node_docker_rpc -.->|"controls containers"| node_docker_engine
node_owner -->|"configures Wi-Fi"| node_wireless_view
node_wireless_view -->|"requires panel"| node_fiveg_panel
node_fiveg_panel -.->|"switches radio mode"| node_fiveg_command
node_wifi_defaults -->|"sets initial Wi-Fi"| node_wireless_view
node_owner -->|"views credits"| node_credits_view
node_owner -->|"views status"| node_status_card
node_owner -->|"navigates LuCI"| node_nimbus_menu
node_nimbus_theme -.->|"styles navigation"| node_nimbus_menu
node_ethernet_fixes -->|"fixes networking"| node_device_port

click node_device_port "https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/tree/001-dts-be7000.patch"
click node_image_layout "https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/tree/002-image-be7000.patch"
click node_ethernet_fixes "https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/0900-net-qcom-ppe-fix-napi-disable-hang.patch"
click node_bootconfirm "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/be7000-bootconfirm"
click node_bigoverlay "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/bigoverlay"
click node_romsync "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/be7000-romsync"
click node_wifi_defaults "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/be7000-wifi-defaults"
click node_fiveg_command "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/sbin/be7000-5g-split"
click node_extroot_command "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/sbin/be7000-extroot"
click node_wireless_view "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/network/wireless.js"
click node_fiveg_panel "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/be7000-wifi5g/panel.js"
click node_storage_view "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-storage/storage.js"
click node_storage_rpc "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/share/rpcd/ucode/be7000-storage"
click node_docker_view "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-docker/stacks.js"
click node_docker_rpc "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/share/rpcd/ucode/be7000-docker"
click node_update_view "https://github.com/timofey-maykov/be7000-openwrt/blob/main/awg-feed/luci-app-be7000-update/htdocs/luci-static/resources/view/be7000-update/update.js"
click node_update_rpc "https://github.com/timofey-maykov/be7000-openwrt/blob/main/awg-feed/luci-app-be7000-update/root/usr/share/rpcd/ucode/be7000-update"
click node_credits_view "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-credits/credits.js"
click node_status_card "https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/status/include/05_be7000.js"
click node_nimbus_menu "https://github.com/timofey-maykov/be7000-openwrt/blob/main/luci-theme-nimbus/htdocs/luci-static/resources/menu-nimbus.js"
click node_nimbus_theme "https://github.com/timofey-maykov/be7000-openwrt/blob/main/luci-theme-nimbus/ucode/template/themes/nimbus/header.ut"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_openwrt,node_device_port,node_image_layout,node_ethernet_fixes toneBlue
class node_bootconfirm,node_bigoverlay,node_romsync,node_wifi_defaults,node_fiveg_command,node_extroot_command,node_storage_rpc,node_docker_rpc,node_update_rpc,node_usb toneAmber
class node_wireless_view,node_fiveg_panel,node_storage_view,node_docker_view,node_update_view,node_credits_view,node_status_card,node_owner toneMint
class node_nimbus_menu,node_nimbus_theme toneRose
class node_github,node_docker_engine toneIndigo
```

## Components

### Firmware & Boot

- **OpenWrt base**
- [BE7000 device port](https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/tree/001-dts-be7000.patch): `patches/tree/001-dts-be7000.patch`
- [Image & slots](https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/tree/002-image-be7000.patch): `patches/tree/002-image-be7000.patch`
- [Ethernet fixes](https://github.com/timofey-maykov/be7000-openwrt/blob/main/patches/0900-net-qcom-ppe-fix-napi-disable-hang.patch): `patches/0900-net-qcom-ppe-fix-napi-disable-hang.patch`

### Router Services

- [Boot confirmation](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/be7000-bootconfirm): `overlay-files/etc/init.d/be7000-bootconfirm`
- [Persistent overlay](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/bigoverlay): `overlay-files/etc/init.d/bigoverlay`
- [ROM package sync](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/be7000-romsync): `overlay-files/etc/init.d/be7000-romsync`
- [Wi-Fi defaults](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/etc/init.d/be7000-wifi-defaults): `overlay-files/etc/init.d/be7000-wifi-defaults`
- [5 GHz split command](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/sbin/be7000-5g-split): `overlay-files/usr/sbin/be7000-5g-split`
- [External overlay tool](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/sbin/be7000-extroot): `overlay-files/usr/sbin/be7000-extroot`
- [Storage RPC](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/share/rpcd/ucode/be7000-storage): `overlay-files/usr/share/rpcd/ucode/be7000-storage`
- [Docker RPC](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/usr/share/rpcd/ucode/be7000-docker): `overlay-files/usr/share/rpcd/ucode/be7000-docker`
- [Update RPC](https://github.com/timofey-maykov/be7000-openwrt/blob/main/awg-feed/luci-app-be7000-update/root/usr/share/rpcd/ucode/be7000-update): `awg-feed/luci-app-be7000-update/root/usr/share/rpcd/ucode/be7000-update`

### LuCI Management

- [Wireless settings](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/network/wireless.js): `overlay-files/www/luci-static/resources/view/network/wireless.js`
- [5 GHz mode panel](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/be7000-wifi5g/panel.js): `overlay-files/www/luci-static/resources/be7000-wifi5g/panel.js`
- [Storage page](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-storage/storage.js): `overlay-files/www/luci-static/resources/view/be7000-storage/storage.js`
- [Docker stacks](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-docker/stacks.js): `overlay-files/www/luci-static/resources/view/be7000-docker/stacks.js`
- [Firmware update page](https://github.com/timofey-maykov/be7000-openwrt/blob/main/awg-feed/luci-app-be7000-update/htdocs/luci-static/resources/view/be7000-update/update.js): `awg-feed/luci-app-be7000-update/htdocs/luci-static/resources/view/be7000-update/update.js`
- [Credits page](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/be7000-credits/credits.js): `overlay-files/www/luci-static/resources/view/be7000-credits/credits.js`
- [Status project card](https://github.com/timofey-maykov/be7000-openwrt/blob/main/overlay-files/www/luci-static/resources/view/status/include/05_be7000.js): `overlay-files/www/luci-static/resources/view/status/include/05_be7000.js`

### LuCI Experience

- [Nimbus navigation](https://github.com/timofey-maykov/be7000-openwrt/blob/main/luci-theme-nimbus/htdocs/luci-static/resources/menu-nimbus.js): `luci-theme-nimbus/htdocs/luci-static/resources/menu-nimbus.js`
- [Nimbus theme](https://github.com/timofey-maykov/be7000-openwrt/blob/main/luci-theme-nimbus/ucode/template/themes/nimbus/header.ut): `luci-theme-nimbus/ucode/template/themes/nimbus/header.ut`

### Other components

- **Router owner**
- **GitHub releases**
- **USB storage**
- **Docker engine**

## Connections

- Router owner → Image & slots: installs firmware (evidence: `README.md`)
- OpenWrt base → BE7000 device port: provides base (evidence: `README.md`)
- BE7000 device port → Image & slots: customizes image (evidence: `README.md`)
- Image & slots → Boot confirmation: boots slot (evidence: `README.md`)
- Image & slots → Persistent overlay: provides persistence (evidence: `README.md`)
- Router owner → Firmware update page: manages updates
- Firmware update page → Update RPC: calls update RPC (evidence: `awg-feed/luci-app-be7000-update/htdocs/luci-static/resources/view/be7000-update/update.js`)
- Firmware update page → GitHub releases: checks releases (evidence: `README.md`)
- Boot confirmation → ROM package sync: confirms new boot (evidence: `README.md`)
- Router owner → Storage page: manages storage (evidence: `README.md`)
- Storage page → Storage RPC: calls storage RPC (evidence: `overlay-files/www/luci-static/resources/view/be7000-storage/storage.js`)
- Storage page → USB storage: selects disk (evidence: `overlay-files/www/luci-static/resources/view/be7000-storage/storage.js`)
- Persistent overlay → USB storage: moves overlay (evidence: `README.md`)
- Router owner → Docker stacks: manages stacks (evidence: `README.md`)
- Docker stacks → Docker RPC: calls Docker RPC (evidence: `overlay-files/www/luci-static/resources/view/be7000-docker/stacks.js`)
- Docker RPC → Docker engine: controls containers
- Router owner → Wireless settings: configures Wi-Fi (evidence: `README.md`)
- Wireless settings → 5 GHz mode panel: requires panel (evidence: `overlay-files/www/luci-static/resources/be7000-wifi5g/panel.js`)
- 5 GHz mode panel → 5 GHz split command: switches radio mode
- Wi-Fi defaults → Wireless settings: sets initial Wi-Fi (evidence: `README.md`)
- Router owner → Credits page: views credits
- Router owner → Status project card: views status (evidence: `overlay-files/www/luci-static/resources/view/status/include/05_be7000.js`)
- Router owner → Nimbus navigation: navigates LuCI (evidence: `luci-theme-nimbus/htdocs/luci-static/resources/menu-nimbus.js`)
- Nimbus theme → Nimbus navigation: styles navigation
- Ethernet fixes → BE7000 device port: fixes networking (evidence: `README.md`)
