FunServer 是一个 Python 服务器管理框架,提供统一的接口来管理各种服务器应用程序。它支持跨平台安装、进程管理、日志记录和配置管理。
- 🚀 统一的服务器管理接口 - 提供 start、stop、restart、update 等标准操作
- 🔧 跨平台支持 - 支持 Linux、macOS 和 Windows 系统
- 📊 进程管理 - 自动 PID 跟踪和进程生命周期管理
- 📝 日志管理 - 自动日志记录和日志文件管理
- 🎯 模块化架构 - 易于扩展和添加新的服务器实现
- 💻 命令行界面 - 基于 Typer 的友好命令行工具
pip install funserver
FunServer 提供了统一的命令行接口来管理服务器:
# 启动服务器
funserver start
# 停止服务器
funserver stop
# 重启服务器
funserver restart
# 更新服务器
funserver update
# 运行服务器(前台运行)
funserver run
FunServer 内置了对 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
类来创建自定义服务器:
from funserver.servers.base.base import BaseServer, server_parser
class MyCustomServer(BaseServer):
def __init__(self):
super().__init__(server_name="mycustomserver")
def run_cmd(self, *args, **kwargs):
# 返回启动服务器的命令
return "my-server --config config.yaml"
def install_linux(self, *args, **kwargs):
# Linux 安装逻辑
return True
def install_macos(self, *args, **kwargs):
# macOS 安装逻辑
return True
def install_windows(self, *args, **kwargs):
# Windows 安装逻辑
return True
def update(self, *args, **kwargs):
# 更新逻辑
pass
def mycustomserver():
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 服务器管理
- 完善的跨平台安装支持
- 改进的日志管理系统