初始化提交,包含完整的邮件系统代码
This commit is contained in:
80
init_1panel.sh
Normal file
80
init_1panel.sh
Normal file
@@ -0,0 +1,80 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user