初始化提交,包含完整的邮件系统代码

This commit is contained in:
huangzhenpc
2025-02-25 19:50:00 +08:00
commit aeffc4f8b8
52 changed files with 6673 additions and 0 deletions

80
init_1panel.sh Normal file
View 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"