Files
geMoldInsight/LINUX_SETUP.md
T
2026-02-12 23:27:42 +08:00

5.7 KiB
Raw Blame History

MoldInsight Linux 部署指南

系统要求

  • Linux 系统 (Ubuntu 20.04+ / CentOS 8+)
  • Python 3.8+
  • PostgreSQL 12+
  • Git

1. 环境准备

安装系统依赖

# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip python3-venv postgresql postgresql-contrib git

# CentOS/RHEL
sudo yum update
sudo yum install python3 python3-pip postgresql postgresql-server git

配置PostgreSQL

# 启动PostgreSQL服务
sudo systemctl start postgresql
sudo systemctl enable postgresql

# 创建数据库和用户
sudo -u postgres psql

在PostgreSQL中执行:

CREATE DATABASE moldinsight;
CREATE USER molduser WITH PASSWORD 'moldpassword';
GRANT ALL PRIVILEGES ON DATABASE moldinsight TO molduser;
\q

2. 项目部署

克隆或复制项目

# 如果使用Git
cd /opt
sudo git clone <your-repo-url> moldinsight
sudo chown -R $USER:$USER moldinsight
cd moldinsight

# 或者直接复制项目文件到Linux服务器

创建Python虚拟环境

cd moldinsight_project
python3 -m venv venv
source venv/bin/activate

安装依赖

pip install --upgrade pip
pip install -r requirements.txt

3. 环境配置

修改环境配置文件

编辑 .env 文件:

nano .env

修改为Linux环境的配置:

# 数据库配置(Linux环境)
DATABASE_URL=postgresql+asyncpg://molduser:moldpassword@localhost:5432/moldinsight

# 服务配置
DEBUG=false
HOST=0.0.0.0
PORT=8000

# Redis配置(可选)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# Kafka配置(可选)
KAFKA_BOOTSTRAP_SERVERS=localhost:9092
KAFKA_SECURITY_PROTOCOL=PLAINTEXT

创建必要的目录

mkdir -p uploads html_output logs
chmod 755 uploads html_output logs

4. 启动服务

开发模式启动

cd moldinsight_project
source venv/bin/activate
python src/main.py

生产环境启动(使用Gunicorn)

# 安装Gunicorn
pip install gunicorn uvloop httptools

# 启动服务
cd moldinsight_project
source venv/bin/activate
gunicorn src.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000

5. 系统服务配置(可选)

创建systemd服务文件

sudo nano /etc/systemd/system/moldinsight.service

添加以下内容:

[Unit]
Description=MoldInsight Geometry Analysis Service
After=network.target postgresql.service

[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/opt/moldinsight/moldinsight_project
Environment=PATH=/opt/moldinsight/moldinsight_project/venv/bin
ExecStart=/opt/moldinsight/moldinsight_project/venv/bin/gunicorn src.main:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000
Restart=always

[Install]
WantedBy=multi-user.target

启用并启动服务

sudo systemctl daemon-reload
sudo systemctl enable moldinsight
sudo systemctl start moldinsight
sudo systemctl status moldinsight

6. Nginx反向代理配置(可选)

安装Nginx

# Ubuntu/Debian
sudo apt install nginx

# CentOS/RHEL
sudo yum install nginx

创建Nginx配置文件

sudo nano /etc/nginx/sites-available/moldinsight

添加以下内容:

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /static {
        alias /opt/moldinsight/moldinsight_project/static;
        expires 30d;
    }
}

启用站点并重启Nginx

sudo ln -s /etc/nginx/sites-available/moldinsight /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

7. 防火墙配置

# Ubuntu/Debian (ufw)
sudo ufw allow 80
sudo ufw allow 8000
sudo ufw allow ssh
sudo ufw enable

# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=8000/tcp
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

8. 验证部署

检查服务状态

# 检查应用服务
curl http://localhost:8000/health

# 检查数据库连接
sudo -u postgres psql -d moldinsight -c "SELECT version();"

测试文件上传

访问 http://your-server-ip:8000 上传STP文件测试功能。

9. 故障排除

常见问题

  1. 数据库连接失败

    • 检查PostgreSQL服务状态:sudo systemctl status postgresql
    • 验证数据库连接:psql -h localhost -U molduser -d moldinsight
  2. 端口被占用

    • 检查端口使用:netstat -tulpn | grep 8000
    • 修改端口或停止占用进程
  3. 权限问题

    • 确保目录权限正确:chmod 755 uploads html_output logs
    • 检查文件所有者:ls -la
  4. 依赖安装失败

    • 更新pip:pip install --upgrade pip
    • 使用国内镜像:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

10. 备份和恢复

数据库备份

# 备份数据库
sudo -u postgres pg_dump moldinsight > moldinsight_backup.sql

# 恢复数据库
sudo -u postgres psql -d moldinsight < moldinsight_backup.sql

文件备份

# 备份上传的文件和配置
tar -czf moldinsight_backup.tar.gz uploads/ html_output/ .env requirements.txt

快速启动脚本

创建启动脚本 start.sh:

#!/bin/bash
cd /opt/moldinsight/moldinsight_project
source venv/bin/activate
python src/main.py

赋予执行权限:

chmod +x start.sh
./start.sh

现在您的MoldInsight项目已经可以在Linux环境下正常运行!