calc/install.sh
2025-03-26 12:48:43 +08:00

100 lines
2.0 KiB
Bash
Raw Permalink 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.

#!/bin/bash
# 设置颜色输出
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
# 打印带颜色的信息
print_info() {
echo -e "${GREEN}[INFO] $1${NC}"
}
print_error() {
echo -e "${RED}[ERROR] $1${NC}"
}
# 检查必要的命令
check_commands() {
print_info "检查必要的命令..."
commands=("docker" "docker-compose" "node" "npm")
for cmd in "${commands[@]}"; do
if ! command -v $cmd &> /dev/null; then
print_error "$cmd 未安装"
exit 1
fi
done
}
# 创建必要的目录
create_directories() {
print_info "创建必要的目录..."
mkdir -p nginx/conf.d nginx/ssl frontend/dist
}
# 构建前端
build_frontend() {
print_info "构建前端..."
cd frontend
npm install
npm run build
cd ..
}
# 检查环境变量
check_env() {
print_info "检查环境变量..."
if [ ! -f .env ]; then
print_error "未找到 .env 文件"
exit 1
fi
}
# 检查SSL证书
check_ssl() {
print_info "检查SSL证书..."
if [ ! -f nginx/ssl/cert.pem ] || [ ! -f nginx/ssl/key.pem ]; then
print_info "未找到SSL证书将使用HTTP模式"
# 修改nginx配置移除SSL相关配置
sed -i '/ssl/d' nginx/conf.d/default.conf
sed -i 's/443/80/g' nginx/conf.d/default.conf
fi
}
# 启动服务
start_services() {
print_info "启动服务..."
docker-compose up -d
}
# 检查服务状态
check_services() {
print_info "检查服务状态..."
sleep 5
if docker-compose ps | grep -q "Up"; then
print_info "服务启动成功!"
print_info "前端访问地址: http://localhost"
print_info "后端API地址: http://localhost:8000"
else
print_error "服务启动失败,请检查日志"
docker-compose logs
fi
}
# 主函数
main() {
print_info "开始安装部署..."
check_commands
create_directories
build_frontend
check_env
check_ssl
start_services
check_services
print_info "安装部署完成!"
}
# 执行主函数
main