# rizkikotet-dev/rta-wrt architecture

> Architecture diagram of the GitHub repository rizkikotet-dev/rta-wrt, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rizkikotet-dev/rta-wrt
- Repository: https://github.com/rizkikotet-dev/rta-wrt

## Overview

This tree captures deployed web utilities and a Telegram file/message sender alongside an OpenWrt firmware project described by the README. The clearest user workflows visible in source are TinyFM file management and configuring the bot to send text or files through Telegram. README-described router features are retained as capability nodes, but the underlying firmware/package source is absent from this tree, so their wiring cannot be established here.

Main entry points: [`files/www/tinyfm/oceditor.php`](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/oceditor.php) (Code editor), [`files/www/tinyfm/ace/ace.js`](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/ace.js) (Ace editor), [`telebot.py`](https://github.com/rizkikotet-dev/rta-wrt/blob/main/telebot.py) (Bot command runner), [`files/www/tinyfm/tinyfm.php`](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/tinyfm.php) (File manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fm["TinyFM"]
  node_tinyfm["File manager<br/>[tinyfm.php]"]
  node_filesystem[("Server files")]
end

subgraph group_editor["Editing tools"]
  node_oceditor["Code editor<br/>[oceditor.php]"]
  node_ace["Ace editor<br/>[ace.js]"]
  node_ace_modes["Language modes<br/>[mode-javascript.js]"]
  node_ace_workers["Editor workers"]
end

subgraph group_bot["Telegram sender"]
  node_telebot["Bot command runner<br/>[telebot.py]"]
  node_telegram(("Telegram service"))
  node_local_files[("Selected files")]
end

subgraph group_router["Router capabilities"]
  node_firmware["RTA-WRT firmware"]
  node_modem["Modem management"]
  node_tunneling["Proxy tunneling"]
  node_monitoring["Internet watchdog"]
  node_dashboard["Router dashboard<br/>[sw.js]"]
  node_modem_apps["Modem utilities"]
  node_oled["OLED display"]
  node_theme["Admin themes"]
end

node_operator(("Web user"))
node_base64["Base64 tool<br/>[base64.php]"]
node_bot_user(("Bot operator"))
node_router_user(("Router administrator"))

node_operator -->|"manage files"| node_tinyfm
node_tinyfm -->|"read and write"| node_filesystem
node_operator -->|"edit files"| node_oceditor
node_oceditor -->|"save content"| node_filesystem
node_oceditor -->|"embed editor"| node_ace
node_ace -->|"load mode"| node_ace_modes
node_ace -->|"run analysis"| node_ace_workers
node_operator -->|"encode or decode"| node_base64
node_bot_user -->|"configure and run"| node_telebot
node_telebot -->|"select files"| node_local_files
node_telebot -->|"send messages and files"| node_telegram
node_router_user -->|"install and administer"| node_firmware
node_firmware -.->|"provides"| node_modem
node_firmware -.->|"provides"| node_tunneling
node_firmware -.->|"provides"| node_monitoring
node_firmware -.->|"includes dashboard"| node_dashboard
node_firmware -.->|"provides"| node_modem_apps
node_firmware -.->|"supports"| node_oled
node_firmware -.->|"includes"| node_theme

click node_tinyfm "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/tinyfm.php"
click node_oceditor "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/oceditor.php"
click node_ace "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/ace.js"
click node_ace_modes "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/mode-javascript.js"
click node_ace_workers "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/worker-javascript.js"
click node_base64 "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/base64.php"
click node_telebot "https://github.com/rizkikotet-dev/rta-wrt/blob/main/telebot.py"
click node_dashboard "https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/etc/nikki/run/ui/dashboard/sw.js"

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_tinyfm,node_filesystem,node_operator toneBlue
class node_oceditor,node_ace,node_ace_modes,node_ace_workers toneAmber
class node_telebot,node_telegram,node_local_files,node_router_user toneMint
class node_firmware,node_modem,node_tunneling,node_monitoring,node_dashboard,node_modem_apps,node_oled,node_theme toneRose
class node_base64 toneTeal
class node_bot_user toneIndigo
```

## Components

### TinyFM

- [File manager](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/tinyfm.php): `files/www/tinyfm/tinyfm.php`
- **Server files**

### Editing tools

- [Code editor](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/oceditor.php): `files/www/tinyfm/oceditor.php`
- [Ace editor](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/ace.js): `files/www/tinyfm/ace/ace.js`
- [Language modes](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/mode-javascript.js): `files/www/tinyfm/ace/mode-javascript.js`
- [Editor workers](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/tinyfm/ace/worker-javascript.js): `files/www/tinyfm/ace/worker-javascript.js`

### Telegram sender

- [Bot command runner](https://github.com/rizkikotet-dev/rta-wrt/blob/main/telebot.py): `telebot.py`
- **Telegram service**
- **Selected files**

### Router capabilities

- **RTA-WRT firmware**
- **Modem management**
- **Proxy tunneling**
- **Internet watchdog**
- [Router dashboard](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/etc/nikki/run/ui/dashboard/sw.js): `files/etc/nikki/run/ui/dashboard/sw.js`
- **Modem utilities**
- **OLED display**
- **Admin themes**

### Other components

- **Web user**
- [Base64 tool](https://github.com/rizkikotet-dev/rta-wrt/blob/main/files/www/base64.php): `files/www/base64.php`
- **Bot operator**
- **Router administrator**

## Connections

- Web user → File manager: manage files
- File manager → Server files: read and write
- Web user → Code editor: edit files
- Code editor → Server files: save content
- Code editor → Ace editor: embed editor
- Ace editor → Language modes: load mode
- Ace editor → Editor workers: run analysis
- Web user → Base64 tool: encode or decode
- Bot operator → Bot command runner: configure and run
- Bot command runner → Selected files: select files
- Bot command runner → Telegram service: send messages and files
- Router administrator → RTA-WRT firmware: install and administer
- RTA-WRT firmware → Modem management: provides
- RTA-WRT firmware → Proxy tunneling: provides
- RTA-WRT firmware → Internet watchdog: provides
- RTA-WRT firmware → Router dashboard: includes dashboard
- RTA-WRT firmware → Modem utilities: provides
- RTA-WRT firmware → OLED display: supports
- RTA-WRT firmware → Admin themes: includes
