chore: initial import

这个提交包含在:
Codex
2026-03-06 08:55:47 +08:00
当前提交 acb8a43c5c
修改 16 个文件,包含 2820 行新增0 行删除

58
deploy.sh 普通文件
查看文件

@@ -0,0 +1,58 @@
#!/bin/bash
set -e
DOMAIN="reserve.xn--15t503c5up.com"
EMAIL="admin@${DOMAIN}"
DEPLOY_DIR="/root/android-resever"
echo "=========================================="
echo " Android RE Wiki 部署脚本"
echo " 域名: ${DOMAIN}"
echo "=========================================="
cd "${DEPLOY_DIR}"
# Ensure LLM proxy environment file exists
if [ ! -f ".env" ]; then
echo "❌ 缺少 .env 文件,请先配置 LLM_BASE_URL / LLM_API_KEY"
exit 1
fi
# Step 1: 启动 NginxHTTP only,用于 ACME 验证)
echo "[1/5] 启动 Nginx (HTTP) + LLM Proxy..."
cp nginx/conf.d/default.conf nginx/conf.d/active.conf
docker compose up -d nginx llm-proxy
sleep 3
# Step 2: 申请 Let's Encrypt 证书
echo "[2/5] 申请 SSL 证书..."
docker compose run --rm certbot certonly \
--webroot \
--webroot-path=/var/www/certbot \
--email "${EMAIL}" \
--agree-tos \
--no-eff-email \
--force-renewal \
-d "${DOMAIN}"
# Step 3: 切换到 HTTPS 配置
echo "[3/5] 切换到 HTTPS 配置..."
cp nginx/conf.d/default-ssl.conf nginx/conf.d/active.conf
# Step 4: 重载 Nginx
echo "[4/5] 重载 Nginx 使用 HTTPS..."
docker compose restart nginx
sleep 3
# Step 5: 验证
echo "[5/5] 验证服务状态..."
docker compose ps
echo ""
echo "✅ 部署完成!"
echo " 访问: https://${DOMAIN}"
echo ""
# 设置证书自动续期 cron
echo "[+] 设置证书自动续期..."
(crontab -l 2>/dev/null; echo "0 3 * * * cd ${DEPLOY_DIR} && docker compose run --rm certbot renew --quiet && docker compose exec nginx nginx -s reload") | sort -u | crontab -
echo "✅ 自动续期已配置 (每天 03:00 检查)"