Advanced Fursuit of Electrical Device and Information Universal Manager
AFEDIUM 是一个为 Linux 系统设计的模块化远程管理平台,支持快速部署、多功能拓展和高可用性。它允许你通过 WebSocket 远程控制设备、查看状态、管理文件,适用于电子眼显示等场景。
-
🔌 模块化设计 功能模块可动态加载、卸载,互不干扰,独立运行。
-
🌐 WebSocket 远程控制 内置 WebSocket 服务,支持安全连接与远程操作。
-
🔒 灵活认证机制 支持免密、固定密码、动态验证码等多种认证方式。
-
🖥️ 远程终端访问 可执行后端命令,实时返回输出结果。
-
📂 全功能文件管理 支持远程浏览、上传、下载、删除、重命名、移动,支持大文件分块与校验。
-
⚙️ 状态监控与控制 实时查看或修改系统与模块状态,方便调试。
-
🔄 自动依赖管理 模块启动时自动安装缺失的 Python 包或系统依赖。
-
🚀 在线更新机制 支持 Git 拉取更新并热重载,无需重启部署。
-
🎨 易于扩展 开发者可按需编写新模块,快速添加功能。
项目结构清晰,便于理解与扩展:
Afedium/
├── config/ # 配置文件目录
├── lib/ # 通用库和工具函数
│ ├── Event.py # 事件处理系统
│ ├── command.py # 命令处理系统
│ ├── config.py # 配置管理
│ ├── lib.py # 核心库函数
│ ├── support_lib.py # 支持库函数
│ └── var.py # 全局变量
├── logs/ # 日志输出目录
├── pyz_modules/ # 模块存放目录
├── system/ # 核心系统模块
│ ├── display_manager.py # 显示管理器
│ ├── external_handler.py # 外部处理器
│ ├── module_mgmt.py # 模块管理器
│ └── ws_server.py # WebSocket服务器
├── plugin_data/ # 模块使用的静态资源
├── core.py # 主程序入口
├── Afedium_ws.md # WebSocket协议文档
├── plugin_dev.md # 模块开发文档
└── README.md # 本文件
- Python 3.9+
- Git
- pip(用于安装依赖)
-
克隆项目
git clone https://github.com/furryaxw/Afedium.git cd Afedium -
运行主程序
python3 core.py
程序将自动安装所需依赖,并启动本地控制台和 WebSocket 服务。默认配置支持单显示器即插即用,无需额外设置。
AFEDIUM 的配置文件位于 config/ 目录下(首次运行时会自动生成),包含以下配置文件:
{
"enable_display": true
}enable_display: 是否启用显示管理器界面功能
{
"modules_endpoint": "http://modules.afedium.furryaxw.top/index.json",
"modules": {
"core": {
"id": "core",
"type": "core",
"method": "none",
"source": "waiting"
}
},
"waiting": []
}modules_endpoint: 模块仓库索引文件的URLmodules: 已安装模块的信息waiting: 等待安装的模块列表
{
"server_name": "hostname",
"server_port": 11840,
"broadcast_port": 12840,
"broadcast_interval": 1,
"server_uuid": "uuid-string",
"features": {},
"auth_type": "none",
"auth_timeout": 60,
"password": "afedium",
"captcha_length": 6
}server_name: 服务器名称(默认为主机名)server_port: WebSocket服务器端口broadcast_port: 广播端口broadcast_interval: 广播间隔(秒)server_uuid: 服务器唯一标识符features: 服务器功能特性auth_type: 认证类型("none", "password", "captcha")auth_timeout: 认证超时时间(秒)password: 服务器密码(当auth_type为"password"时使用)captcha_length: 验证码长度(当auth_type为"captcha"时使用)
{
"hostname": "platform.node()",
"Disabled": ["module_template"],
"online": true,
"debugging": false,
"pip_mirror": "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple",
"git_mirror": "https://ghproxy.com/https://github.com",
"portable_git": "WIP"
}hostname: 服务器主机名Disabled: 已禁用的模块列表online: 是否启用在线功能debugging: 是否启用调试模式pip_mirror: pip包安装镜像源git_mirror: Git克隆镜像源portable_git: 便携式Git路径(开发中)
你可以通过 WebSocket 客户端远程连接 AFEDIUM:
- 推荐使用官方客户端 Afedium Mobile。
- 或参考文档 Afedium_ws.md 自行开发客户端。
如果你想开发自定义模块,请参考详细的开发文档和示例: 👉 AFEDIUM 模块开发文档 👉 AFEDIUM 模块模板仓库
- ws_server.py: WebSocket 服务器,提供远程连接功能
- display_manager.py: 显示管理器,控制显示输出
- module_mgmt.py: 模块管理器,负责模块的加载和卸载
- external_handler.py: 外部处理器,处理外部请求
- Event.py: 事件处理系统
- command.py: 命令处理系统
- config.py: 配置管理
- lib.py: 核心库函数
- support_lib.py: 支持库函数
- var.py: 全局变量定义
AFEDIUM 提供了丰富的控制命令:
boot <模块名>: 加载并启动指定模块quit [模块名]: 停止指定模块(无参数则退出整个程序)reload: 重载整个程序upgrade: 在线更新程序command unregister <命令名>: 注销指定命令del logs: 清空日志文件get <路径>: 获取系统信息set <路径> <值>: 设置系统变量值
欢迎贡献和反馈!AFEDIUM 正在不断发展中,期待你的参与!
本项目采用 GPL-3.0 License 开源许可。