Files
emailsystem/init_1panel.sh
2025-02-25 19:50:00 +08:00

80 lines
2.1 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
# 邮箱系统 1Panel 初始化脚本
# 用于在1Panel环境中首次部署系统
echo "开始初始化邮箱系统..."
# 检查是否在ARM架构上运行
ARCH=$(uname -m)
if [[ $ARCH == "aarch64" || $ARCH == "arm64" ]]; then
echo "检测到ARM架构: $ARCH"
else
echo "警告: 当前架构 $ARCH 不是ARM可能会影响性能优化"
fi
# 创建必要的目录
mkdir -p logs email_data db
echo "创建目录完成"
# 检查环境变量文件是否存在,不存在则创建
if [ ! -f .env ]; then
echo "创建.env文件..."
# 生成随机密钥
SECRET_KEY=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)
cat > .env << EOF
FLASK_ENV=production
SECRET_KEY=${SECRET_KEY}
MAIL_DOMAINS=example.com,mail.example.com
DATABASE_URL=sqlite:///db/email_system.db
EOF
echo ".env文件已创建"
fi
# 安装Python依赖
echo "安装Python依赖..."
pip install --no-cache-dir -r requirements.txt
echo "依赖安装完成"
# 初始化数据库
echo "初始化数据库..."
python -c "from app.models import init_db; init_db()"
echo "数据库初始化完成"
# 检查SMTP服务器端口是否可用
PORT_CHECK=$(netstat -ln | grep ':25 ' | wc -l)
if [ $PORT_CHECK -gt 0 ]; then
echo "警告: 端口25已被占用可能需要修改SMTP端口配置"
# 自动修改为备用端口587
sed -i 's/SMTP_PORT = 25/SMTP_PORT = 587/g' config.py
echo "已将SMTP端口更改为587"
fi
# 创建服务管理脚本
cat > email_system.service << EOF
[Unit]
Description=Email System Service
After=network.target
[Service]
User=root
WorkingDirectory=$(pwd)
ExecStart=$(which gunicorn) --bind 0.0.0.0:5000 --workers 4 run:app
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
echo "服务管理脚本已创建: email_system.service"
echo "可以使用以下命令安装系统服务:"
echo "sudo cp email_system.service /etc/systemd/system/"
echo "sudo systemctl daemon-reload"
echo "sudo systemctl enable email_system.service"
echo "sudo systemctl start email_system.service"
echo "初始化完成,系统已准备就绪"
echo "可以通过以下命令启动系统:"
echo "python run.py --host 0.0.0.0 --port 5000"