Files
EchoChat/scripts/status.sh
bujinyuan a01e973335 feat(deploy): Task 14 完成 docker-compose 扩展 + 环境变量双态部署
- deploy/docker-compose.dev.yml 新增 media-server 服务 + coturn(profiles:public),
  全部服务参数改为 env 变量注入,go-service 依赖 media-server
- deploy/.env.example / .env.local.example / .env.public.example 三份模板,
  公网模板用 _REPLACE_WITH_*_ 占位符防"示例值上生产"
- scripts/start.sh / stop.sh / status.sh 新增 full 子命令对接 docker compose --profile public
- scripts/deploy-public.sh 新建:env 校验 + 端口 checklist + Docker 自检 +
  --profile public up -d --build + 健康检查闭环
- docs/deployment/meeting-mvp.md 新建:双态部署全流程 + 强密码生成 + 防火墙 + FAQ
- 双模式 docker compose config 校验通过;deploy-public.sh 三种错误场景按预期退出

同步更新 CURRENT_STATUS / implementation.plan / project-context
Task 0-14  / 剩余 Task 15-16

Made-with: Cursor
2026-04-22 17:59:48 +08:00

68 lines
2.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# EchoChat 服务状态查看脚本
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
RUN_DIR="$ROOT_DIR/.run"
COLOR_GREEN='\033[0;32m'
COLOR_RED='\033[0;31m'
COLOR_YELLOW='\033[0;33m'
COLOR_RESET='\033[0m'
check_port() {
local name="$1"
local port="$2"
local url="$3"
local pid
pid="$(lsof -iTCP:"$port" -sTCP:LISTEN -n -P -t 2>/dev/null | head -n1 || true)"
if [[ -n "$pid" ]]; then
printf " %-22s ${COLOR_GREEN}● RUNNING${COLOR_RESET} PID=%-8s %s\n" "$name (:$port)" "$pid" "$url"
else
printf " %-22s ${COLOR_RED}○ STOPPED${COLOR_RESET} %-12s %s\n" "$name (:$port)" "" "$url"
fi
}
check_container() {
local name="$1"
local port="$2"
local status
status="$(docker inspect -f '{{.State.Status}}' "$name" 2>/dev/null || echo 'missing')"
case "$status" in
running)
printf " %-22s ${COLOR_GREEN}● RUNNING${COLOR_RESET} container=%s\n" "$name (:$port)" "$name"
;;
missing)
printf " %-22s ${COLOR_YELLOW}? NOT-CREATED${COLOR_RESET}\n" "$name (:$port)"
;;
*)
printf " %-22s ${COLOR_RED}○ %s${COLOR_RESET}\n" "$name (:$port)" "$status"
;;
esac
}
echo ""
echo "===== EchoChat 应用层 ====="
check_port "Go 后端" 8085 "http://localhost:8085"
check_port "媒体服务器 SFU" 3300 "http://localhost:3300/healthz"
check_port "前台用户端" 5173 "http://localhost:5173"
check_port "后台管理端" 3100 "http://localhost:3100"
echo ""
echo "===== Docker 中间件 ====="
check_container "echochat-postgres" 5432
check_container "echochat-redis" 6379
check_container "echochat-minio" 9000
echo ""
echo "===== 容器化应用docker compose full ====="
check_container "echochat-go-service" 8085
check_container "echochat-media-server" 3300
check_container "echochat-coturn" 3478
echo ""
echo "日志目录:$RUN_DIR/logs"
echo "compose 日志docker compose -f deploy/docker-compose.dev.yml logs -f [service]"
echo ""