- game_base: 新增 game.page/page.item 模型(page.py),密码策略加严(>=8位且含字母+数字) - yt_world: create 改 create_multi;权限扩至 public/portal/user;新增微观世界/资源视图与菜单 - 前端: website/auth/index 等 ?db=yt_game 统一改为 ?db=game(线上库名) - 新增 deploy_server.sh 一键部署脚本
41 lines
1.7 KiB
Bash
41 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
||
# 宇森游戏 · 线上服务器一键更新(请在 81.70.146.51 上执行)
|
||
# 用法:sudo bash deploy_server.sh
|
||
set -e
|
||
|
||
# ===== 按实际情况修改这几个变量 =====
|
||
REPO_DIR="/opt/yuthon/game" # git 仓库目录(含 world.html 与 addons/)
|
||
ODOO_CONF="/etc/odoo/odoo.conf" # odoo.conf 路径
|
||
ODOO_DB="game" # 线上数据库名(务必与前端 ?db= 一致)
|
||
ODOO_SERVICE="odoo" # systemctl 服务名
|
||
ODOO_BIN="/usr/bin/odoo" # odoo-bin 路径(或 which odoo)
|
||
# ===================================
|
||
|
||
echo "== [1/5] 拉取最新代码 =="
|
||
cd "$REPO_DIR"
|
||
git pull --ff-only origin main
|
||
|
||
echo "== [2/5] 钉死 odoo.conf 数据库 =="
|
||
if grep -q "^[[:space:]]*db_name" "$ODOO_CONF"; then
|
||
sed -i "s/^[[:space:]]*db_name.*/db_name = $ODOO_DB/" "$ODOO_CONF"
|
||
else
|
||
echo "db_name = $ODOO_DB" >> "$ODOO_CONF"
|
||
fi
|
||
if ! grep -q "^[[:space:]]*dbfilter" "$ODOO_CONF"; then
|
||
echo "dbfilter = ^$ODOO_DB\$" >> "$ODOO_CONF"
|
||
fi
|
||
echo "当前 db_name=$(grep '^db_name' "$ODOO_CONF")"
|
||
|
||
echo "== [3/5] 升级模块(数据库 $ODOO_DB)=="
|
||
"$ODOO_BIN" -c "$ODOO_CONF" -d "$ODOO_DB" -u game_base,yt_world --stop-after-init
|
||
# 若模块从未安装过,把上行的 -u 改成 -i 执行一次即可
|
||
|
||
echo "== [4/5] 重启 Odoo =="
|
||
systemctl restart "$ODOO_SERVICE"
|
||
sleep 3
|
||
systemctl is-active "$ODOO_SERVICE" || { echo "Odoo 未起来,检查: journalctl -u $ODOO_SERVICE -n 50"; exit 1; }
|
||
|
||
echo "== [5/5] 冒烟验证 =="
|
||
curl -s -o /dev/null -w "codex 接口 HTTP %{http_code}\n" "https://game.pengyuthon.cn/game/api/codex?db=game"
|
||
echo "完成。前端为静态文件,nginx 指向 $REPO_DIR 即可,无需构建。"
|