# Teanary Service
**Repository Path**: limyang94/teanary_service
## Basic Information
- **Project Name**: Teanary Service
- **Description**: Teanary.com – 一个支持多节点部署、AI自动翻译、商品采集的现代化全球电商平台系统。专为解决跨国电商运营难题而设计。
- **Primary Language**: PHP
- **License**: GPL-3.0
- **Default Branch**: dev
- **Homepage**: https://teanary.com/index.html
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 15
- **Created**: 2026-01-15
- **Last Updated**: 2026-01-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Teanary - 全球多节点电商平台系统
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://laravel.com)
[](https://php.net)
[](https://tailwindcss.com)
[](https://livewire.laravel.com)
[](https://filamentphp.com)
> 一个支持多节点部署、AI自动翻译、商品采集的现代化全球电商平台系统。专为解决跨国电商运营难题而设计。
> 代码已通过单元测试和静态分析,普通bug反馈请通过Issues提交;安全相关bug请通过Email(hello@teanary.com)提交
## 🎮 在线演示
**前端地址**: [https://demo.chatterup.fun:2003](https://demo.chatterup.fun:2003)
**后台管理**: [https://demo.chatterup.fun:2003/m](https://demo.chatterup.fun:2003/m)
**测试账号**(前后端通用):
- 邮箱: `demo@demo.com`
- 密码: `demo123456`
**重要说明**:
- ⚠️ **Demo 数据每 8 小时自动重置一次**
- 💻 当前 Demo 服务器运行在一台树莓派上,性能有限,请谅解
- 🌐 如果您愿意赞助服务器资源部署 Demo,我们可以部署多节点同步演示环境,展示完整的多节点同步功能
- 📧 如有赞助意向或想了解更多信息,请联系:hello@teanary.com
### 📸 系统截图
#### 🖥️ 前端界面(8张)

*前端首页展示*

*分类页面*

*商品详情页面*

*购物车页面*

*结算页面*

*订单页面*

*文章推荐页面*

*联系我们页面*
#### ⚙️ 后台管理(20张)

*后台管理首页*

*商品管理界面*

*商品编辑页面*

*商品属性值管理*

*商品规格管理*

*商品规格值管理*

*商品评价管理*

*分类管理*

*属性管理*

*订单管理*

*用户管理*

*管理用户页面*

*用户组管理*

*促销管理*

*收货地址管理*

*文章管理*

*货币管理*

*语言管理*

*国家管理*

*区域管理*
#### 🔧 其他功能(1张)

*Chrome采集插件*
## 🌟 核心特性
### 🌍 多节点数据同步系统
**解决的核心问题:**
- ✅ **跨国服务器管理难题**:服务器在国外,管理网站不方便?在中国部署管理节点,数据自动同步到全球各节点
- ✅ **本地化运营**:不同国家/地区运行独立节点,提供本地化服务,提升用户体验
- ✅ **数据一致性**:多节点数据自动双向同步,以最新数据为准,确保全球数据一致
- ✅ **故障容灾**:单个节点故障不影响其他节点,系统自动重试同步
**技术特点:**
- 🔄 **双向同步**:支持任意数量节点间的数据双向同步
- 📦 **批量同步**:多条记录打包同步,大幅提升效率
- 🔐 **安全可靠**:API Key 验证,支持 HTTPS 加密传输
- 📁 **文件同步**:自动同步媒体文件(图片、资源等)
- 🔁 **自动重试**:同步失败自动重试,确保数据不丢失
- 📊 **同步监控**:完整的同步日志和状态跟踪
**适用场景:**
- 中国管理节点 + 美国/欧洲/亚洲等多个销售节点
- 不同国家/地区独立运营,数据统一管理
- 需要本地化服务但统一数据源的场景
### 🤖 AI 自动翻译系统
**功能特点:**
- 🌐 **多语言支持**:支持 8 种语言自动翻译(中文、英文、西班牙语、法语、日语、韩语、德语、俄语)
- 📝 **内容翻译**:自动翻译商品信息、文章内容、分类描述等
- 🎯 **智能识别**:自动识别 HTML 内容,保留标签结构
- ⚡ **批量处理**:支持批量翻译,提升效率
- 🔄 **状态跟踪**:翻译状态实时跟踪(待翻译、翻译中、已完成、失败)
**技术实现:**
- 集成 Ollama 本地 AI 模型,无需第三方 API
- 支持自定义翻译提示词,优化翻译质量
- 异步队列处理,不阻塞主流程
### 🛒 Chrome 插件商品采集
**功能特点:**
- 🛍️ **1688 商品采集**:一键采集 1688 商品信息
- 📸 **图片自动下载**:自动下载商品图片并上传到服务器
- 🌐 **多语言处理**:自动提取中文信息,准备翻译
- 📋 **批量导入**:支持批量商品导入
- 🔄 **数据同步**:采集的商品自动同步到所有节点
**使用场景:**
- 从 1688 等平台快速采集商品
- 批量导入商品到电商平台
- 自动化商品管理流程
### 🛍️ 完整电商功能
- **产品管理**:多规格、多图片、多语言产品信息
- **分类系统**:灵活的层级分类和属性筛选
- **购物车**:实时购物车功能
- **订单管理**:完整的订单流程和状态跟踪
- **支付集成**:支持 PayPal 等多种支付方式
- **促销系统**:灵活的促销规则和优惠券
- **用户系统**:用户注册、登录、个人中心
- **内容管理**:多语言文章系统
- **SEO 优化**:自动生成 SEO 标签
### 🎨 现代化管理后台
- **Filament 3.x**:基于 Laravel 的现代化管理面板
- **实时数据统计**:销售数据、用户统计等
- **多语言管理**:统一管理所有语言内容
- **媒体管理**:图片上传、优化、管理
- **系统设置**:灵活的配置管理
## 🚀 技术栈
### 后端技术
- **Laravel 12.x** - PHP Web 框架
- **PHP 8.1+** - 服务器端语言
- **MySQL 8.0+** - 数据库
- **Redis** - 缓存和会话存储
- **Laravel Octane** - 高性能应用服务器
### 前端技术
- **Tailwind CSS 3.x** - 实用优先的 CSS 框架
- **Livewire 3.x** - 全栈框架
- **Alpine.js** - 轻量级 JavaScript 框架
- **Vite** - 现代前端构建工具
### 管理后台
- **Filament 3.x** - Laravel 管理面板
- **自定义组件** - 针对业务定制的管理组件
### 其他工具
- **Laravel Media Library** - 媒体文件管理
- **Laravel Scout** - 全文搜索
- **Laravel Queue** - 队列处理
- **Laravel Notifications** - 通知系统
- **Ollama** - 本地 AI 模型(用于翻译)
## 📦 快速开始
### 环境要求
- PHP >= 8.1
- Composer
- Node.js >= 16.x
- MySQL >= 8.0
- Redis
- Ollama (可选,用于 AI 翻译)
### 安装步骤
1. **克隆项目**
```bash
git clone https://gitee.com/teanary/teanary_service.git
cd teanary_service
```
```bash
git clone https://github.com/TeanaryService/teanary_srvice.git
cd teanary_service
```
2. **安装依赖**
```bash
composer install
npm install
```
3. **环境配置**
```bash
cp .env.example .env
php artisan key:generate
```
4. **配置数据库**
编辑 `.env` 文件:
```env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=teanary
DB_USERNAME=your_username
DB_PASSWORD=your_password
```
5. **配置多节点同步(可选)**
```env
SYNC_ENABLED=true
SYNC_NODE=node1
# 配置其他节点
SYNC_NODE2_URL=https://node2.example.com
SYNC_NODE2_API_KEY=your-secret-api-key
SYNC_NODE2_TIMEOUT=600
```
6. **运行数据库迁移**
```bash
php artisan migrate
php artisan db:seed
```
7. **构建前端资源**
```bash
npm run build
```
8. **启动开发服务器**
```bash
php artisan serve
```
访问 `http://localhost:8000` 查看网站。
## 🌐 多节点部署指南
### 为什么选择程序层同步而不是 MySQL 主从同步?
在跨国多节点部署场景下,我们选择了**程序层数据同步**而非传统的 MySQL 主从同步,主要原因如下:
**1. 高网络延迟环境下的可靠性**
- 🌍 **跨国网络延迟**:中国到美国/欧洲的数据库连接延迟通常在 200-400ms,MySQL 主从同步在高延迟环境下容易出现超时和连接中断
- 🔄 **程序层同步**:通过 HTTP/HTTPS API 进行数据同步,可以更好地处理网络波动,支持重试机制和断点续传
**2. 灵活的数据同步策略**
- 📦 **批量同步**:程序层可以智能地将多条记录打包同步,大幅提升效率
- 🎯 **选择性同步**:可以只同步需要的数据,避免同步不必要的系统表、日志表等
- 🔀 **双向同步**:支持任意节点间的双向同步,而 MySQL 主从通常是单向的
**3. 更好的容错和恢复能力**
- 🔁 **自动重试**:同步失败可以自动重试,不会因为网络波动导致数据丢失
- 📊 **同步监控**:完整的同步日志和状态跟踪,可以清楚地知道每条数据的同步状态
- 🛡️ **冲突处理**:可以基于业务逻辑处理数据冲突(如以最新数据为准)
**4. 跨数据库兼容性**
- 🗄️ **数据库无关**:不依赖特定的数据库类型,可以支持 MySQL、PostgreSQL 等不同数据库
- 🔧 **易于扩展**:未来如果需要支持其他数据库类型,只需修改同步逻辑,无需改变数据库架构
**5. 业务逻辑集成**
- 🎨 **数据转换**:可以在同步过程中进行数据转换、验证和业务逻辑处理
- 📁 **文件同步**:可以同时同步媒体文件、图片等,而 MySQL 主从同步无法处理文件
**6. 安全性考虑**
- 🔐 **API 认证**:使用 API Key 进行认证,比直接暴露数据库连接更安全
- 🔒 **HTTPS 加密**:所有数据传输通过 HTTPS 加密,保护数据安全
**总结**:在跨国高延迟网络环境下,程序层同步提供了更好的可靠性、灵活性和可维护性,更适合复杂的多节点电商场景。
### 场景示例
**场景 1:中国管理 + 全球销售节点**
```
中国节点(管理节点)
├── 美国节点(销售节点)
├── 欧洲节点(销售节点)
└── 亚洲节点(销售节点)
```
**场景 2:多地区独立运营**
```
北京节点
├── 上海节点
├── 广州节点
└── 深圳节点
```
### 配置步骤
1. **在每个节点配置环境变量**
```env
# 节点 1 配置
SYNC_ENABLED=true
SYNC_NODE=beijing
SYNC_BEIJING_URL=https://beijing.example.com
SYNC_BEIJING_API_KEY=key-for-beijing
SYNC_SHANGHAI_URL=https://shanghai.example.com
SYNC_SHANGHAI_API_KEY=key-for-shanghai
# 节点 2 配置
SYNC_ENABLED=true
SYNC_NODE=shanghai
SYNC_BEIJING_URL=https://beijing.example.com
SYNC_BEIJING_API_KEY=key-for-beijing
SYNC_SHANGHAI_URL=https://shanghai.example.com
SYNC_SHANGHAI_API_KEY=key-for-shanghai
```
2. **配置雪花 ID 机器 ID**
每个节点必须配置不同的机器 ID:
```env
SNOWFLAKE_MACHINE_ID=1 # 节点 1
SNOWFLAKE_MACHINE_ID=2 # 节点 2
```
3. **启动队列处理**
```bash
php artisan queue:work
```
详细配置请参考 [SYNC.md](SYNC.md)
## 📡 API 文档
### 商品上传接口
**接口地址**: `POST /api/products/add`
**功能**: 上传商品,支持多语言、多规格、分类自动创建、图片上传
**请求示例**:
```bash
curl -X POST https://your-domain.com/api/products/add \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-api-token" \
-d '{
"slug": "product-slug",
"translations": [
{
"language_id": 1,
"name": "商品名称",
"description": "商品描述"
}
],
"variants": [
{
"sku": "SKU-001",
"price": 99.99,
"stock": 100
}
]
}'
```
### 文章上传接口
**接口地址**: `POST /api/articles/add`
**功能**: 上传文章,支持多语言、图片上传
详细 API 文档请参考代码中的接口定义。
## 💼 商业服务
我们提供专业的商业服务支持:
### 🚀 部署服务
- **价格**:¥500/次
- **服务内容**:
- 服务器环境配置
- 代码部署和优化
- 数据库配置
- 多节点同步配置
- SSL 证书配置
- 性能优化
### 🔧 维护服务
- **价格**:¥1500/年
- **服务内容**:
- 系统更新和维护
- 安全补丁更新
- 性能监控和优化
- 技术支持(邮件/电话)
- 故障排查和修复
- 数据备份和恢复
### 🎨 界面二次开发
- **服务内容**:
- 自定义主题开发
- 界面定制和优化
- 新功能开发
- 第三方系统集成
### 🛒 Chrome 采集插件
- **价格**:¥1500(含3年免费更新支持)
- **服务内容**:
- Chrome 浏览器插件
- 1688 商品一键采集
- 图片自动下载上传
- 批量商品导入
- 3年免费更新和技术支持
- 使用教程和文档
### 🤖 AI 翻译端程序
- **价格**:¥1500(含3年更新支持)
- **服务内容**:
- 独立的翻译服务程序
- 集成 Ollama AI 模型
- 支持 8 种语言自动翻译
- 商品和文章批量翻译
- 3年免费更新和技术支持
- 部署指导和技术文档
**联系方式**:
- 📧 邮箱:hello@teanary.com
- 📱 电话:+86 18184839903
- 💬 微信:请通过邮箱联系获取
## 📄 开源协议
本项目采用 **AGPL-3.0** (GNU Affero General Public License v3.0) 开源协议。
### 协议要点
**您可以:**
- ✅ 自由使用、研究、修改代码
- ✅ 自由分发代码
- ✅ 用于商业项目
**您必须:**
- ⚠️ 如果修改代码并部署为网络服务,必须公开修改后的源代码
- ⚠️ 保留原始版权声明和协议声明
- ⚠️ 使用相同的协议发布衍生作品
**您不能:**
- ❌ 修改代码后作为闭源商业产品售卖
- ❌ 移除版权声明
**为什么选择 AGPL?**
- 保护开源项目的完整性
- 防止将开源项目包装成闭源商业产品
- 鼓励贡献回社区
完整协议内容请查看 [LICENSE](LICENSE) 文件。
## 🤝 贡献指南
我们欢迎社区贡献!请遵循以下步骤:
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
### 代码规范
- 遵循 PSR-12 编码标准
- 使用有意义的变量和函数名
- 添加适当的注释
- 编写单元测试
- 运行代码质量检查:`composer check`
## 📊 项目结构
```
teanary_service/
├── app/
│ ├── Console/ # 控制台命令
│ ├── Enums/ # 枚举类
│ ├── Filament/ # Filament管理面板
│ ├── Http/ # HTTP控制器
│ ├── Jobs/ # 队列任务
│ ├── Livewire/ # Livewire组件
│ ├── Models/ # 数据模型
│ ├── Services/ # 业务服务
│ │ └── SyncService.php # 多节点同步服务
│ └── Traits/ # 特征类
│ └── Syncable.php # 同步功能 Trait
├── config/
│ └── sync.php # 同步配置
├── database/
│ ├── migrations/ # 数据库迁移
│ └── seeders/ # 数据填充
├── lang/ # 多语言文件(8种语言)
├── routes/ # 路由定义
└── tests/ # 测试文件
```
## 🧪 测试
```bash
# 运行所有测试
composer test
# 运行单元测试
php bin/phpunit tests/Unit/
# 运行功能测试
php bin/phpunit tests/Feature/
```
## 📚 相关文档
- [多节点同步文档](SYNC.md) - 详细的多节点同步配置和使用指南
- [代码优化文档](OPTIMIZATION.md) - 代码架构和优化说明
- [部署指南](#部署指南) - 生产环境部署说明
## 🌐 部署指南
### 高性能部署(推荐)
本项目已配置 Laravel Octane 高性能部署。
**首次部署**:
```bash
vendor/bin/dep deploy:first teanary
```
**常规部署**:
```bash
vendor/bin/dep deploy teanary
```
详细部署说明请参考 README 中的部署章节。
## 📞 联系我们
- **项目主页**: [Gitee Repository](https://gitee.com/teanary/teanary_service)|[Github Repository](https://github.com/TeanaryService/teanary_srvice)
- **问题反馈**: [Gitee Issues](https://gitee.com/teanary/teanary_service/issues)|[Github Issues](https://github.com/TeanaryService/teanary_srvice/issues)
- **邮箱**: hello@teanary.com
- **电话**: +86 18184839903
## 🙏 致谢
感谢所有为这个项目做出贡献的开发者和用户!
---
**Teanary** - 让全球电商运营更简单 🌍