Docker 部署指南

面向已购买 GEO Wiki Pro 商业授权的客户,介绍生产环境的标准 Docker 部署流程

> ⚠️ **付费客户专属文档** > > 本文档面向**已购买 GEO Wiki Pro 商业授权**的客户。如果您还未购买,请先联系商务获取授权: > > 📧 [[email protected]](mailto:[email protected]) > > 购买后您将获得:完整源码包、部署文档、技术支持、版本升级、定制开发。 --- ## 📋 前置条件 在开始部署前,请确保您的服务器满足以下条件: | 条件 | 最低要求 | 推荐配置 | |------|----------|----------| | 操作系统 | Linux (Ubuntu 22.04+ / CentOS 8+ / Debian 11+) | Ubuntu 22.04 LTS | | Docker | 20.10+ | 24.0+ | | Docker Compose | v2.0+ | v2.20+ | | CPU | 1 核 | 2 核+ | | 内存 | 1GB | 2GB+ | | 磁盘空间 | 500MB | 5GB+(含备份空间)| | 公网带宽 | 1 Mbps | 5 Mbps+(取决于访问量)| > 💡 商务客户如需服务器选型建议或云厂商折扣,请联系 [[email protected]](mailto:[email protected])。 --- ## 🚀 快速部署(4 步完成) ### 第 1 步:上传并解压源码包 将您购买后获取的源码包上传到服务器(使用 SFTP 或 scp),然后解压: ```bash # 创建项目目录 sudo mkdir -p /opt/geowiki-pro sudo chown $USER:$USER /opt/geowiki-pro # 上传源码包到该目录后,解压 cd /opt/geowiki-pro tar -xzf geowiki-pro-source.tar.gz # 查看解压结果 ls -la ``` ### 第 2 步:配置环境变量 ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件(必填项) nano .env ``` **必填配置**: ```bash # JWT 密钥(至少 32 个字符,建议用 openssl 生成) JWT_SECRET=<your-secure-random-secret> # 服务端口(默认 3002,可按需修改) PORT=3002 # 数据存储路径(建议用绝对路径) DATA_DIR=/opt/geowiki-pro/data ``` **生成安全的 JWT 密钥**: ```bash openssl rand -base64 48 ``` ### 第 3 步:启动服务 ```bash # 启动所有服务(后台运行) docker-compose up -d # 查看启动状态 docker-compose ps # 查看实时日志 docker-compose logs -f ``` ### 第 4 步:验证部署 ```bash # 检查 API 健康状态 curl https://your-domain.com/api/v1/health # 访问管理后台 # 浏览器打开:https://your-domain.com/admin # 默认账号:admin(首次登录会强制要求修改密码) ``` > ✅ 如果健康检查返回 `{"success": true}`,说明部署成功! --- ## 🏗️ 架构说明 ### 服务组件 | 服务 | 端口 | 说明 | |------|------|------| | Web 前端 | 3002 | React SPA,文档展示界面 | | API 服务 | 3002(同端口)| Node.js 后端,提供 REST API | | 数据存储 | - | 文件系统存储(`data/docs/`, `data/db.json`)| 整个系统采用单容器部署,简化运维。 --- ## ⚙️ 高级配置 ### 自定义端口 如需修改默认端口(3002),编辑 `.env`: ```bash PORT=8080 ``` 同时修改 `docker-compose.yml` 中的端口映射: ```yaml ports: - "8080:3002" # 外部端口:内部端口 ``` ### 挂载数据目录 为了数据安全和备份便利,建议将数据目录挂载到宿主机: ```yaml volumes: - ./data:/app/data - ./public/media:/app/public/media - ./logs:/app/logs ``` ### 配置 HTTPS(推荐) 生产环境强烈建议使用 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://localhost:3002; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` **方案 B:使用 Cloudflare 反向代理**(零配置 SSL) 将域名 DNS 指向 Cloudflare,开启代理模式即可。 --- ## 🔒 安全配置 ### 首次登录 1. 使用默认账号 `admin` 登录 2. **系统会强制要求修改密码**(密码至少 8 位) 3. 立即在管理后台修改默认管理员邮箱 ### 环境变量安全 ```bash # 设置 .env 文件权限(仅 owner 可读写) chmod 600 .env # 永远不要将 .env 提交到 Git echo ".env" >> .gitignore ``` ### 定期更新 JWT 密钥 建议每 90 天轮换一次 JWT 密钥(商务客户可联系技术支持协助)。 --- ## 🐛 常见问题 ### 容器启动失败 ```bash # 查看详细日志 docker-compose logs api # 常见原因: # 1. .env 文件未配置 JWT_SECRET(必须至少 32 字符) # 2. 端口被占用:lsof -i :3002 # 3. Docker 权限不足:sudo usermod -aG docker $USER ``` ### 数据备份 ```bash # 手动备份(建议配合 cron 定时执行) tar -czf backup-$(date +%Y%m%d).tar.gz data/ # 商务客户可联系技术支持获取自动化备份方案 ``` ### 升级到新版本 ```bash # 1. 停止当前服务 docker-compose down # 2. 备份数据(重要!) tar -czf backup-before-upgrade.tar.gz data/ # 3. 解压新版本源码包 tar -xzf geowiki-pro-vNEW.tar.gz # 4. 启动新版本 docker-compose up -d # 5. 验证 curl https://your-domain.com/api/v1/health ``` > 💡 商务客户升级前可联系 [[email protected]](mailto:[email protected]) 获取升级指南和兼容性说明。 --- ## 📊 监控与维护 ### 健康检查 ```bash # API 健康状态 curl https://your-domain.com/api/v1/health # Docker 容器状态 docker-compose ps ``` ### 日志查看 ```bash # 实时日志 docker-compose logs -f # 最近 100 行日志 docker-compose logs --tail=100 ``` ### 性能监控建议 商务客户推荐使用以下监控工具: - **UptimeRobot**(免费):HTTP 健康检查 + 宕机告警 - **Prometheus + Grafana**(高级):完整指标监控 - 商务客户可联系技术支持获取定制监控方案 --- ## 🆘 技术支持 ### 商务客户专属支持 - 📧 **邮箱**:[[email protected]](mailto:[email protected]) - 📞 **电话**:(商务客户专属) - 💬 **微信群**:(购买后邀请加入) - 🕐 **响应时间**:工作日 4 小时内首次响应 ### 自助资源 - 📖 [用户手册](/docs/geo-wiki-pro-user-manual) - ❓ [FAQ](/docs/faq) - 🛠️ [CLI 工具](/docs/cli-reference) --- ## 📚 下一步 部署完成后,建议您: 1. **配置 HTTPS**(安全必需) 2. **设置自动备份**(数据安全) 3. **配置监控告警**(可用性保障) 4. **加入商务客户微信群**(技术支持 + 版本更新通知) 5. **阅读 [用户手册](/docs/geo-wiki-pro-user-manual)** 了解更多功能 欢迎使用 GEO Wiki Pro!如有任何问题,请随时联系商务团队 🎉