73 行
1.6 KiB
Bash
可執行檔
73 行
1.6 KiB
Bash
可執行檔
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=== Auto-SSL 一键部署脚本 ==="
|
|
|
|
# 1. 拉取最新代码
|
|
echo "1. 拉取最新代码..."
|
|
git pull origin 0.01
|
|
|
|
# 2. 编译后端
|
|
echo "2. 编译Go后端..."
|
|
cd backend
|
|
go build -o autossl .
|
|
cd ..
|
|
|
|
# 3. 编译前端
|
|
echo "3. 编译Vue前端..."
|
|
cd frontend
|
|
npm install --include=dev
|
|
npm run build
|
|
cd ..
|
|
|
|
# 4. 部署前端资源...
|
|
echo "4. 部署前端资源..."
|
|
rm -rf backend/dist
|
|
mkdir -p backend/dist
|
|
cp -rf frontend/dist/* backend/dist/
|
|
|
|
# 5. 创建systemd服务
|
|
echo "5. 安装systemd服务..."
|
|
# 直接生成正确路径的service文件,避免sed替换失败
|
|
cat > /tmp/autossl.service << EOF
|
|
[Unit]
|
|
Description=Auto-SSL 证书管理服务
|
|
After=network.target
|
|
Wants=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=root
|
|
WorkingDirectory=$PWD/backend
|
|
Environment="PORT=9090"
|
|
Environment="ACME_PORT=8082"
|
|
Environment="GIN_MODE=release"
|
|
ExecStart=$PWD/backend/autossl
|
|
Restart=always
|
|
RestartSec=3
|
|
StandardOutput=journal+console
|
|
StandardError=journal+console
|
|
SyslogIdentifier=autossl
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
sudo cp /tmp/autossl.service /etc/systemd/system/autossl.service
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable autossl
|
|
|
|
# 6. 重启服务
|
|
echo "6. 重启服务..."
|
|
sudo systemctl restart autossl
|
|
|
|
# 7. 检查状态
|
|
sleep 2
|
|
echo "7. 检查服务状态..."
|
|
if curl -s http://127.0.0.1:9090/api/stats > /dev/null; then
|
|
echo "✅ 部署成功!服务运行在 http://0.0.0.0:9090"
|
|
echo "📝 日志查看:journalctl -u autossl -f"
|
|
else
|
|
echo "❌ 部署失败,请检查日志:journalctl -u autossl -n 50"
|
|
exit 1
|
|
fi
|