#!/bin/bash # 创建必要的目录 mkdir -p logs email_data db # 检查环境变量文件是否存在,不存在则创建 if [ ! -f .env ]; then echo "创建.env文件..." cat > .env << EOF FLASK_ENV=production SECRET_KEY=$(openssl rand -hex 16) MAIL_DOMAINS=example.com,mail.example.com EOF echo ".env文件已创建" fi # 初始化数据库 echo "初始化数据库..." python -c "from app.models import init_db; init_db()" # 启动服务 echo "启动服务..." if [ "$1" == "docker" ]; then # 使用Docker启动 docker-compose up -d echo "服务已在Docker中启动" else # 直接启动 echo "直接启动应用..." # 检查是否以root权限运行(25端口需要) if [ "$(id -u)" -ne 0 ] && [ "$SMTP_PORT" -lt 1024 ]; then echo "警告: 在端口 $SMTP_PORT 运行SMTP服务需要root权限" fi python run.py --host 0.0.0.0 --port 5000 --smtp-port ${SMTP_PORT:-25} fi