Skip to content

安装指南

本文档将指导您完成 Sylis 英语学习平台的安装和配置。

环境要求

工具版本要求说明
Node.js>= 22.0.0JavaScript运行时环境
pnpm>= 8.0.0包管理器
Docker Desktop最新版数据库服务容器化
Python>= 3.8语音评测服务

安装必要工具

1. 安装 Node.js

bash
# macOS (使用 Homebrew)
brew install node@22

# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs

# Windows (使用 chocolatey)
choco install nodejs --version=22.0.0

# 验证安装
node --version  # 应该显示 v22.x.x
npm --version

2. 安装 pnpm

bash
# 使用 npm 安装
npm install -g pnpm@latest

# 或使用 curl (推荐)
curl -fsSL https://get.pnpm.io/install.sh | sh -

# 验证安装
pnpm --version  # 应该显示 8.x.x 或更高版本

3. 安装 Docker Desktop

  • macOS: 从 Docker 官网 下载安装
  • Windows: 从 Docker 官网 下载安装
  • Linux:
    bash
    # Ubuntu
    sudo apt-get update
    sudo apt-get install docker.io docker-compose
    sudo systemctl start docker
    sudo systemctl enable docker

4. 安装 Python (语音服务)

bash
# macOS
brew install python@3.11

# Ubuntu/Debian
sudo apt-get install python3 python3-pip python3-venv

# Windows
# 从 python.org 下载 Python 3.11+ 安装包

# 验证安装
python3 --version  # 应该显示 3.8+ 版本
pip3 --version

⚡ 快速安装

1. 克隆项目

bash
# 使用 HTTPS
git clone https://github.com/your-org/sylis.git
cd sylis

# 或使用 SSH (推荐)
git clone git@github.com:your-org/sylis.git
cd sylis

2. 安装依赖

bash
# 安装所有工作区依赖
pnpm install

# 安装 Python 语音服务依赖
pnpm speech:install

3. 环境配置

bash
# 复制环境变量模板
cp apps/api/.env.example apps/api/.env
cp apps/web/.env.example apps/web/.env

# 编辑环境变量 (详见配置指南)
nano apps/api/.env
nano apps/web/.env

4. 启动服务

bash
# 一键启动所有服务 (推荐)
pnpm start

这个命令会自动:

  • 检测并启动 Docker 容器 (PostgreSQL + Redis)
  • 执行数据库迁移
  • 填充示例数据
  • 启动前端、后端和语音服务

分步安装

如果您需要更细粒度的控制,可以分步启动各个服务:

1. 启动数据库服务

bash
# 启动 PostgreSQL 和 Redis
cd apps/api
docker-compose up -d

# 验证数据库连接
pnpm prisma:studio  # 打开 Prisma Studio

2. 数据库迁移和种子数据

bash
# 执行数据库迁移
pnpm --filter ./apps/api run prisma:dev

# 填充示例数据
pnpm --filter ./apps/api run prisma:seed

3. 启动后端服务

bash
# 开发模式启动后端
pnpm dev:api

# 或生产模式
pnpm build:api
pnpm start:api

4. 启动前端服务

bash
# 开发模式启动前端
pnpm dev:web

# 或生产模式
pnpm build:web
pnpm preview:web

5. 启动语音服务

bash
# 开发模式启动语音服务
pnpm speech:dev

# 或生产模式
pnpm speech:start

验证安装

安装完成后,您可以通过以下地址验证各个服务:

服务地址说明
🌐 前端应用http://localhost:5173Vite开发服务器
🔧 后端APIhttp://localhost:3000NestJS API服务
📚 API文档http://localhost:3000/swaggerSwagger UI
🗄️ 数据库管理http://localhost:5555Prisma Studio
🎙️ 语音服务http://localhost:8080Python语音评测
📖 项目文档http://localhost:5174VitePress文档

健康检查

bash
# 检查所有服务状态
pnpm health

# 单独检查各服务
curl http://localhost:3000/health     # 后端服务
curl http://localhost:8080/health     # 语音服务
curl http://localhost:5173            # 前端服务

生产环境安装

使用 Docker Compose

bash
# 构建生产镜像
docker-compose -f docker-compose.prod.yml build

# 启动生产环境
docker-compose -f docker-compose.prod.yml up -d

# 查看服务状态
docker-compose -f docker-compose.prod.yml ps

手动部署

bash
# 构建所有应用
pnpm build

# 安装生产依赖
pnpm install --prod

# 启动服务
NODE_ENV=production pnpm start:prod

开发工具

VS Code 配置

推荐安装以下 VS Code 扩展:

json
{
  "recommendations": [
    "bradlc.vscode-tailwindcss",
    "esbenp.prettier-vscode",
    "dbaeumer.vscode-eslint",
    "ms-vscode.vscode-typescript-next",
    "prisma.prisma",
    "ms-python.python"
  ]
}

数据库工具

bash
# Prisma Studio (推荐)
pnpm --filter ./apps/api run prisma:studio

# 或使用其他数据库工具
# pgAdmin: http://localhost:5050
# DBeaver: 桌面应用

代码质量工具

bash
# ESLint 检查
pnpm lint

# Prettier 格式化
pnpm format

# TypeScript 类型检查
pnpm typecheck

# 运行所有检查
pnpm check:all

常见安装问题

Node.js 版本问题

bash
# 如果遇到版本不兼容问题
nvm install 22
nvm use 22

# 或使用 n (macOS/Linux)
sudo npm install -g n
sudo n 22

pnpm 权限问题

bash
# macOS/Linux
sudo chown -R $(whoami) ~/.pnpm

# Windows (以管理员身份运行)
npm install -g pnpm --force

Docker 相关问题

bash
# Docker 未启动
# macOS
open /Applications/Docker.app

# Linux
sudo systemctl start docker

# Windows
# 启动 Docker Desktop

# 端口被占用
docker-compose down
lsof -ti:5432 | xargs kill -9  # PostgreSQL
lsof -ti:6379 | xargs kill -9  # Redis

Python 环境问题

bash
# 创建虚拟环境 (可选)
cd services/speech-service
python3 -m venv venv
source venv/bin/activate  # macOS/Linux
# 或 venv\Scripts\activate  # Windows

# 安装依赖
pip3 install -e .

# 测试安装
python3 -c "import librosa; print('语音服务依赖安装成功')"

权限问题

bash
# macOS/Linux 给脚本执行权限
chmod +x scripts/*.sh

# 如果遇到 EACCES 错误
sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) ~/.pnpm

性能优化

开发环境优化

bash
# 增加 Node.js 内存限制
export NODE_OPTIONS="--max-old-space-size=4096"

# 启用 pnpm 缓存
pnpm config set store-dir ~/.pnpm-store
pnpm config set cache-dir ~/.pnpm-cache

构建优化

bash
# 并行构建
pnpm build --parallel

# 增量构建
pnpm build --incremental

更新指南

更新依赖

bash
# 检查过时依赖
pnpm outdated

# 更新所有依赖到最新版本
pnpm update --latest

# 更新特定包
pnpm update package-name --latest

数据库迁移

bash
# 应用新的迁移
pnpm --filter ./apps/api run prisma:dev

# 重置数据库 (谨慎使用)
pnpm --filter ./apps/api run prisma:reset

如果您在安装过程中遇到任何问题,请查看 故障排除指南 或联系开发团队。