Files
game/deploy_server.sh
T

41 lines
1.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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="yt_game" # 线上数据库名(game.pengyuthon.cn 对应 yt_game;勿改,避免影响 school)
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=yt_game"
echo "完成。前端为静态文件,nginx 指向 $REPO_DIR 即可,无需构建。"