# happy_html_puter **Repository Path**: xkx1029/happy_html_puter ## Basic Information - **Project Name**: happy_html_puter - **Description**: 一个轻量级的 HTML 应用托管平台,让您轻松部署和管理多个独立的 HTML 应用。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-07 - **Last Updated**: 2026-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Happy HTML Puter 一个轻量级的 HTML 应用托管平台,让您轻松部署和管理多个独立的 HTML 应用。 ## ✨ 功能特性 - **一键部署**:上传 HTML 文件或直接输入代码即可创建应用 - **容器化运行**:每个应用运行在独立的 Docker 容器中,互相隔离 - **资源监控**:实时查看 CPU、内存、存储使用情况 - **数据库支持**:自动检测并部署 SQLite 数据库文件 - **主题切换**:支持亮色/暗色主题,设置自动保存 - **日志查看**:实时查看应用容器日志,支持日志级别高亮 - **代码编辑**:在线编辑应用代码,即时保存 - **反向代理**:所有应用通过统一入口访问 - **环境变量**:支持为应用配置运行时环境变量,修改后自动重启 - **应用导入/导出**:支持将应用打包为 ZIP 文件导出,或从 ZIP 文件导入 - **批量操作**:支持批量启动、停止、重启、删除应用 - **健康检查**:系统每60秒自动执行健康检查,检测异常应用并自动恢复 - **系统监控**:健康检查历史记录与日志中心,便于问题排查 ## 🛠️ 技术栈 | 层次 | 技术 | 版本 | |------|------|------| | 后端 | FastAPI | 0.115.6 | | 后端 | Uvicorn | 0.34.0 | | 后端 | Docker SDK | 7.1.0 | | 前端 | React | 18.3.1 | | 前端 | TypeScript | 5.6.2 | | 前端 | Tailwind CSS | 3.4.16 | | 前端 | Vite | 6.0.1 | | 容器 | nginx:alpine | latest | | 数据库 | nouchka/sqlite3 | latest | ## 📁 项目结构 ``` happy_html_puter/ ├── backend/ │ ├── main.py # FastAPI 主入口与 API 路由 │ ├── docker_manager.py # Docker 容器管理核心逻辑 │ ├── requirements.txt # Python 依赖 │ └── data/ │ ├── apps/ # 应用数据存储目录 │ └── health_history.json # 健康检查历史记录 ├── frontend/ │ ├── src/ │ │ ├── components/ │ │ │ ├── Dashboard.tsx # 仪表盘主界面 │ │ │ ├── AppCard.tsx # 应用卡片组件 │ │ │ ├── AppDetail.tsx # 应用详情页 │ │ │ ├── CreateAppModal.tsx # 创建应用弹窗 │ │ │ ├── CodeEditor.tsx # 代码编辑器 │ │ │ ├── LogViewer.tsx # 日志查看器 │ │ │ ├── Layout.tsx # 布局组件 │ │ │ ├── MouseGlow.tsx # 鼠标光晕特效 │ │ │ ├── EnvVarsEditor.tsx # 环境变量编辑器 │ │ │ ├── ImportAppModal.tsx # 导入应用弹窗 │ │ │ └── HealthHistoryModal.tsx # 系统监控弹窗 │ │ ├── api/client.ts # API 客户端 │ │ ├── types/index.ts # TypeScript 类型定义 │ │ └── contexts/ │ │ ├── ThemeContext.tsx # 主题上下文 │ │ └── AppContext.tsx # 应用数据上下文 │ ├── dist/ # 前端构建产物 │ └── package.json # 前端依赖 ├── BUGS.md # Bug 记录与修复文档 ├── docker-compose.yml # Docker Compose 配置 ├── Dockerfile # 项目 Docker 镜像构建配置 ├── start.sh # Linux/macOS 启动脚本 └── start.bat # Windows 启动脚本 ``` ## 🚀 快速开始 ### 环境要求 - **Docker**:必须安装 Docker Desktop(Windows/macOS)或 Docker Engine(Linux) - **Python**:3.8+(仅本地开发需要) - **Node.js**:18+(仅本地开发需要) ### 方法一:使用 Docker Compose(推荐) ```bash # 克隆项目(GitHub) git clone https://github.com/xkx121029/happy_html_puter.git cd happy_html_puter # 或者从 Gitee 克隆 git clone https://gitee.com/xkx1029/happy_html_puter.git cd happy_html_puter # 启动服务 docker-compose up -d # 访问应用 # 浏览器打开 http://localhost:8002 ``` ### 方法二:本地开发运行 ```bash # 克隆项目(GitHub) git clone https://github.com/xkx121029/happy_html_puter.git cd happy_html_puter # 或者从 Gitee 克隆 git clone https://gitee.com/xkx1029/happy_html_puter.git cd happy_html_puter # 安装后端依赖 cd backend pip install -r requirements.txt # 启动后端服务 python main.py # 在另一个终端启动前端 cd ../frontend npm install npm run dev # 访问应用 # 浏览器打开 http://localhost:5173 ``` ## 📖 使用说明 ### 创建应用 1. 在仪表盘点击「创建应用」按钮 2. 输入应用名称 3. 选择上传文件或输入 HTML 代码 4. 点击「创建」按钮 ### 管理应用 - **启动/停止**:点击应用卡片上的启动/停止按钮 - **重启**:点击重启按钮重新启动应用 - **删除**:点击删除按钮删除应用(不可恢复) - **查看详情**:点击应用卡片查看详细信息和日志 - **批量操作**:选择多个应用后,可批量执行启动、停止、重启、删除操作 ### 预览应用 应用启动后,点击「预览」按钮即可在浏览器中查看应用效果。 ### 编辑代码 在应用详情页点击「编辑文件」按钮,可以在线编辑应用的 HTML 文件。 ### 环境变量 在应用详情页点击「环境变量」按钮,可以配置应用运行时的环境变量。修改后应用会自动重启。 ### 导入/导出应用 - **导出**:在应用详情页点击「导出」按钮,将应用打包为 ZIP 文件下载 - **导入**:在仪表盘点击「导入应用」按钮,选择 ZIP 文件导入 ### 系统监控 点击顶部导航栏的「系统监控」按钮,可查看: - **健康检查**:自动检测应用状态并记录历史 - **日志中心**:查看所有运行中应用的日志,支持日志级别高亮 ## ⚙️ 配置说明 ### Docker 网络 应用使用 `happy_puter_network` 专用网络进行容器间通信,无需暴露主机端口。 ### 数据持久化 应用数据存储在 `backend/data/apps/` 目录下,每个应用有独立的文件夹: ``` apps/ └── {app_id}/ ├── html/ # HTML 文件 ├── database/ # 数据库文件(如 SQLite) ├── meta.json # 应用元信息 └── docker-compose.yml # 容器配置 ``` ### 环境变量 | 变量 | 说明 | 默认值 | |------|------|--------| | APPS_DIR | 应用数据存储目录 | backend/data/apps | | PYTHONUNBUFFERED | Python 输出缓冲 | 1 | ## 📝 更新日志 ### v1.1.0 (2026-07-18) **新增功能** - ✅ 环境变量配置:支持为应用设置运行时环境变量,修改后自动重启 - ✅ 应用导入/导出:支持将应用打包为 ZIP 文件导出,或从 ZIP 文件导入 - ✅ 批量操作:支持批量启动、停止、重启、删除多个应用 - ✅ 健康检查:系统每60秒自动执行健康检查,检测异常应用并自动恢复 - ✅ 系统监控:健康检查历史记录与日志中心,支持日志级别高亮 - ✅ AppContext:新增 React Context 管理应用数据,减少重复请求 **Bug 修复** - ✅ 修复 AppDetail.tsx 中 app.db_port 可能为 undefined 的问题 - ✅ 修复 AppCard.tsx 中 app.port 和 total_size 可能为 undefined 的问题 - ✅ 修复 LogViewer.tsx 中 logs 可能为 null/undefined 的问题 - ✅ 修复 CodeEditor.tsx 中文件名无扩展名时的 lastIndexOf bug **安全改进** - ✅ 加强文件路径安全检查,防止路径遍历攻击 - ✅ 添加 ALLOWED_ORIGINS 环境变量配置 - ✅ 使用 DaoCloud 镜像加速,提高国内访问速度 ### v1.0.0 (2026-07-07) - ✅ 项目初始化 - ✅ 基础应用管理功能(创建、启动、停止、删除) - ✅ 资源监控(CPU、内存、存储) - ✅ SQLite 数据库支持 - ✅ 主题切换(亮色/暗色) - ✅ 代码在线编辑 ## 🤝 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 本仓库 2. 创建特性分支:`git checkout -b feature/your-feature` 3. 提交更改:`git commit -m 'Add some feature'` 4. 推送到分支:`git push origin feature/your-feature` 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证,详见 [LICENSE](LICENSE) 文件。 ## 📞 联系方式 如有问题或建议,欢迎提交 Issue 或发送邮件。 --- **Happy HTML Puter** - 让 HTML 应用部署更简单 🎉