Spaces:
Paused
Paused
| title: HF Framework | |
| emoji: 🚀 | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| pinned: false | |
| # HF Framework | |
| 基于 Hugging Face Space 部署的模块化服务框架。 | |
| ## 架构 | |
| 单容器部署,Ubuntu 基础镜像,Caddy 路由 + 多进程模块: | |
| ``` | |
| ┌───────────── 容器 ─────────────┐ | |
| │ │ | |
| │ 用户请求 → Caddy(:7860) │ | |
| │ │ │ | |
| │ ┌──────────┼──────────┐ │ | |
| │ │ │ │ │ | |
| │ localhost localhost localhost│ | |
| │ :8000 :8001 :8002 │ | |
| │ (api 模块) (example) (...) │ | |
| │ │ | |
| └────────────────────────────────┘ | |
| ``` | |
| ## 快速开始 | |
| ```bash | |
| docker build -t hf-framework . | |
| docker run -p 7860:7860 hf-framework | |
| ``` | |
| 访问 http://localhost:7860 | |
| ## 添加新模块 | |
| 在 `modules/` 下创建目录,至少提供 `start.sh`: | |
| ``` | |
| modules/my-module/ | |
| ├── install.sh # [可选] 构建时安装依赖 | |
| ├── start.sh # [必需] 进程启动入口 | |
| └── app/ # [可选] 模块代码 | |
| ``` | |
| **模块生命周期:** | |
| - **构建时** → Dockerfile 自动执行 `modules/*/install.sh` | |
| - **运行时** → start.sh 自动遍历执行 `modules/*/start.sh` | |
| ### 示例:Python 模块 | |
| ```bash | |
| mkdir -p modules/my-py-module/app | |
| ``` | |
| `install.sh`: | |
| ```sh | |
| apt-get update && apt-get install -y python3 python3-pip | |
| pip3 install -r requirements.txt | |
| ``` | |
| `start.sh`: | |
| ```sh | |
| exec python3 app/main.py | |
| ``` | |
| ### 示例:Node.js 模块 | |
| `install.sh`: | |
| ```sh | |
| apt-get update && apt-get install -y nodejs npm | |
| npm install | |
| ``` | |
| `start.sh`: | |
| ```sh | |
| exec node app/server.js | |
| ``` | |
| ## 添加路由 | |
| 编辑 `caddy/Caddyfile`,在 `:7860` 块中添加: | |
| ```caddy | |
| handle /my-module/* { | |
| reverse_proxy localhost:PORT | |
| } | |
| ``` | |
| ## 项目结构 | |
| ``` | |
| hf-framework/ | |
| ├── caddy/ | |
| │ └── Caddyfile # 路由配置 | |
| ├── modules/ | |
| │ └── example/ # 示例模块 | |
| │ ├── app/main.py | |
| │ ├── install.sh | |
| │ ├── requirements.txt | |
| │ └── start.sh | |
| ├── Dockerfile # Ubuntu + Caddy + 模块安装 | |
| ├── start.sh # 入口:后台启动所有模块 → Caddy 前台 | |
| ├── AGENTS.md | |
| └── README.md | |
| ``` | |
| ## 端口规划 | |
| | 端口 | 用途 | | |
| |------|------| | |
| | 7860 | Caddy(对外,HF Space 默认) | | |
| | 8000 | api 模块 | | |
| | 8001 | example 模块 | | |
| | 8002 | webssh 模块(ttyd) | | |
| | 8003+ | 预留 | | |