Node.js 部署指南

Node.js 部署指南

Node.js 部署适合开发者和小规模部署场景,提供更灵活的定制和调试能力。

前置要求

  • Node.js >= 14.0.0
  • npm >= 6.0.0
  • Git

安装步骤

1. 克隆仓库

git clone https://github.com/steven-ld/PowerWiki.git
cd PowerWiki

2. 安装依赖

npm install

3. 创建配置文件

cp config.example.json config.json

4. 编辑配置文件

编辑 config.json,填入您的 Git 仓库地址:

{
  "gitRepo": "https://github.com/your-username/your-wiki-repo.git",
  "repoBranch": "main",
  "mdPath": "",
  "port": 3150,
  "siteTitle": "My Wiki",
  "siteDescription": "Knowledge Base",
  "autoSyncInterval": 180000,
  "pages": {
    "home": "README.md",
    "about": "ABOUT.md"
  }
}

5. 启动服务

npm start

访问 http://localhost:3150

开发模式

使用 Nodemon 自动重启

npm run dev

这会在文件变化时自动重启服务器,便于开发调试。

环境变量配置

创建 .env 文件

cp .env.example .env

编辑 .env

CONFIG_PATH=./config.json
DATA_DIR=./data
GIT_CACHE_DIR=./cache
LANG=zh-CN
NODE_ENV=development

环境变量说明

变量 默认值 说明
CONFIG_PATH ./config.json 配置文件路径
DATA_DIR ./data 统计数据和日志目录
GIT_CACHE_DIR ./cache Git 仓库缓存目录
LANG zh-CN 控制台语言(zh-CN 或 en)
NODE_ENV development 运行环境(development 或 production)

项目结构

PowerWiki/
├── src/                     # 源代码
│   ├── index.js             # Express 服务器入口
│   ├── routes/              # 路由模块
│   │   ├── api.js           # API 路由
│   │   ├── feeds.js         # RSS/Sitemap 路由
│   │   └── static.js        # 静态文件路由
│   ├── config/              # 配置模块
│   │   ├── env.js           # 环境变量
│   │   └── i18n.js          # 国际化
│   └── utils/               # 工具模块
│       ├── cacheManager.js  # 缓存管理
│       ├── gitManager.js    # Git 操作
│       └── markdownParser.js# Markdown 解析
├── public/                  # 前端静态文件
│   ├── index.html           # 主页面
│   ├── css/                 # 样式文件
│   └── js/                  # 前端 JavaScript
├── locales/                 # 翻译文件
│   ├── zh-CN.json           # 中文翻译
│   └── en.json              # 英文翻译
├── config.example.json      # 配置模板
├── package.json             # 依赖配置
└── README.md                # 项目说明

常用 npm 命令

开发命令

# 启动开发服务器(自动重启)
npm run dev

# 启动生产服务器
npm start

# 测试环境变量
npm run test:env

Docker 命令

# 构建 Docker 镜像
npm run docker:build

# 运行 Docker 容器
npm run docker:run

# 停止 Docker 容器
npm run docker:stop

# 查看 Docker 日志
npm run docker:logs

语言命令

# 使用英文启动
npm run start:en

# 使用中文启动
npm run start:zh

依赖管理

主要依赖

{
  "express": "^4.18.0",
  "marked": "^4.0.0",
  "highlight.js": "^11.0.0",
  "simple-git": "^3.0.0",
  "pdfjs-dist": "^3.0.0"
}

更新依赖

# 检查过期依赖
npm outdated

# 更新所有依赖
npm update

# 更新特定依赖
npm install express@latest

性能优化

启用缓存

编辑 config.json

{
  "cacheEnabled": true,
  "cacheTTL": 3600000,
  "autoSyncInterval": 180000
}

调整自动同步间隔

{
  "autoSyncInterval": 300000
}

单位为毫秒,上例表示 5 分钟同步一次。

日志管理

查看日志

# 查看最近的日志
tail -f data/logs/powerwiki.log

# 查看特定日期的日志
cat data/logs/powerwiki-2026-02-07.log

故障排查

端口被占用

# 查看占用端口的进程
lsof -i :3150

# 使用不同的端口
PORT=8080 npm start

Git 仓库无法访问

# 检查 Git 配置
git config --list

# 测试 Git 连接
git clone <your-repo-url> test-repo

内存不足

# 增加 Node.js 内存限制
node --max-old-space-size=4096 src/index.js

# 或在 npm 脚本中配置
NODE_OPTIONS=--max-old-space-size=4096 npm start

生产环境配置

使用 PM2 进程管理

# 安装 PM2
npm install -g pm2

# 启动应用
pm2 start src/index.js --name powerwiki

# 查看进程
pm2 list

# 查看日志
pm2 logs powerwiki

# 停止应用
pm2 stop powerwiki

# 重启应用
pm2 restart powerwiki

PM2 配置文件

创建 ecosystem.config.js

module.exports = {
  apps: [{
    name: 'powerwiki',
    script: './src/index.js',
    instances: 'max',
    exec_mode: 'cluster',
    env: {
      NODE_ENV: 'production',
      PORT: 3150
    }
  }]
};

启动:

pm2 start ecosystem.config.js

使用 Nginx 反向代理

upstream powerwiki {
    server localhost:3150;
}

server {
    listen 80;
    server_name wiki.example.com;

    location / {
        proxy_pass http://powerwiki;
        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;
    }
}

更新和升级

更新源代码

# 拉取最新代码
git pull origin main

# 安装新依赖
npm install

# 重启服务
npm start

提示: Node.js 部署适合开发和小规模部署。生产环境建议使用 Docker 或 PM2 进程管理。

更新时间:2026年2月24日