Skip to content

安装配置

详细的安装和配置指南,帮助你成功部署学习追踪系统。

📋 系统要求

最低配置

  • CPU: 2 核心
  • 内存: 2GB RAM
  • 存储: 10GB 可用空间
  • 操作系统: Linux (Ubuntu 20.04+, CentOS 7+)

推荐配置

  • CPU: 4 核心
  • 内存: 4GB RAM
  • 存储: 20GB 可用空间
  • 操作系统: Ubuntu 22.04 LTS

🐳 Docker 部署(推荐)

1. 安装 Docker

bash
# Ubuntu/Debian
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# CentOS/RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

2. 安装 Docker Compose

bash
# 下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 设置执行权限
sudo chmod +x /usr/local/bin/docker-compose

3. 克隆项目

bash
git clone https://github.com/your-username/study-tracker.git
cd study-tracker

4. 配置环境变量

bash
# 复制环境变量文件
cp env.example .env

# 编辑配置文件
nano .env

主要配置项:

env
# 数据库配置
DB_HOST=postgres
DB_PORT=5432
DB_NAME=study_tracker_prod
DB_USER=study_tracker
DB_PASSWORD=your_secure_password

# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password

# JWT 配置
JWT_SECRET=your_super_secret_jwt_key
JWT_REFRESH_SECRET=your_super_secret_refresh_key

# 服务器配置
NODE_ENV=production
PORT=3001
TRUST_PROXY=true

# 域名配置
DOMAIN=yourdomain.com
DOCS_DOMAIN=docs.yourdomain.com
CORS_ORIGIN=https://yourdomain.com
DOCS_CORS_ORIGIN=https://docs.yourdomain.com

5. 启动服务

bash
# 使用生产部署脚本
./server-deploy.sh

# 或者手动启动
docker-compose -f docker-compose.prod.yml up -d

6. 运行数据库迁移

bash
# 运行迁移
docker-compose -f docker-compose.prod.yml exec app npm run db:migrate

# 运行种子数据
docker-compose -f docker-compose.prod.yml exec app npm run db:seed

🖥️ 传统部署

1. 安装 Node.js

bash
# 使用 NodeSource 仓库
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

# 验证安装
node --version
npm --version

2. 安装 PostgreSQL

bash
# Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib

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

3. 安装 Redis

bash
# Ubuntu/Debian
sudo apt install redis-server

# 启动服务
sudo systemctl start redis-server
sudo systemctl enable redis-server

4. 配置数据库

bash
# 切换到 postgres 用户
sudo -u postgres psql

# 创建数据库和用户
CREATE DATABASE study_tracker;
CREATE USER study_tracker WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE study_tracker TO study_tracker;
\q

5. 安装项目依赖

bash
# 克隆项目
git clone https://github.com/your-username/study-tracker.git
cd study-tracker

# 安装依赖
npm install

# 配置环境变量
cp env.example .env
nano .env

6. 运行迁移和启动

bash
# 运行数据库迁移
npm run db:migrate

# 运行种子数据
npm run db:seed

# 启动服务
npm start

🔧 环境配置详解

数据库配置

env
# PostgreSQL 配置
DB_HOST=localhost          # 数据库主机
DB_PORT=5432              # 数据库端口
DB_NAME=study_tracker     # 数据库名称
DB_USER=study_tracker     # 数据库用户
DB_PASSWORD=your_password # 数据库密码

Redis 配置

env
# Redis 配置
REDIS_HOST=localhost      # Redis 主机
REDIS_PORT=6379          # Redis 端口
REDIS_PASSWORD=          # Redis 密码(可选)
REDIS_DB=0              # Redis 数据库编号

JWT 配置

env
# JWT 配置
JWT_SECRET=your_super_secret_jwt_key           # JWT 密钥
JWT_REFRESH_SECRET=your_refresh_secret_key     # 刷新令牌密钥
JWT_EXPIRES_IN=7d                             # 令牌过期时间
JWT_REFRESH_EXPIRES_IN=30d                    # 刷新令牌过期时间

服务器配置

env
# 服务器配置
NODE_ENV=production       # 运行环境
PORT=3001                # 服务端口
TRUST_PROXY=true         # 信任代理(生产环境)
SESSION_SECURE_COOKIES=true # 安全 Cookie

🔒 安全配置

1. 防火墙配置

bash
# 开放必要端口
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
sudo ufw enable

2. SSL 证书配置

bash
# 安装 Certbot
sudo apt install certbot python3-certbot-nginx

# 获取 SSL 证书
sudo certbot --nginx -d yourdomain.com -d docs.yourdomain.com

3. 数据库安全

sql
-- 限制数据库访问
ALTER USER study_tracker CONNECTION LIMIT 10;

📊 性能优化

1. Node.js 优化

bash
# 设置 Node.js 内存限制
export NODE_OPTIONS="--max-old-space-size=2048"

2. PostgreSQL 优化

sql
-- 调整 PostgreSQL 配置
ALTER SYSTEM SET shared_buffers = '256MB';
ALTER SYSTEM SET effective_cache_size = '1GB';
ALTER SYSTEM SET maintenance_work_mem = '64MB';
ALTER SYSTEM SET checkpoint_completion_target = 0.9;
ALTER SYSTEM SET wal_buffers = '16MB';
ALTER SYSTEM SET default_statistics_target = 100;

3. Redis 优化

bash
# 编辑 Redis 配置
sudo nano /etc/redis/redis.conf

# 添加以下配置
maxmemory 256mb
maxmemory-policy allkeys-lru

🔍 验证安装

1. 检查服务状态

bash
# Docker 部署
docker ps

# 传统部署
sudo systemctl status postgresql
sudo systemctl status redis-server

2. 测试数据库连接

bash
# 测试 PostgreSQL
psql -h your-server-ip -U study_tracker -d study_tracker

# 测试 Redis
redis-cli ping

3. 访问应用

🐛 故障排除

常见问题

  1. 端口被占用

    bash
    # 查看端口占用
    sudo lsof -i :3001
    
    # 杀死进程
    sudo kill -9 <PID>
  2. 数据库连接失败

    bash
    # 检查 PostgreSQL 状态
    sudo systemctl status postgresql
    
    # 检查连接

psql -h your-server-ip -U study_tracker -d study_tracker


3. **Redis 连接失败**
```bash
# 检查 Redis 状态
sudo systemctl status redis-server

# 测试连接
redis-cli ping
  1. 权限问题
    bash
    # 修复文件权限
    sudo chown -R $USER:$USER .
    chmod +x *.sh

📚 下一步


安装完成后,开始你的学习之旅吧! 🎓

Released under the MIT License.