====== 🚀 DV IT Infrastructure Platform - 项目总览 ======
**项目名称**: DV IT Infrastructure Platform
**公司**: DISCOUNT VAPOR 1999 LIMITED
**技术负责人**: David
**联系邮箱**: discountvapor2025@gmail.com
**更新日期**: 2025年1月
===== 🎯 项目目标 =====
==== 核心愿景 ====
为DISCOUNT VAPOR 1999 LIMITED构建一个完整的企业级IT基础设施平台,支持4家门店的统一管理和数字化转型。
==== 技术架构 ====
* **本地开发**: Windows 11笔记本 + Ubuntu虚拟机完整模拟生产环境
* **生产部署**: Hostinger VPS + Cloudflare DNS + Let's Encrypt SSL
* **容器化**: Docker Compose统一管理所有服务
* **自动化**: Traefik反向代理 + 自动SSL证书管理
==== 业务价值 ====
* **效率提升**: 自动化业务流程,减少90%重复性工作
* **数据统一**: 多门店数据集中管理,实时同步
* **合规管理**: 统一的产品信息和合规要求管理
* **成本控制**: 开源解决方案,降低IT基础设施成本
===== 🌐 域名架构 =====
==== 主域名 ====
* **主站**: www.oasisvape.co.nz (继续使用现有Web Host)
* **IT基础设施**: 使用二级域名分流
==== 二级域名配置 ====
^ 服务 ^ 域名 ^ 用途 ^ 状态 ^
| ERPNext | erp.oasisvape.co.nz | 企业资源规划 | ✅ 已部署 |
| Strapi CMS | cms.oasisvape.co.nz | 电商内容管理 | ✅ 已部署 |
| n8n | n8n.oasisvape.co.nz | 工作流自动化 | ✅ 已部署 |
| DokuWiki | wiki.oasisvape.co.nz | 文档管理系统 | ✅ 已部署 |
| Grafana | grafana.oasisvape.co.nz | 监控可视化 | ✅ 已部署 |
| Traefik Dashboard | traefik.oasisvape.co.nz | 反向代理管理 | ✅ 已部署 |
===== 🏗️ 核心服务架构 =====
==== 1. ERPNext v15.67.5 - 企业资源规划 ====
* **功能**: 财务管理、库存管理、采购管理、销售管理、人力资源管理
* **数据库**: MariaDB 10.6 (专用数据库)
* **官方文档**: [[https://github.com/frappe/frappe_docker|Frappe Docker]]
* **访问地址**: https://erp.oasisvape.co.nz
* **业务价值**: 统一管理4家门店的财务、库存、采购等核心业务
==== 2. Strapi CMS - 电商内容管理系统 ====
* **版本**: 自定义镜像 (strapi_infra-strapi:latest)
* **功能**: 产品管理、订单管理、用户管理、支付集成、库存同步
* **数据库**: PostgreSQL 15-alpine (共享数据库,独立schema)
* **官方文档**: [[https://docs.strapi.io/cms/installation/docker|Strapi Docker]]
* **访问地址**: https://cms.oasisvape.co.nz
* **业务价值**: 统一管理产品信息、合规文档,支持多渠道销售
==== 3. n8n v1.100.1 - 工作流自动化平台 ====
* **功能**: 业务流程自动化、系统集成、定时任务、Webhook处理
* **数据库**: PostgreSQL 15-alpine (与Strapi共享数据库,独立schema)
* **官方文档**: [[https://docs.n8n.io/hosting/installation/docker|n8n Docker]]
* **访问地址**: https://n8n.oasisvape.co.nz
* **登录信息**: admin / 35@Riccarton
* **业务价值**: 自动化库存补货、营销邮件、数据同步等业务流程
==== 4. DokuWiki - 文档管理系统 ====
* **功能**: 知识库管理、操作手册、培训文档
* **存储**: 文件系统
* **官方文档**: [[https://www.dokuwiki.org/docker|DokuWiki Docker]]
* **访问地址**: https://wiki.oasisvape.co.nz
* **业务价值**: 员工培训、操作规范、最佳实践沉淀
==== 5. Traefik v2.10 - 反向代理和SSL管理 ====
* **功能**: SSL证书自动申请/续期、负载均衡、路由管理
* **证书**: Let's Encrypt (HTTP Challenge)
* **官方文档**: [[https://doc.traefik.io/traefik/|Traefik Docs]]
* **访问地址**: https://traefik.oasisvape.co.nz
* **业务价值**: 统一SSL管理,简化运维,提升安全性
==== 6. 监控系统 ====
* **Grafana**: 监控可视化面板 (admin / 35@Riccarton)
* **Prometheus**: 时序数据库,存储监控数据
* **cAdvisor**: 容器监控代理,收集系统指标
* **访问地址**: https://grafana.oasisvape.co.nz
===== 🗄️ 数据库架构设计 =====
==== 数据库分配策略 ====
* **ERPNext**: 专用MariaDB 10.6数据库 (erpnext_db)
* 原因:ERPNext对MariaDB支持更好,性能更优
* **Strapi + n8n**: 共享PostgreSQL 15-alpine数据库 (strapi_db)
* Strapi使用schema: ''strapi_schema''
* n8n使用schema: ''n8n_schema''
* 优势:资源节约,管理简化
==== 数据库配置优势 ====
* **性能优化**: ERPNext使用MariaDB获得最佳性能
* **资源节约**: Strapi和n8n共享PostgreSQL实例,减少资源占用
* **管理简化**: 减少数据库实例数量,便于备份和维护
* **数据隔离**: 通过schema实现数据隔离,确保安全性
===== 📁 项目文件结构 =====
/opt/discountvapor-it/
├── docker-compose.yml # 监控系统配置
├── docker-compose-erpnext.yml # ERPNext配置
├── docker-compose-strapi.yml # Strapi配置
├── docker-compose-n8n.yml # n8n配置
├── docker-compose-dokuwiki.yml # DokuWiki配置
├── docker-compose-traefik.yml # Traefik配置
├── docker-compose-postgres.yml # PostgreSQL配置
├── .env # 环境变量
├── domain-config.env # 域名配置
├── prometheus.yml # Prometheus配置
├── data/ # 数据目录
│ ├── grafana/ # Grafana数据
│ ├── prometheus/ # Prometheus数据
│ └── ...
├── logs/ # 日志目录
├── traefik/ # Traefik配置
│ ├── traefik.yml # Traefik主配置
│ └── acme.json # SSL证书存储
├── config_backup/ # 配置备份
├── scripts/ # 脚本目录
└── wiki/ # Wiki文档
===== 🔄 部署策略 =====
==== 开发流程 ====
1. **本地调试**: 在Ubuntu虚拟机中完整配置和测试所有服务
2. **功能验证**: 确保所有服务功能正常,配置无误
3. **打包传输**: 将整个项目目录打包传输到VPS
4. **生产部署**: 在VPS上启动服务,配置DNS解析
5. **上线验证**: 验证所有服务的生产环境访问和功能
==== 部署优势 ====
* **环境一致性**: 本地与生产环境100%一致
* **快速恢复**: 配置文件版本化,可快速重建环境
* **版本可控**: 使用固定版本号,确保稳定性
* **运维简化**: 统一Docker Compose管理
===== 🔧 技术规范 =====
==== 文件管理规范 ====
* **配置分离**: 每个服务独立目录,配置、数据、文档分离
* **版本控制**: 所有配置文件纳入Git版本控制
* **环境变量**: 敏感信息使用.env文件,不提交到版本控制
* **文档同步**: 重要变更必须更新相应文档
==== 安全规范 ====
* **网络隔离**: 使用Docker网络,仅暴露必要端口
* **访问控制**: 各系统独立认证,最小权限原则
* **数据加密**: 数据库连接使用SSL,敏感数据加密存储
* **定期更新**: 定期更新系统和依赖包
==== 域名配置规范 ====
* **SSL自动化**: 统一使用Traefik自动管理Let's Encrypt证书
* **二级域名**: 每个服务使用独立二级域名
* **DNS管理**: 通过Cloudflare统一管理DNS记录
* **故障切换**: 支持快速DNS切换和故障恢复
==== 数据库管理规范 ====
* **ERPNext**: 专用MariaDB数据库,独立备份和恢复
* **共享数据库**: Strapi和n8n共享PostgreSQL,通过schema隔离
* **备份策略**: 定期备份所有数据库,支持点对点恢复
* **监控**: 监控数据库性能和连接状态
===== 🛡️ 网络安全配置 =====
==== 防火墙规则 (UFW) ====
* **开放端口**: 22 (SSH), 80 (HTTP), 443 (HTTPS)
* **关闭端口**: 3000, 5678, 8080, 8081, 8180, 9090
* **状态**: ✅ 已配置
==== 访问控制 ====
* 所有业务服务仅通过 Traefik 反向代理访问
* 监控服务端口已关闭外部访问
* 仅通过二级域名 + HTTPS 访问,提高安全性
===== 📊 监控和运维 =====
==== 监控栈 ====
cAdvisor → Prometheus → Grafana
↓ ↓ ↓
收集指标 存储数据 可视化展示
==== 服务管理 ====
# 查看所有服务状态
docker ps
# 重启特定服务
docker compose -f docker-compose-xxx.yml restart
# 查看服务日志
docker logs
==== 备份策略 ====
* 所有 compose 文件已备份 (.bak 后缀)
* 重要配置文件已备份
* 数据目录定期备份
===== 🔗 访问信息汇总 =====
^ 服务 ^ 域名 ^ 登录信息 ^ 状态 ^
| ERPNext | https://erp.oasisvape.co.nz | 管理员账号 | ✅ 正常 |
| Strapi CMS | https://cms.oasisvape.co.nz | 管理员账号 | ✅ 正常 |
| n8n | https://n8n.oasisvape.co.nz | admin / 35@Riccarton | ✅ 正常 |
| DokuWiki | https://wiki.oasisvape.co.nz | 管理员账号 | ✅ 正常 |
| Grafana | https://grafana.oasisvape.co.nz | admin / 35@Riccarton | ✅ 正常 |
| Traefik Dashboard | https://traefik.oasisvape.co.nz | - | ✅ 正常 |