66 lines
1.6 KiB
Bash
Executable File
66 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
||
set -e
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
CONFIG_FILE="$SCRIPT_DIR/.deploy-config"
|
||
|
||
if [ ! -f "$CONFIG_FILE" ]; then
|
||
echo "❌ 缺少 .deploy-config 文件"
|
||
exit 1
|
||
fi
|
||
|
||
source "$CONFIG_FILE"
|
||
|
||
if ! command -v sshpass &> /dev/null; then
|
||
echo "❌ 未安装 sshpass,请先运行: brew install hudochenkov/sshpass/sshpass"
|
||
exit 1
|
||
fi
|
||
|
||
PASS_FILE=$(mktemp)
|
||
echo "$SERVER_PASS" > "$PASS_FILE"
|
||
trap "rm -f $PASS_FILE" EXIT
|
||
|
||
SSH_OPTS="-o StrictHostKeyChecking=no"
|
||
|
||
run_ssh() {
|
||
sshpass -f "$PASS_FILE" ssh $SSH_OPTS "${SERVER_USER}@${SERVER_HOST}" "$@"
|
||
}
|
||
|
||
NEXTAUTH_SECRET="$(openssl rand -base64 32)"
|
||
|
||
echo ""
|
||
echo "========================================="
|
||
echo " 首次初始化服务器 ${SERVER_HOST}"
|
||
echo "========================================="
|
||
echo ""
|
||
|
||
echo "=> 创建项目目录和 uploads..."
|
||
run_ssh "mkdir -p ${REMOTE_DIR}/uploads"
|
||
|
||
echo ""
|
||
echo "=> 创建 .env 文件..."
|
||
run_ssh "cat > ${REMOTE_DIR}/.env << 'EOF'
|
||
DATABASE_URL=postgresql://nanami:Scl%40qq.com1@localhost:5432/nanamiweb?schema=public
|
||
NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
|
||
NEXTAUTH_URL=http://${SERVER_HOST}:3000
|
||
ADMIN_USERNAME=admin
|
||
ADMIN_PASSWORD=admin123
|
||
EOF"
|
||
|
||
echo ""
|
||
echo "=> 验证 .env 文件..."
|
||
run_ssh "cat ${REMOTE_DIR}/.env"
|
||
|
||
echo ""
|
||
echo "========================================="
|
||
echo " ✅ 初始化完成!"
|
||
echo "========================================="
|
||
echo ""
|
||
echo "接下来运行: ./deploy-remote.sh"
|
||
echo ""
|
||
echo "⚠️ 部署成功后记得修改管理员密码:"
|
||
echo " 访问 http://${SERVER_HOST}:3000/admin/login"
|
||
echo " 默认账号: admin / admin123"
|
||
echo " 登录后在「系统设置」中修改密码"
|
||
echo ""
|