# codrys-crm-env **Repository Path**: llqcai/codrys-crm-env ## Basic Information - **Project Name**: codrys-crm-env - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-14 - **Last Updated**: 2025-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI-CRM Docker Compose 部署项目 本项目提供了完整的 Docker Compose 配置,用于部署以下应用: 1. **Cordys CRM** - 新一代的开源 AI CRM 系统 2. **SQLBot** - 基于大模型和 RAG 的智能问数系统 3. **MaxKB** - 企业级智能体与知识库平台 4. **One API** - OpenAI 接口管理与分发系统 5. **Ollama** - 本地大语言模型运行平台 ## 📋 系统要求 - Docker 20.10+ - Docker Compose 1.29+ 或 Docker Compose V2 - 至少 4GB RAM - 至少 20GB 磁盘空间 ## 🚀 快速开始 ### 1. 启动服务 #### Linux/macOS: ```bash chmod +x start.sh ./start.sh ``` #### Windows (PowerShell): ```powershell docker-compose up -d ``` ### 2. 访问应用 启动成功后,可通过以下地址访问各个应用: ### 🌐 统一入口(推荐) **导航页面**: http://localhost 通过域名访问(需配置 hosts): - **Cordys CRM**: http://crm.local - **SQLBot**: http://sqlbot.local - **MaxKB**: http://maxkb.local - **One API**: http://oneapi.local - **Ollama**: http://ollama.local ### 📱 直接端口访问 | 应用 | 访问地址 | 默认账号 | 默认密码 | |-----|---------|---------|---------| | **Cordys CRM** | http://localhost:8081 或 http://crm.local | admin | CordysCRM | | **SQLBot** | http://localhost:8000 或 http://sqlbot.local | admin | SQLBot@123456 | | **MaxKB** | http://localhost:8085 或 http://maxkb.local | admin | MaxKB@123 | | **One API** | http://localhost:8084 或 http://oneapi.local | root | 123456 | | **Ollama** | http://localhost:11434 或 http://ollama.local | - | 无需登录 | > 💡 **提示**: 使用域名访问需要配置本地 hosts 文件。Windows: `C:\Windows\System32\drivers\etc\hosts` > > 添加以下内容到 hosts 文件: > ``` > 127.0.0.1 crm.local > 127.0.0.1 sqlbot.local > 127.0.0.1 maxkb.local > 127.0.0.1 oneapi.local > 127.0.0.1 ollama.local > ``` ## 📊 端口配置 ### 统一入口 - **Nginx HTTP**: 80(推荐) - **Nginx HTTPS**: 443(可选,需配置 SSL 证书) ### 应用端口(直接访问) - **Cordys CRM 前端**: 8081 - **Cordys CRM 后端**: 8082 - **SQLBot**: 8000 - **MaxKB**: 8085 - **One API**: 8084 - **Ollama API**: 11434 ### 数据库端口 - **共享 MySQL** (Cordys CRM): 3306 - **Cordys Redis**: 6379 - **SQLBot PostgreSQL**: 5432 > **架构说明**: > - 使用 Nginx 作为统一反向代理,支持域名访问 > - 各应用独立数据库,数据完全隔离 > - 支持容器间直接通过服务名通信,无跨域问题 ## 📁 目录结构 ``` ai-crm/ ├── docker-compose.yml # Docker Compose 配置文件 ├── .env # 环境变量配置 ├── start.sh # 启动脚本 ├── stop.sh # 停止脚本 ├── restart.sh # 重启脚本 ├── backup.sh # 数据备份脚本 ├── README.md # 说明文档 ├── config/ # 配置文件目录 │ └── shared-mysql/ # 共享 MySQL 配置 │ ├── my.cnf # MySQL 配置文件 │ └── init.sql # 数据库初始化脚本 ├── data/ # 数据持久化目录 │ ├── shared-mysql/ # 共享 MySQL 数据 │ ├── cordys-redis/ # Cordys Redis 数据 │ ├── cordys-crm/ # Cordys 应用数据 │ ├── sqlbot-postgres/ # SQLBot 数据库数据 │ ├── sqlbot/ # SQLBot 应用数据 │ ├── maxkb/ # MaxKB 应用数据(包含内置数据库) │ ├── one-api/ # One API 应用数据 │ └── ollama/ # Ollama 模型数据 └── backups/ # 数据库备份目录 ``` ## 🔧 常用命令 ### 启动服务 ```bash # 使用脚本 ./start.sh # 或使用 Docker Compose docker-compose up -d ``` ### 停止服务 ```bash # 使用脚本 ./stop.sh # 或使用 Docker Compose docker-compose down ``` ### 重启服务 ```bash # 使用脚本 ./restart.sh # 或使用 Docker Compose docker-compose restart ``` ### 查看服务状态 ```bash docker-compose ps ``` ### 查看日志 ```bash # 查看所有服务日志 docker-compose logs -f # 查看特定服务日志 docker-compose logs -f cordys-crm docker-compose logs -f sqlbot docker-compose logs -f maxkb docker-compose logs -f one-api ``` ### 进入容器 ```bash # 进入 Cordys CRM 容器 docker exec -it cordys-crm bash # 进入 SQLBot 容器 docker exec -it sqlbot bash # 进入 MaxKB 容器 docker exec -it maxkb bash # 进入 One API 容器 docker exec -it one-api sh ``` ## 💾 数据备份与恢复 ### 备份数据库 ```bash chmod +x backup.sh ./backup.sh ``` 备份文件将保存在 `backups/` 目录下,格式为:`ai-crm-backup_YYYYMMDD_HHMMSS.tar.gz` ### 手动备份单个数据库 #### 备份共享 MySQL(Cordys CRM 数据库) ```bash # 备份所有数据库 docker exec shared-mysql mysqldump -uroot -pshared_mysql_root_password --all-databases > all_databases_backup.sql # 只备份 Cordys 数据库 docker exec shared-mysql mysqldump -uroot -pshared_mysql_root_password cordys > cordys_backup.sql ``` #### 备份 SQLBot PostgreSQL ```bash docker exec sqlbot-postgres pg_dump -U sqlbot sqlbot > sqlbot_backup.sql ``` #### 备份 MaxKB(内置数据库) ```bash # MaxKB 使用内置数据库,数据存储在 ./data/maxkb 目录 # 可以直接备份整个目录 tar -czf maxkb_backup_$(date +%Y%m%d_%H%M%S).tar.gz ./data/maxkb ``` ### 恢复数据库 #### 恢复共享 MySQL ```bash # 恢复所有数据库 docker exec -i shared-mysql mysql -uroot -pshared_mysql_root_password < all_databases_backup.sql # 恢复 Cordys 数据库 docker exec -i shared-mysql mysql -uroot -pshared_mysql_root_password cordys < cordys_backup.sql # 恢复 DataEase 数据库 docker exec -i shared-mysql mysql -uroot -pshared_mysql_root_password dataease < dataease_backup.sql ``` #### 恢复 SQLBot PostgreSQL ```bash docker exec -i sqlbot-postgres psql -U sqlbot sqlbot < sqlbot_backup.sql ``` ## ⚙️ 配置说明 ### 修改数据库密码 编辑 `docker-compose.yml` 文件中的环境变量,或修改 `config/shared-mysql/init.sql` 中的密码: ```yaml # 修改 docker-compose.yml 中的 root 密码 environment: MYSQL_ROOT_PASSWORD: your_secure_password ``` ```sql -- 修改 config/shared-mysql/init.sql 中的用户密码 CREATE USER IF NOT EXISTS 'cordys'@'%' IDENTIFIED BY 'your_cordys_password'; CREATE USER IF NOT EXISTS 'dataease'@'%' IDENTIFIED BY 'your_dataease_password'; ``` 修改后需要删除数据目录并重新启动: ```bash docker-compose down -v rm -rf data/* ./start.sh ``` ### 修改端口 编辑 `docker-compose.yml` 文件,修改对应服务的端口映射。 ### 性能优化 根据服务器配置,可以修改 MySQL 配置文件: - `config/shared-mysql/my.cnf` - 共享 MySQL 配置 主要参数: - `max_connections`: 最大连接数(默认 2000,因为两个应用共享) - `innodb_buffer_pool_size`: InnoDB 缓冲池大小(默认 512M,建议根据内存调整) - `innodb_log_file_size`: InnoDB 日志文件大小(默认 256M) ## 🔍 故障排查 ### 服务无法启动 1. 检查端口是否被占用: ```bash # Windows netstat -ano | findstr "8081" netstat -ano | findstr "8000" netstat -ano | findstr "8083" # Linux/macOS netstat -tulpn | grep 8081 netstat -tulpn | grep 8000 netstat -tulpn | grep 8083 ``` 2. 查看服务日志: ```bash docker-compose logs -f [服务名] ``` 3. 检查容器状态: ```bash docker-compose ps ``` ### 数据库连接失败 1. 确保数据库容器已启动: ```bash docker-compose ps | grep mysql docker-compose ps | grep postgres ``` 2. 检查数据库日志: ```bash docker-compose logs -f shared-mysql docker-compose logs -f sqlbot-postgres ``` 3. 测试数据库连接: ```bash # 测试共享 MySQL(root 用户) docker exec -it shared-mysql mysql -uroot -pshared_mysql_root_password # 测试 Cordys 数据库 docker exec -it shared-mysql mysql -ucordys -pcordys_password cordys # 测试 DataEase 数据库 docker exec -it shared-mysql mysql -udataease -pdataease_password dataease # 测试 SQLBot PostgreSQL docker exec -it sqlbot-postgres psql -U sqlbot -d sqlbot # 查看 MySQL 中的所有数据库 docker exec -it shared-mysql mysql -uroot -pshared_mysql_root_password -e "SHOW DATABASES;" ``` ### 容器重启循环 1. 查看容器日志找出错误原因: ```bash docker logs [容器名] ``` 2. 检查磁盘空间: ```bash df -h ``` 3. 检查内存使用: ```bash free -h ``` ## 📚 相关文档 - [Cordys CRM GitHub](https://github.com/1Panel-dev/CordysCRM) - [Cordys CRM 官网](https://cordys.cn) - [SQLBot 安装文档](https://dataease.cn/sqlbot/v1/installation/online_installtion/) - [DataEase 官网](https://dataease.io) - [DataEase 文档](https://dataease.io/docs/) ## 🤝 技术支持 如有问题,可以通过以下方式获取帮助: - Cordys CRM 微信交流群:查看 [GitHub 仓库](https://github.com/1Panel-dev/CordysCRM) README - DataEase 社区:https://dataease.io - SQLBot 文档:https://dataease.cn/sqlbot/ ## 📄 许可证 本部署项目采用 MIT 许可证。 各应用的许可证请参考: - Cordys CRM: FIT2CLOUD Open Source License (基于 GPLv3) - DataEase: GPLv3 - SQLBot: GPLv3 ## ⚠️ 注意事项 1. **生产环境使用前请务必修改所有默认密码** 2. 定期备份数据库数据 3. 建议使用反向代理(如 Nginx)进行域名访问和 SSL 配置 4. 根据实际负载调整数据库配置参数 5. 确保服务器有足够的资源(CPU、内存、磁盘) ## 🎯 最佳实践 1. **安全加固** - 修改所有默认密码 - 使用强密码策略 - 配置防火墙规则 - 启用 HTTPS 2. **性能优化** - 根据实际负载调整数据库参数 - 监控资源使用情况 - 定期清理日志文件 3. **运维管理** - 建立定期备份计划 - 监控服务健康状态 - 保持系统和应用更新 - 记录运维日志 4. **高可用部署** - 使用负载均衡 - 配置数据库主从复制 - 设置监控告警 - 制定灾难恢复计划