docs: 补充项目文档与安全策略
这个提交包含在:
+27
@@ -0,0 +1,27 @@
|
|||||||
|
# 版本控制与 IDE
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# 敏感配置:严禁打进镜像
|
||||||
|
.env
|
||||||
|
replacements.txt
|
||||||
|
|
||||||
|
# 运行时数据
|
||||||
|
logs/
|
||||||
|
*.log
|
||||||
|
*.png
|
||||||
|
|
||||||
|
# 虚拟环境与缓存
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
|
||||||
|
# 文档(镜像运行不需要)
|
||||||
|
readme.md
|
||||||
|
CONTRIBUTING.md
|
||||||
|
SECURITY.md
|
||||||
|
CHANGELOG.md
|
||||||
|
LICENSE
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
# 更新日志
|
||||||
|
|
||||||
|
本项目遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 格式。
|
||||||
|
|
||||||
|
## [1.0.0] - 2026-09-07
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- 服务器状态监控:定时(60 秒)通过 SSH 采集 `top` 指标(CPU / 内存 / 负载 / 任务状态)
|
||||||
|
- PC 端与移动端自适应 Web 面板,支持远程关机 / 重启(带二次确认)
|
||||||
|
- 服务器列表通过 `SERVERS_JSON` 环境变量注入,附 `.env.example` 配置模板
|
||||||
|
- Docker / docker-compose 部署支持
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
- 移除早期版本中硬编码的服务器 IP 与密码(历史已用 `git filter-repo` 清洗重写)
|
||||||
|
- 关闭默认 Flask debug 模式(`FLASK_DEBUG` 控制,默认关闭)
|
||||||
|
- 新增 `.dockerignore`,防止 `.env` 凭据与本地数据进入镜像层
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
# 贡献指南
|
||||||
|
|
||||||
|
感谢关注本项目!欢迎通过 Issue 反馈问题、通过 Pull Request 提交改进。
|
||||||
|
|
||||||
|
## 提交 Issue
|
||||||
|
|
||||||
|
- 反馈 Bug 时请附上:复现步骤、期望行为、实际行为、运行环境(操作系统 / Python 版本 / Docker 版本)
|
||||||
|
- **注意脱敏**:不要在 Issue 中粘贴真实的服务器 IP、账号、密码或日志中的敏感信息
|
||||||
|
|
||||||
|
## 提交 Pull Request
|
||||||
|
|
||||||
|
1. Fork 本仓库并创建功能分支:
|
||||||
|
```bash
|
||||||
|
git checkout -b feature/your-feature
|
||||||
|
```
|
||||||
|
2. 保持改动聚焦,一个 PR 只解决一类问题
|
||||||
|
3. 提交前自查:
|
||||||
|
- 代码无语法错误(`python -m py_compile app.py test.py`)
|
||||||
|
- 不引入任何硬编码的 IP / 账号 / 密码
|
||||||
|
- 涉及配置的改动需同步更新 `.env.example` 与 `readme.md`
|
||||||
|
4. 提交信息使用约定式格式,如 `feat: xxx`、`fix: xxx`、`docs: xxx`、`chore: xxx`
|
||||||
|
|
||||||
|
## 安全问题
|
||||||
|
|
||||||
|
请勿通过公开 Issue 报告安全漏洞,参见 [SECURITY.md](SECURITY.md)。
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 wangchuanli
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
# 安全策略
|
||||||
|
|
||||||
|
## 支持的版本
|
||||||
|
|
||||||
|
| 版本 | 支持情况 |
|
||||||
|
| --- | --- |
|
||||||
|
| master 分支最新代码 | ✅ 支持 |
|
||||||
|
|
||||||
|
## 报告漏洞
|
||||||
|
|
||||||
|
**请勿通过公开 Issue 报告安全漏洞。**
|
||||||
|
|
||||||
|
如发现安全漏洞,请通过 GitHub 私有安全公告(Security Advisories → Report a vulnerability)或私下联系维护者报告。我们会在确认后尽快响应并致谢。
|
||||||
|
|
||||||
|
报告时请尽量包含:
|
||||||
|
|
||||||
|
- 漏洞类型与影响的文件 / 接口
|
||||||
|
- 复现步骤或 PoC
|
||||||
|
- 影响评估
|
||||||
|
|
||||||
|
## 已知的安全边界
|
||||||
|
|
||||||
|
本项目定位为**内网轻量运维面板**,设计上未内置以下能力,部署时请自行加固:
|
||||||
|
|
||||||
|
- 无登录认证与 RBAC:任何能访问服务端口的人均可远程关机 / 重启受控服务器
|
||||||
|
- 无 CSRF 防护
|
||||||
|
- SSH 连接使用 `AutoAddPolicy`,不校验主机指纹,存在中间人风险
|
||||||
|
|
||||||
|
请务必通过防火墙、VPN 或反向代理(如 Nginx + BasicAuth)限制访问来源,切勿将服务直接暴露到公网。
|
||||||
|
|
||||||
|
## 凭据安全
|
||||||
|
|
||||||
|
- 所有服务器凭据通过环境变量(`SERVERS_JSON` 等)注入,仓库中不存在任何真实凭据
|
||||||
|
- 请确认 `.env` 已被 `.gitignore` 忽略,切勿将真实凭据提交到仓库或 Issue 中
|
||||||
@@ -51,3 +51,29 @@ docker compose up -d --build
|
|||||||
- 代码中 `AutoAddPolicy()` 会自动接受未知主机指纹,存在中间人风险;对安全要求较高的环境请改为 `RejectPolicy` 并预置 known_hosts。
|
- 代码中 `AutoAddPolicy()` 会自动接受未知主机指纹,存在中间人风险;对安全要求较高的环境请改为 `RejectPolicy` 并预置 known_hosts。
|
||||||
- 建议 SSH 使用密钥认证代替密码认证。
|
- 建议 SSH 使用密钥认证代替密码认证。
|
||||||
- 生产环境保持 `FLASK_DEBUG` 关闭(默认已关闭)。
|
- 生产环境保持 `FLASK_DEBUG` 关闭(默认已关闭)。
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
linux_controller/
|
||||||
|
├── app.py # 主程序:Web 服务 + 状态采集 + 控制接口
|
||||||
|
├── templates/ # 页面模板(index.html PC 端 / m.html 移动端)
|
||||||
|
├── test.py # SSH 连接测试脚本(凭据同样从环境变量读取)
|
||||||
|
├── requirements.txt # Python 依赖
|
||||||
|
├── Dockerfile # 容器构建
|
||||||
|
├── docker-compose.yml # 编排配置
|
||||||
|
├── send.sh # 部署传输脚本
|
||||||
|
└── .env.example # 环境变量配置模板
|
||||||
|
```
|
||||||
|
|
||||||
|
## 安全漏洞
|
||||||
|
|
||||||
|
发现安全漏洞请勿提交公开 Issue,参见 [SECURITY.md](SECURITY.md)。
|
||||||
|
|
||||||
|
## 贡献
|
||||||
|
|
||||||
|
欢迎提交 Issue 与 Pull Request,贡献流程参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
本项目基于 [MIT License](LICENSE) 开源。
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户