常见问题

GEO Wiki Pro 知识库平台常见问题解答,帮助快速解决部署、配置和使用中的问题

> 快速解决您在使用 GEO Wiki Pro 时遇到的问题 --- ## 🔧 安装部署 ### Q: 如何安装 GEO Wiki Pro? **A:** 有两种安装方式: **方式一:Docker 部署(推荐)** ```bash # 克隆代码 git clone https://github.com/your-org/geo-wiki-pro.git cd geo-wiki-pro # 配置环境变量 cp .env.example .env # 编辑 .env,设置 JWT_SECRET(至少 32 位) # 启动服务 docker-compose up -d # 验证 curl http://localhost:3002/api/v1/health ``` **方式二:本地开发** ```bash # 安装依赖 npm install # 启动前后端 npm run dev:full ``` ### Q: 宝塔面板如何部署? **A:** 请参考 [宝塔部署指南](/docs/baota-deployment),包含完整的 Nginx 配置和常见问题解决方案。 ### Q: Docker 部署后无法访问? **A:** 请检查以下几点: 1. **端口是否映射**:确保 `docker-compose.yml` 中端口映射正确 2. **.env 配置**:确认 `JWT_SECRET` 已设置且长度 >= 32 3. **查看日志**:`docker compose logs api` 检查错误信息 4. **防火墙**:确保端口未被防火墙阻拦 --- ## 🌐 多语言 ### Q: 如何添加新语言? **A:** 按以下步骤操作: 1. 创建翻译文件 `src/i18n/{lang}.json` 2. 在 `src/utils/i18n.js` 中注册新语言 3. 在 `data/docs/{lang}/` 目录下创建文档 4. 使用 CLI 创建:`geo doc create --file doc.md --lang {lang}` ### Q: 不同语言的文档如何同步? **A:** GEO Wiki Pro 使用级联合并机制: - 中文 (zh) 是基础语言 - 查询其他语言时,先读取中文文档作为基础,再用目标语言覆盖 - `category`、`tags`、`author`、`sort` 是共享字段,会自动同步到所有语言版本 - `title`、`description`、`content` 是独立字段,每个语言可以不同 --- ## 📝 文档管理 ### Q: 如何通过 CLI 管理文档? **A:** 使用 `geo` 命令行工具: ```bash # 安装 npm install -g geowiki-cli # 登录 geo login --url https://geowiki.pro # 创建文档 geo doc create --file article.md --category support --sort 1 # 更新文档 geo doc update --slug my-doc --file updated.md --lang zh # 删除文档 geo doc delete --slug old-doc # 查看文档列表 geo doc list --category support ``` ### Q: slug 是什么?如何选择? **A:** slug 是文档的 URL 标识符,用于生成访问链接。规则: - 只能包含字母、数字、连字符、下划线 - 最大长度 200 字符 - 建议使用英文小写和连字符 - 示例:`docker-deployment`、`faq`、`rest-api` ### Q: 如何调整文档排序? **A:** 在管理后台的文档列表页面,支持拖拽排序。也可以通过 API: ```bash curl -X PUT "https://geowiki.pro/api/v1/admin/docs/reorder" \ -H "Content-Type: application/json" \ -b "jwt=your-token" \ -d '{"slugs": ["doc-1", "doc-2", "doc-3"], "category": "support", "lang": "zh"}' ``` --- ## 🎨 Markdown 扩展 ### Q: 支持哪些扩展语法? **A:** GEO Wiki Pro 支持以下扩展语法: | 语法 | 说明 | 示例 | |------|------|------| | `:::video[说明](url)` | 视频嵌入 | `:::video[演示视频](https://bilibili.com/...)` | | `:::model[标题](url)` | 3D 模型卡片 | `:::model[产品模型](/media/model.step)` | | `::: note` / `::: tip` / `::: warning` | 提示框 | 信息提示、技巧、警告 | | `::: faq` | FAQ 块 | 问答对格式 | | `![alt](url)` | 图片(alt 自动显示为图注) | `![接线图](/media/wiring.png)` | | `[名称](url)` | 文件下载卡片 | `[用户手册](/media/manual.pdf)` | --- ## 🔒 安全问题 ### Q: 如何保护管理后台? **A:** GEO Wiki Pro 提供多层安全保护: 1. **JWT 认证**:httpOnly cookie,2 小时自动过期 2. **CSRF 保护**:Double-submit cookie HMAC 验证 3. **CSP 策略**:Helmet nonce-based Content Security Policy 4. **限流**:全局 300 次/分钟,认证接口 10 次/分钟 5. **密码加密**:bcrypt 加密存储 6. **首次登录强制改密** ### Q: 如何设置 HTTPS? **A:** 推荐使用 Nginx 反向代理 + Let's Encrypt: ```nginx server { listen 443 ssl http2; server_name geowiki.pro; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:3002; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` --- ## 📡 API 相关 ### Q: API 如何认证? **A:** 使用 JWT cookie 认证: ```bash # 登录获取 token curl -X POST "https://geowiki.pro/api/v1/auth/login" \ -H "Content-Type: application/json" \ -d '{"username": "admin", "password": "your-password"}' \ -c cookies.txt # 使用 token 访问管理接口 curl "https://geowiki.pro/api/v1/admin/docs" \ -b cookies.txt ``` ### Q: 公开接口需要认证吗? **A:** 不需要。以下接口完全公开: - `GET /api/v1/docs` — 文档列表 - `GET /api/v1/docs/:slug` — 单篇文档 - `GET /api/v1/docs/search` — 搜索 - `GET /api/v1/categories` — 分类 - `GET /api/v1/tags` — 标签 - `GET /api/v1/config` — 站点配置 - `GET /api/v1/llms.txt` — AI 爬虫 Feed - `GET /api/v1/geo/sitemap.xml` — 站点地图 --- ## 📚 更多资源 - [快速入门](/docs/cli-quick-reference) - [Docker 部署](/docs/docker-deployment) - [REST API 文档](/docs/rest-api) - [Markdown 扩展语法](/docs/markdown-extensions) --- *最后更新: 2026-06-06 | 版本: v3.0.2*