init: EasyScreen 电子菜单系统
- server: FastAPI 后端(多屏管理、素材上传、节目编排、客户端注册/配置/心跳/崩溃上报、管理台托管) - android: Java 客户端(minSdk 23,全屏图片/视频轮播、远程配置、开机自启、崩溃上报) - web: React + Vite + antd 管理台(屏幕/素材/节目管理) - 屏幕设备 ID 关联机制、gunicorn 生产部署脚本
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
rem 生产启动(Windows):gunicorn 在 Windows 不支持 --daemon,前台运行
|
||||
cd /d %~dp0..
|
||||
if not exist logs mkdir logs
|
||||
if not exist .venv\Scripts\gunicorn.exe (
|
||||
echo 未找到 .venv,请先执行: python -m venv .venv ^&^& .venv\Scripts\pip install -r requirements.txt
|
||||
exit /b 1
|
||||
)
|
||||
echo 启动 EasyScreen 生产服务,端口 5889 ...
|
||||
".venv\Scripts\gunicorn.exe" app.main:app -k uvicorn.workers.UvicornWorker -b 0.0.0.0:5889 -w 2 --access-logfile logs/access.log --error-logfile logs/error.log
|
||||
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
# 生产启动(Linux / 正式环境):gunicorn + UvicornWorker + 日志文件
|
||||
set -e
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
if [ ! -d .venv ]; then
|
||||
echo "未找到 .venv,请先创建虚拟环境并安装依赖"
|
||||
exit 1
|
||||
fi
|
||||
mkdir -p logs
|
||||
source .venv/bin/activate
|
||||
|
||||
PORT="${PORT:-5889}"
|
||||
echo "启动 EasyScreen 生产服务,端口 $PORT ..."
|
||||
gunicorn app.main:app \
|
||||
-k uvicorn.workers.UvicornWorker \
|
||||
-b 0.0.0.0:$PORT \
|
||||
-w 2 \
|
||||
--daemon \
|
||||
--pid logs/gunicorn.pid \
|
||||
--access-logfile logs/access.log \
|
||||
--error-logfile logs/error.log
|
||||
|
||||
sleep 2
|
||||
if [ -f logs/gunicorn.pid ]; then
|
||||
echo "已启动 (pid $(cat logs/gunicorn.pid)),日志: logs/access.log"
|
||||
else
|
||||
echo "启动失败,请查看 logs/error.log"
|
||||
fi
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# 停止生产服务
|
||||
cd "$(dirname "$0")/.."
|
||||
if [ -f logs/gunicorn.pid ]; then
|
||||
kill "$(cat logs/gunicorn.pid)" && rm -f logs/gunicorn.pid && echo "已停止"
|
||||
else
|
||||
echo "未找到 pid 文件(可能未启动)"
|
||||
fi
|
||||
Reference in New Issue
Block a user