Script-Server:脚本 Web 化工具

简介

Script-Server 是一个 Python 脚本服务器,将 Shell/Python 脚本包装成 Web 应用。零代码改动,只需 JSON 配置,自动生成参数表单、实时输出、权限控制、审计日志。

项目地址:https://github.com/bugy/script-server

解决的痛点

  • 非技术人员用命令行容易出错,需要可视化界面
  • 脚本零散,缺少统一入口和权限管理
  • 手动跑脚本缺少审计日志和执行历史
  • 参数校验、输入输出需要重复造轮子

安装

Docker 方式

docker pull bugy/script-server:latest
docker run -p 5000:5000 -v /path/to/conf:/opt/script-server/conf bugy/script-server

Python 方式

环境要求:Python 3.7+,Tornado 5/6。

配置示例

conf/runners/hello.json

{
  "id": "say_hello",
  "title": "打个招呼",
  "script": "scripts/say_hello.sh",
  "parameters": [
    {"name": "name", "title": "你的名字", "type": "text", "default": "Tom"}
  ]
}

scripts/say_hello.sh

#!/usr/bin/env bash
echo "Hello, $1!欢迎使用 Script-Server~"

启动后访问 http://localhost:5000 即可使用。

核心功能

  • 支持文本、文件上传、下拉框等多种参数类型
  • 实时输出、输入交互、输出文件下载
  • 多种认证:LDAP、Google OAuth、htpasswd
  • 审计日志、执行历史记录
  • 脚本放 conf/runners/ 目录,后台自动生成 Web 表单

优缺点

优点 缺点
零改动让脚本秒变 Web 应用 JSON 配置需要熟悉格式
多种参数类型支持 GUI 风格偏简单
实时输出 + 文件下载 老版本有 XSS/CSRF 隐患(1.17+ 已修复)
LDAP/OAuth 认证 + 审计日志 高并发场景需调优