安装配置
详细的安装和配置指南,帮助你成功部署学习追踪系统。
📋 系统要求
最低配置
- 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.io2. 安装 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-compose3. 克隆项目
bash
git clone https://github.com/your-username/study-tracker.git
cd study-tracker4. 配置环境变量
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.com5. 启动服务
bash
# 使用生产部署脚本
./server-deploy.sh
# 或者手动启动
docker-compose -f docker-compose.prod.yml up -d6. 运行数据库迁移
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 --version2. 安装 PostgreSQL
bash
# Ubuntu/Debian
sudo apt update
sudo apt install postgresql postgresql-contrib
# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresql3. 安装 Redis
bash
# Ubuntu/Debian
sudo apt install redis-server
# 启动服务
sudo systemctl start redis-server
sudo systemctl enable redis-server4. 配置数据库
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;
\q5. 安装项目依赖
bash
# 克隆项目
git clone https://github.com/your-username/study-tracker.git
cd study-tracker
# 安装依赖
npm install
# 配置环境变量
cp env.example .env
nano .env6. 运行迁移和启动
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 enable2. SSL 证书配置
bash
# 安装 Certbot
sudo apt install certbot python3-certbot-nginx
# 获取 SSL 证书
sudo certbot --nginx -d yourdomain.com -d docs.yourdomain.com3. 数据库安全
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-server2. 测试数据库连接
bash
# 测试 PostgreSQL
psql -h your-server-ip -U study_tracker -d study_tracker
# 测试 Redis
redis-cli ping3. 访问应用
🐛 故障排除
常见问题
端口被占用
bash# 查看端口占用 sudo lsof -i :3001 # 杀死进程 sudo kill -9 <PID>数据库连接失败
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- 权限问题bash
# 修复文件权限 sudo chown -R $USER:$USER . chmod +x *.sh
📚 下一步
安装完成后,开始你的学习之旅吧! 🎓