6050d11f27
- 创建基于 CloudWego Hertz 的 Go 微服务脚手架 - 集成 Nacos 服务注册/发现功能 - 添加 gRPC 客户端支持 - 实现环境变量配置管理 (.env.example) - 添加 HTTP 中间件 (Recovery, AccessLog, CORS) - 配置 Gitea CI/CD 构建部署流程 BREAKING CHANGE: 项目结构调整,从简单的 API 服务升级为完整的微服务架构
50 lines
1.3 KiB
Bash
50 lines
1.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
APP_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
DEPLOY_DIR="$APP_DIR/deploy"
|
|
SERVICE_DIR="/etc/systemd/system"
|
|
LOG_DIR="$APP_DIR/logs"
|
|
|
|
if [ "$(id -u)" -ne 0 ]; then
|
|
echo "请使用 root 权限运行: sudo bash install.sh"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
echo "=== 安装 systemd 服务 ==="
|
|
|
|
for svc in server cli; do
|
|
src="$DEPLOY_DIR/${svc}.service"
|
|
if [ ! -f "$src" ]; then
|
|
echo "[${svc}] service 文件不存在: $src"
|
|
continue
|
|
fi
|
|
|
|
# 用实际路径替换模板中的 /root
|
|
sed "s|WorkingDirectory=/root|WorkingDirectory=$APP_DIR|g; \
|
|
s|ExecStart=/root/|ExecStart=$APP_DIR/|g; \
|
|
s|EnvironmentFile=-/root/.env|EnvironmentFile=-$APP_DIR/.env|g; \
|
|
s|/root/logs/|$LOG_DIR/|g" \
|
|
"$src" > "$SERVICE_DIR/${svc}.service"
|
|
|
|
echo "[${svc}] 已安装到 $SERVICE_DIR/${svc}.service"
|
|
done
|
|
|
|
systemctl daemon-reload
|
|
|
|
for svc in server cli; do
|
|
systemctl enable "$svc"
|
|
echo "[${svc}] 已设置开机自启"
|
|
done
|
|
|
|
echo ""
|
|
echo "=== 安装完成 ==="
|
|
echo "使用方式:"
|
|
echo " bash start.sh # 启动全部"
|
|
echo " bash stop.sh # 停止全部"
|
|
echo " bash restart.sh # 重启全部"
|
|
echo " systemctl status server # 查看主服务状态"
|
|
echo " journalctl -u server -f # 查看主服务实时日志"
|