FunServer 是一个 Python 服务器管理框架,提供统一的接口来管理各种服务器应用程序。它支持跨平台安装、进程管理、日志记录和配置管理。
- 🚀 统一的服务器管理接口 - 提供 start、stop、restart、update 等标准操作
- 🔧 跨平台支持 - 支持 Linux、macOS 和 Windows 系统
- 📊 进程管理 - 自动 PID 跟踪和进程生命周期管理
- 📝 日志管理 - 自动日志记录和日志文件管理
- 🎯 模块化架构 - 易于扩展和添加新的服务器实现
- 💻 命令行界面 - 基于 Typer 的友好命令行工具
pip install funserverpip install funserver 只安装 Python 包和 funserver 命令行工具,scripts/setup.sh
是仓库文件,不会随 PyPI 包一起安装。两种使用方式分开说明:
# 查看命令行帮助
funserver --help
# 前台运行内置的空操作示例服务
funserver run
# 后台启动/停止/重启
funserver start
funserver stop
funserver restartgit clone https://github.com/farfarfun/funserver.git
cd funserver
# 启动开发环境(后台)
scripts/setup.sh start dev
# 停止服务器
scripts/setup.sh stop dev
# 重启服务器
scripts/setup.sh restart dev
# 运行服务器(前台运行)
scripts/setup.sh run dev
# 查看开发环境状态
scripts/setup.sh status- BaseServer - 服务器基类,提供标准的服务器管理功能
- BaseInstall - 安装管理基类,支持跨平台安装
- BaseStart - 启动管理基类,定义服务器启动接口
src/funserver/
├── servers/
│ ├── base/ # 基础框架
│ │ ├── base.py # 服务器基类
│ │ ├── install.py # 安装管理
│ │ └── start.py # 启动管理
└── __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- 命令行界面funshell>=1.0.2- 命令执行和进程管理farlog>=1.1.7- 日志记录psutil>=7.0.0- 进程管理typer>=0.15.3- 现代命令行界面
欢迎贡献代码!请遵循以下步骤:
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: 添加新功能') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 牛哥 - 初始工作 - niuliangtao@qq.com
- farfarfun - 维护者 - farfarfun@qq.com
scripts/setup.sh 必须从仓库根目录以外的位置也能运行:
scripts/setup.sh start dev # 后台运行
scripts/setup.sh run dev # 前台运行
scripts/setup.sh stop dev
scripts/setup.sh restart dev
scripts/setup.sh status生产环境要求当前环境已安装 funserver 命令:
scripts/setup.sh start prodfarfarfun 是一个专注于实用工具库的开源组织, 涵盖云存储、数据处理、AI、多媒体与开发工具链等方向。
- 🏠 组织主页:https://github.com/farfarfun
- 📦 PyPI:https://pypi.org/user/niuliangtao/
- 📧 联系:farfarfun@qq.com
本项目基于 MIT 协议开源。