FunServer 是一个 Python 服务器管理框架,提供统一的接口来管理各种服务器应用程序。它支持跨平台安装、进程管理、日志记录和配置管理。
- 🚀 统一的服务器管理接口 - 提供 start、stop、restart、update 等标准操作
- 🔧 跨平台支持 - 支持 Linux、macOS 和 Windows 系统
- 📊 进程管理 - 自动 PID 跟踪和进程生命周期管理
- 📝 日志管理 - 自动日志记录和日志文件管理
- 🎯 模块化架构 - 易于扩展和添加新的服务器实现
- 💻 命令行界面 - 基于 Typer 的友好命令行工具
pip install funserverFunServer 提供了统一的命令行接口来管理服务器:
# 启动服务器 funserver start # 停止服务器 funserver stop # 重启服务器 funserver restart # 更新服务器 funserver update # 运行服务器(前台运行) funserver runFunServer 内置了对 OneHub(API 网关)的支持:
# 安装 OneHub funonehub install # 启动 OneHub 服务 funonehub start # 停止 OneHub 服务 funonehub stop # 重启 OneHub 服务 funonehub restart # 更新 OneHub funonehub update- BaseServer - 服务器基类,提供标准的服务器管理功能
- BaseInstall - 安装管理基类,支持跨平台安装
- BaseStart - 启动管理基类,定义服务器启动接口
src/funserver/ ├── servers/ │ ├── base/ # 基础框架 │ │ ├── base.py # 服务器基类 │ │ ├── install.py # 安装管理 │ │ └── start.py # 启动管理 │ ├── funjupyter/ # Jupyter 服务器支持 │ └── onehub.py # OneHub 服务器实现 └── __init__.py 继承 BaseServer 类来创建自定义服务器:
fromfunserver.servers.base.baseimportBaseServer, server_parserclassMyCustomServer(BaseServer): def__init__(self): super().__init__(server_name="mycustomserver") defrun_cmd(self, *args, **kwargs): # 返回启动服务器的命令return"my-server --config config.yaml"definstall_linux(self, *args, **kwargs): # Linux 安装逻辑returnTruedefinstall_macos(self, *args, **kwargs): # macOS 安装逻辑returnTruedefinstall_windows(self, *args, **kwargs): # Windows 安装逻辑returnTruedefupdate(self, *args, **kwargs): # 更新逻辑passdefmycustomserver(): app=server_parser(MyCustomServer()) app()在 pyproject.toml 中添加脚本入口:
[project.scripts] mycustomserver = "mypackage.servers.custom:mycustomserver"主要方法:
start()- 启动服务器(后台运行)stop()- 停止服务器restart()- 重启服务器run()- 运行服务器(前台运行)update()- 更新服务器install()- 安装服务器run_cmd()- 返回启动命令(需要子类实现)
服务器配置和日志文件默认存储在:
- 配置目录:
~/.cache/servers/{server_name}/ - 日志目录:
~/.cache/servers/{server_name}/logs/ - PID 文件:
~/.cache/servers/{server_name}/run.pid
click>=8.1.8- 命令行界面funbuild>=1.5.11- 构建工具funutil>=1.0.50- 实用工具psutil>=7.0.0- 进程管理typer>=0.15.3- 现代命令行界面
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 牛哥 - 初始工作 - [email protected]
- farfarfun - 维护者 - [email protected]
- 当前版本
- 支持 OneHub 服务器管理
- 完善的跨平台安装支持
- 改进的日志管理系统