feat:聊天信息支持 文件、图片、语音发送,增加一键启停脚本

This commit is contained in:
bujinyuan
2026-04-20 11:53:27 +08:00
parent 1a5aac9998
commit 0c1540bdee
116 changed files with 20277 additions and 144 deletions

View File

@@ -1,5 +1,27 @@
#!/bin/bash
# EchoChat 开发环境一键搭建脚本
#!/usr/bin/env bash
# ==============================================================================
# EchoChat 开发环境【首次】初始化脚本
# ------------------------------------------------------------------------------
# ✅ 适用时机:
# - 开发者首次 clone 仓库后
# - 删除过所有 Docker 卷 / 需要重建数据库时
# - 中间件容器长时间未使用、需要做一次性健康验证时
#
# ❌ 非适用时机(请改用 scripts/start.sh
# - 每天日常启停(开机/关机)
# - 仅想拉起应用层Go 后端 + 前台 + 管理端)
#
# 职责:
# 1. 检查 Docker / Docker Compose 是否安装
# 2. 启动 PostgreSQL + Redis + MinIO 容器docker-compose up -d
# 3. 通过重试式健康检查pg_isready / redis ping / MinIO /health/live确认就绪
# 4. 输出基础设施连接信息与默认管理员账号
#
# 日常启停请使用:
# ./scripts/start.sh # 一键启动全部服务
# ./scripts/stop.sh # 一键停止应用层
# ./scripts/status.sh # 查看端口/PID/容器状态
# ==============================================================================
set -e
@@ -8,16 +30,14 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
DEPLOY_DIR="$PROJECT_ROOT/deploy"
echo "========================================="
echo " EchoChat 开发环境搭建"
echo " EchoChat 开发环境【首次】搭建"
echo "========================================="
# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
echo "❌ Docker 未安装,请先安装 Docker Desktop"
exit 1
fi
# 检查 Docker Compose 是否可用
if ! docker compose version &> /dev/null; then
echo "❌ Docker Compose 不可用,请确保 Docker Desktop 已正确安装"
exit 1
@@ -25,19 +45,18 @@ fi
echo "✅ Docker 和 Docker Compose 已就绪"
# 启动基础设施服务
echo ""
echo "🚀 启动 PostgreSQL Redis ..."
echo "🚀 启动 PostgreSQL / Redis / MinIO ..."
cd "$DEPLOY_DIR"
docker compose -f docker-compose.dev.yml up -d
docker compose -f docker-compose.dev.yml up -d postgres redis minio
# 等待服务就绪
echo ""
echo "⏳ 等待服务健康检查通过 ..."
sleep 3
# 检查 PostgreSQL
MAX_RETRIES=30
# PostgreSQL
RETRY=0
until docker exec echochat-postgres pg_isready -U echochat > /dev/null 2>&1; do
RETRY=$((RETRY + 1))
@@ -49,7 +68,7 @@ until docker exec echochat-postgres pg_isready -U echochat > /dev/null 2>&1; do
done
echo "✅ PostgreSQL 已就绪 (localhost:5432)"
# 检查 Redis
# Redis
RETRY=0
until docker exec echochat-redis redis-cli ping > /dev/null 2>&1; do
RETRY=$((RETRY + 1))
@@ -61,17 +80,35 @@ until docker exec echochat-redis redis-cli ping > /dev/null 2>&1; do
done
echo "✅ Redis 已就绪 (localhost:6379)"
# MinIO使用 /minio/health/live 端点(容器内 curl 检查)
RETRY=0
until docker exec echochat-minio curl -fs http://localhost:9000/minio/health/live > /dev/null 2>&1; do
RETRY=$((RETRY + 1))
if [ $RETRY -ge $MAX_RETRIES ]; then
echo "❌ MinIO 启动超时"
exit 1
fi
sleep 1
done
echo "✅ MinIO 已就绪 (API: localhost:9000 | Console: localhost:9001)"
echo ""
echo "========================================="
echo " ✅ 开发环境搭建完成!"
echo "========================================="
echo ""
echo " PostgreSQL: localhost:5432"
echo " 数据库: echochat"
echo " 用户名: echochat"
echo " 密码: echochat_dev_2026"
echo " PostgreSQL: localhost:5432"
echo " 数据库: echochat"
echo " 用户名: echochat"
echo " 密码: echochat_dev_2026"
echo ""
echo " Redis: localhost:6379"
echo " Redis: localhost:6379"
echo ""
echo " 管理员账号: admin / admin123456"
echo " MinIO API: http://localhost:9000"
echo " MinIO 控制台: http://localhost:9001"
echo " 账号: echochat / echochat123456"
echo ""
echo " 管理员账号: admin / admin123456"
echo ""
echo " 👉 下一步:运行 ./scripts/start.sh 启动应用层服务"
echo "========================================="