# muink/luci-app-tinyfilemanager architecture

> Architecture diagram of the GitHub repository muink/luci-app-tinyfilemanager, 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/muink/luci-app-tinyfilemanager
- Repository: https://github.com/muink/luci-app-tinyfilemanager

## Overview

LuCI Tiny File Manager embeds a web-based file manager in LuCI and provides configuration and maintenance controls. The principal workflow is opening the LuCI page, loading the manager through its web route, and managing files in the browser; optional LuCI-session auto-login validates the session through ubus. The README documents file operations, uploads, text editing with syntax highlighting, multi-user access, and online document viewers. The manager archive and service scripts are present, but their internals were not sampled, so their detailed wiring is omitted.

Main entry points: [`htdocs/tinyfilemanager/index.tgz`](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz) (Tiny File Manager), [`htdocs/luci-static/resources/view/tinyfilemanager/config.js`](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/luci-static/resources/view/tinyfilemanager/config.js) (Settings page), [`root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json`](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json) (LuCI menu entry), [`htdocs/luci-static/resources/view/tinyfilemanager/main.js`](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/luci-static/resources/view/tinyfilemanager/main.js) (Manager iframe)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_luci["LuCI interface"]
  node_menu["LuCI menu entry"]
  node_manager_view["Manager iframe<br/>[main.js]"]
  node_settings_view["Settings page<br/>[config.js]"]
end

subgraph group_runtime["File manager"]
  node_nginx_route["Web route"]
  node_manager_app["Tiny File Manager<br/>[index.tgz]"]
  node_file_ops["File operations<br/>[index.tgz]"]
  node_uploads["File uploads<br/>[index.tgz]"]
  node_text_editor["Text editor<br/>[index.tgz]"]
  node_online_viewers["Online viewers<br/>[index.tgz]"]
  node_auth["Session auto-login"]
end

subgraph group_settings["Configuration"]
  node_uci[("Tiny File Manager settings")]
end

subgraph group_maintenance["Maintenance"]
  node_service["Service controls<br/>[tinyfilemanager]"]
  node_update["Updater"]
  node_config_save["Config save helper"]
end

node_operator(("Router user"))
node_ubus["LuCI session service"]

node_operator -->|"opens"| node_menu
node_menu -->|"opens page"| node_manager_view
node_manager_view -->|"loads iframe"| node_nginx_route
node_nginx_route -->|"routes requests"| node_manager_app
node_manager_app -->|"supports"| node_file_ops
node_manager_app -->|"supports"| node_uploads
node_manager_app -->|"supports"| node_text_editor
node_manager_app -.->|"supports"| node_online_viewers
node_manager_app -->|"includes integration"| node_auth
node_auth -->|"validates session"| node_ubus
node_operator -->|"configures"| node_settings_view
node_settings_view -->|"loads settings"| node_uci
node_settings_view -->|"requests reload"| node_service
node_settings_view -->|"checks updates"| node_service
node_settings_view -->|"starts upgrade"| node_update

click node_menu "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json"
click node_manager_view "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/luci-static/resources/view/tinyfilemanager/main.js"
click node_settings_view "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/luci-static/resources/view/tinyfilemanager/config.js"
click node_nginx_route "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/etc/nginx/conf.d/tinyfilemanager.locations"
click node_manager_app "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz"
click node_file_ops "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz"
click node_uploads "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz"
click node_text_editor "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz"
click node_online_viewers "https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz"
click node_auth "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/share/tinyfilemanager/auto-login-base-luci.php"
click node_uci "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/etc/config/tinyfilemanager"
click node_service "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/etc/init.d/tinyfilemanager"
click node_update "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/libexec/tinyfilemanager-update"
click node_config_save "https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/libexec/tinyfilemanager-config-save"

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_menu,node_manager_view,node_settings_view,node_operator toneBlue
class node_nginx_route,node_manager_app,node_file_ops,node_uploads,node_text_editor,node_online_viewers,node_auth toneAmber
class node_uci toneMint
class node_service,node_update,node_config_save toneRose
class node_ubus toneIndigo
```

## Components

### LuCI interface

- [LuCI menu entry](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json): `root/usr/share/luci/menu.d/luci-app-tinyfilemanager.json`
- [Manager iframe](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/luci-static/resources/view/tinyfilemanager/main.js): `htdocs/luci-static/resources/view/tinyfilemanager/main.js`
- [Settings page](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/luci-static/resources/view/tinyfilemanager/config.js): `htdocs/luci-static/resources/view/tinyfilemanager/config.js`

### File manager

- [Web route](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/etc/nginx/conf.d/tinyfilemanager.locations): `root/etc/nginx/conf.d/tinyfilemanager.locations`
- [Tiny File Manager](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz): `htdocs/tinyfilemanager/index.tgz`
- [File operations](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz): `htdocs/tinyfilemanager/index.tgz`
- [File uploads](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz): `htdocs/tinyfilemanager/index.tgz`
- [Text editor](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz): `htdocs/tinyfilemanager/index.tgz`
- [Online viewers](https://github.com/muink/luci-app-tinyfilemanager/blob/master/htdocs/tinyfilemanager/index.tgz): `htdocs/tinyfilemanager/index.tgz`
- [Session auto-login](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/share/tinyfilemanager/auto-login-base-luci.php): `root/usr/share/tinyfilemanager/auto-login-base-luci.php`

### Configuration

- [Tiny File Manager settings](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/etc/config/tinyfilemanager): `root/etc/config/tinyfilemanager`

### Maintenance

- [Service controls](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/etc/init.d/tinyfilemanager): `root/etc/init.d/tinyfilemanager`
- [Updater](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/libexec/tinyfilemanager-update): `root/usr/libexec/tinyfilemanager-update`
- [Config save helper](https://github.com/muink/luci-app-tinyfilemanager/blob/master/root/usr/libexec/tinyfilemanager-config-save): `root/usr/libexec/tinyfilemanager-config-save`

### Other components

- **Router user**
- **LuCI session service**

## Connections

- Router user → LuCI menu entry: opens
- LuCI menu entry → Manager iframe: opens page
- Manager iframe → Web route: loads iframe
- Web route → Tiny File Manager: routes requests
- Tiny File Manager → File operations: supports
- Tiny File Manager → File uploads: supports
- Tiny File Manager → Text editor: supports
- Tiny File Manager → Online viewers: supports
- Tiny File Manager → Session auto-login: includes integration
- Session auto-login → LuCI session service: validates session
- Router user → Settings page: configures
- Settings page → Tiny File Manager settings: loads settings
- Settings page → Service controls: requests reload
- Settings page → Service controls: checks updates
- Settings page → Updater: starts upgrade
