From 3a14c722e09e50f513fe6fb79b8bc2bea3ab0c03 Mon Sep 17 00:00:00 2001 From: wangbo Date: Thu, 9 Apr 2026 13:43:27 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fix(deploy):=20=E4=BC=98=E5=8C=96=20HTTPS?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE=E5=92=8C=20Nginx=20=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index c920d68..65521b1 100755 --- a/start.sh +++ b/start.sh @@ -143,7 +143,7 @@ run_deploy_questions() { if [ -n "$DEPLOY_HTTPS_INPUT" ]; then DEPLOY_HTTPS=$DEPLOY_HTTPS_INPUT else - read -r -p "3.1 是否启用 HTTPS?[y/N]: " https_choice + read -r -p "3.1 是否签名 HTTPS 证书?原来已经有 HTTPS 证书这里选择 N,第一次部署或者原来没有证书选 Y [y/N]: " https_choice DEPLOY_HTTPS=false if [[ "$https_choice" =~ ^[yY] ]]; then DEPLOY_HTTPS=true @@ -195,7 +195,13 @@ setup_env_files() { # 7. Nginx 配置(域名模式) PROXY_CONF="${DEPLOY_DOMAIN}.conf" if [ ! -f "$PROXY_CONF" ]; then - sed "s/51easyai.com/${DEPLOY_DOMAIN}/g" easyai-proxy.conf.sample > "$PROXY_CONF" + local proxy_template="easyai-proxy.conf.sample" + if [ ! -f "$proxy_template" ]; then + echo "❌ 未找到 Nginx 配置模板: easyai-proxy.conf.sample" + echo " 请确认仓库文件完整后重试" + exit 1 + fi + sed "s/51easyai.com/${DEPLOY_DOMAIN}/g" "$proxy_template" > "$PROXY_CONF" echo " ✓ Nginx 配置已生成: $PROXY_CONF" fi fi From 8ea92ca7a8ac7975ba0005ab11cd6112071cd972 Mon Sep 17 00:00:00 2001 From: wangbo Date: Thu, 9 Apr 2026 18:48:04 +0800 Subject: [PATCH 2/7] =?UTF-8?q?docs(README):=20=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E5=92=A8=E8=AF=A2=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++++ img.png | Bin 0 -> 69794 bytes 2 files changed, 4 insertions(+) create mode 100644 img.png diff --git a/README.md b/README.md index 62628a2..6bd984e 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ git clone https://git.51easyai.com/wangbo/easyai.git; cd easyai; powershell -Exe --- +🚀部署问题扫码咨询 +![img.png](img.png) + + ## 更新升级 ### 老用户(旧版本部署包)升级教程 diff --git a/img.png b/img.png new file mode 100644 index 0000000000000000000000000000000000000000..acfaa002f0f1640d6ce879291d79addf28dd34a8 GIT binary patch literal 69794 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 literal 0 HcmV?d00001 From 836543301475f79b8824d908a6e1f3ee48b3cc2d Mon Sep 17 00:00:00 2001 From: wangbo Date: Thu, 9 Apr 2026 18:48:46 +0800 Subject: [PATCH 3/7] =?UTF-8?q?docs(README):=20=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E5=92=A8=E8=AF=A2=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6bd984e..f689f9e 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ git clone https://git.51easyai.com/wangbo/easyai.git; cd easyai; powershell -Exe --- 🚀部署问题扫码咨询 + ![img.png](img.png) From 2f0ae76273441647da2f23886b4b397a31f9f2ce Mon Sep 17 00:00:00 2001 From: wangbo Date: Thu, 9 Apr 2026 21:26:56 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat(install):=20=E6=94=AF=E6=8C=81=20macOS?= =?UTF-8?q?=20=E7=B3=BB=E7=BB=9F=E7=9A=84=E4=B8=80=E9=94=AE=E9=83=A8?= =?UTF-8?q?=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新 README.md 标题为 Linux/Mac 兼容 - 添加 macOS 系统检测逻辑,使用 uname 命令识别 Darwin 内核 - 实现 macOS Docker Desktop 的自动安装功能,通过 Homebrew 安装 - 添加 Docker Desktop 启动等待机制,最多等待 120 秒 - 提供 macOS 用户安装选项,支持自动或手动安装模式 - 跳过 macOS 上的 systemd 服务管理命令执行 --- README.md | 2 +- start.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 75 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f689f9e..5f1f3b5 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ## 一键部署 -### Linux +### Linux/Mac ```bash git clone https://git.51easyai.com/wangbo/easyai.git && cd easyai && chmod +x start.sh && ./start.sh diff --git a/start.sh b/start.sh index 65521b1..eb45963 100755 --- a/start.sh +++ b/start.sh @@ -216,20 +216,29 @@ install_docker() { echo " Docker 安装与检查" echo "================================" - if [ -f /etc/os-release ]; then + local host_os + host_os="$(uname -s 2>/dev/null || echo Unknown)" + + if [[ "$host_os" == "Darwin" ]]; then + OS_FAMILY="macOS" + OS_VERSION_ID="0" + OS_CODENAME="" + elif [ -f /etc/os-release ]; then . /etc/os-release case "${ID:-}" in ubuntu|debian) OS_FAMILY="Ubuntu" ;; centos|rhel|fedora) OS_FAMILY="CentOS" ;; *) OS_FAMILY="${ID:-Unknown}" ;; esac + OS_VERSION_ID=$(grep -oP '(?<=^VERSION_ID=")[0-9.]+' /etc/os-release 2>/dev/null | cut -d'.' -f1 || echo "0") + OS_CODENAME="" + if [[ "$OS_FAMILY" == "Ubuntu" ]]; then + OS_CODENAME=$(lsb_release -cs 2>/dev/null || (grep VERSION_CODENAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"')) + fi else OS_FAMILY=$(hostnamectl 2>/dev/null | grep "Operating System" | awk '{print $3}' || echo "Unknown") - fi - OS_VERSION_ID=$(grep -oP '(?<=^VERSION_ID=")[0-9.]+' /etc/os-release 2>/dev/null | cut -d'.' -f1 || echo "0") - OS_CODENAME="" - if [[ "$OS_FAMILY" == "Ubuntu" ]]; then - OS_CODENAME=$(lsb_release -cs 2>/dev/null || (grep VERSION_CODENAME /etc/os-release 2>/dev/null | cut -d= -f2 | tr -d '"')) + OS_VERSION_ID="0" + OS_CODENAME="" fi UBUNTU_DOCKER_MIRROR_URL="https://mirrors.ustc.edu.cn/docker-ce" @@ -246,6 +255,38 @@ install_docker() { } check_network + install_docker_macos() { + if ! command -v brew &>/dev/null; then + echo "❌ 未检测到 Homebrew,无法自动安装 Docker Desktop。" + echo " 请先安装 Homebrew: https://brew.sh/" + return 1 + fi + + if brew list --cask docker &>/dev/null; then + echo "✅ Docker Desktop 已安装(Homebrew)" + else + echo "📦 正在通过 Homebrew 安装 Docker Desktop..." + brew install --cask docker + fi + + echo "🚀 正在尝试启动 Docker Desktop..." + open -a Docker || true + + echo "⏳ 等待 Docker 引擎就绪(最多 120 秒)..." + local i + for i in $(seq 1 60); do + if docker info &>/dev/null; then + echo "✅ Docker Desktop 已启动并可用" + return 0 + fi + sleep 2 + done + + echo "⚠️ Docker Desktop 已安装,但尚未就绪。" + echo " 请手动打开 Docker Desktop,待状态正常后重新运行 ./start.sh" + return 1 + } + if command -v docker &>/dev/null; then echo "✅ Docker 已安装" else @@ -265,13 +306,37 @@ install_docker() { sudo sed -i "s+https://download.docker.com+$CENTOS_DOCKER_MIRROR_URL+g" /etc/yum.repos.d/docker-ce.repo [[ "$OS_VERSION_ID" -ge "8" ]] && sudo yum module disable -y container-tools 2>/dev/null || true sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin + elif [[ "$OS_FAMILY" == "macOS" ]]; then + echo "⚠️ 检测到 macOS,未找到 Docker。" + echo "请选择安装方式:" + echo " [1] 自动安装 Docker Desktop(需要 Homebrew)" + echo " [2] 手动安装(默认)" + read -r -p "请选择 [1/2]: " mac_install_choice + case "${mac_install_choice:-2}" in + 1) + if ! install_docker_macos; then + exit 1 + fi + ;; + 2) + echo " 请手动安装 Docker Desktop: https://www.docker.com/products/docker-desktop/" + echo " 安装并启动 Docker Desktop 后,重新运行 ./start.sh" + exit 1 + ;; + *) + echo "❌ 无效选择" + exit 1 + ;; + esac else echo "❌ 不支持的操作系统: $OS_FAMILY" exit 1 fi - sudo systemctl enable docker - sudo systemctl start docker - getent group docker | grep -qw "$USER" || sudo usermod -aG docker "$USER" + if [[ "$OS_FAMILY" != "macOS" ]]; then + sudo systemctl enable docker + sudo systemctl start docker + getent group docker | grep -qw "$USER" || sudo usermod -aG docker "$USER" + fi fi if docker compose version &>/dev/null; then From 1aab45337420037702dc7bd608a3fb93a885249d Mon Sep 17 00:00:00 2001 From: wangbo Date: Fri, 10 Apr 2026 15:28:25 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix(redis):=20=E4=BF=AE=E5=A4=8D=20Redis=20?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=E5=8F=AA=E8=AF=BB=E6=A8=A1=E5=BC=8F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 83a759a..7426a6f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -200,7 +200,7 @@ services: command: [ "redis-server", "/etc/redis/redis.conf" ] # 让 Redis 读取配置文件 # ports: # - ${REDIS_PORT+${REDIS_PORT}:6379} - read_only: true +# read_only: true networks: easyai: ipv4_address: 172.21.0.4 From e5f412f2cd5e6f25bef595f9d88246cad0211269 Mon Sep 17 00:00:00 2001 From: wangbo Date: Fri, 10 Apr 2026 16:00:26 +0800 Subject: [PATCH 6/7] =?UTF-8?q?chore(docker):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E6=95=B0=E6=8D=AE=E5=8D=B7?= =?UTF-8?q?=E6=8C=82=E8=BD=BD=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7426a6f..aee3616 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,7 +68,6 @@ services: - ./data/restores:/app/restores - ./data/backend/app/tmp:/app/tmp - ./data/tmp:/tmp - - ./data/backend/.pm2:/app/.pm2 # - ./data/backend/pm2.config.js:/app/pm2.config.js restart: unless-stopped environment: From 988fceff000fc3d0c6c56384b445f757a446bb78 Mon Sep 17 00:00:00 2001 From: wangbo Date: Fri, 10 Apr 2026 16:06:17 +0800 Subject: [PATCH 7/7] =?UTF-8?q?chore(docker):=20=E6=9B=B4=E6=96=B0=20Docke?= =?UTF-8?q?r=20Compose=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index aee3616..a6a7e3f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,10 +11,7 @@ services: - "com.centurylinklabs.watchtower.enable=true" ports: - "${WEB_PORT}:3010" - read_only: true - volumes: - # 这一行是关键。它将一个名为 './data/forend/.pm2' 的持久化卷挂载到容器内的 /app/.pm2 目录 - - ./data/forend/.pm2:/app/.pm2 +# read_only: true networks: easyai: ipv4_address: 172.21.0.8 @@ -54,7 +51,7 @@ services: - "com.centurylinklabs.watchtower.enable=true" ports: - "${SERVER_HTTP_PORT}:3001" #http端口 - read_only: true +# read_only: true networks: easyai: ipv4_address: 172.21.0.6