#!/usr/bin/env bash
# 在【云服务器】上、DLR 目录里运行：一键把客厅做成 systemd 守护（开机自启+崩溃重启）。
# 用法：cd ~/DLR && bash deploy/setup.sh
set -e
DIR="$(cd "$(dirname "$0")/.." && pwd)"
USER_="$(whoami)"
PY="$(command -v python3 || true)"

echo "── Dream Lounge 上云自检 ──"
echo "目录: $DIR   用户: $USER_   python3: ${PY:-缺失}"
[ -n "$PY" ] || { echo "✗ 没有 python3，先装：sudo apt install -y python3"; exit 1; }
[ -f "$DIR/server.py" ] || { echo "✗ 这目录里没 server.py，确认拷全了"; exit 1; }
[ -f "$DIR/API.env" ]  || { echo "✗ 缺 API.env"; exit 1; }

# 对外开放的安全红线检查
grep -q "^PUBLIC_MODE=1" "$DIR/API.env"   || { echo "✗ API.env 里必须有 PUBLIC_MODE=1（否则无鉴权=私聊裸奔），先加上再跑"; exit 1; }
grep -q "^OWNER_PASSWORD=." "$DIR/API.env" || { echo "✗ API.env 里必须设 OWNER_PASSWORD=你的强密码（否则远程登不进厅主）"; exit 1; }
grep -q "^DEEPSEEK_API_KEY=." "$DIR/API.env" || echo "⚠️ 没看到 DEEPSEEK_API_KEY，成员只会说兜底句（先放上原来那把）"
echo "✓ 安全检查通过（PUBLIC_MODE + OWNER_PASSWORD 都在）"

# systemd 守护
sudo tee /etc/systemd/system/dlr.service >/dev/null <<EOF
[Unit]
Description=Dream Lounge
After=network.target
[Service]
WorkingDirectory=$DIR
ExecStart=$PY $DIR/server.py
Environment=DLR_HOST=0.0.0.0 DLR_PORT=8771
Restart=always
RestartSec=2
User=$USER_
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now dlr
sleep 2
echo "── 状态 ──"
sudo systemctl --no-pager status dlr | head -5 || true
CODE="$(curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8771/api/whoami || echo 000)"
echo "本机自测 /api/whoami → HTTP $CODE  $([ "$CODE" = 200 ] && echo '✓ 跑起来了' || echo '✗ 没起来，看 journalctl -u dlr')"

IP="$(curl -s --max-time 5 ifconfig.me || curl -s --max-time 5 ip.sb || echo '你的公网IP')"
cat <<NEXT

── 下一步：让朋友访问 ──
  ① 在腾讯云/阿里云控制台的【防火墙/安全组】放行 TCP 8771（必做，否则外面连不上）
  ② 浏览器打开：  http://$IP:8771
     → 输你在 API.env 设的 OWNER_PASSWORD 登录
     → 客厅顶栏点 🔗 → 复制【访客链接】发朋友、【奥斯卡链接】发奥斯卡
  ③ 朋友直接点链接就能进（访客只读·看不了你私聊；奥斯卡能以本人玩）

  想要 https（更安全、地址好看）：之后加 Cloudflare Tunnel（免费），见 DEPLOY.md §5。
NEXT
