Files
ros-dpi/ros-dpi.spec
T
Su Yijun 3d19fa27ac feat: 发布 0.6.12,Linux 单文件二进制一键部署 + 网页一键自更新 + 项目文档重写(debug18)
- PyInstaller 打包后端+前端+运行时为单文件二进制;install.sh 一键部署(systemd、SQLite 零配置起步,支持 x86_64/aarch64)
- Linux 二进制部署自动检测 GitHub 新版本,前端一键更新(下载、原子替换二进制、自动重启服务);Docker 部署提示 compose pull
- CI 新增 linux-binary 任务,每个版本构建 Linux 二进制并附加到 GitHub Release(amd64)
- README 与 Docker Hub 介绍按双部署形态与新功能重写
2026-10-25 14:35:21 +08:00

40 lines
1.2 KiB
RPMSpec

# PyInstaller 打包配置(debug18):把后端 + 前端 dist + 运行时打成单文件 Linux 二进制
# 用法(在仓库根目录):pyinstaller ros-dpi.spec
import os
from PyInstaller.utils.hooks import collect_all, collect_data_files
block_cipher = None
datas = [("frontend/dist", "frontend_dist")]
hidden = ["uvicorn.logging", "uvicorn.loops", "uvicorn.loops.auto", "uvicorn.protocols",
"uvicorn.protocols.http", "uvicorn.protocols.http.auto", "uvicorn.protocols.websockets",
"uvicorn.protocols.websockets.auto", "uvicorn.lifespan", "uvicorn.lifespan.on",
"app.main", "app.routers", "app.collector"]
for pkg in ("uvicorn", "pymysql", "cryptography", "passlib", "anyio"):
attrs = collect_all(pkg)
datas += attrs[0]
hidden += attrs[1]
a = Analysis(
["backend/ros_dpi_launcher.py"],
pathex=["backend"],
binaries=[],
datas=datas,
hiddenimports=hidden,
hookspath=[],
runtime_hooks=[],
excludes=["tkinter", "pytest"],
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name="ros-dpi",
upx=False,
console=True,
)