Home
Softono

Auralogic

Open source MIT TypeScript
76
Stars
23
Forks
0
Issues
0
Watchers
3 months
Last Commit

 About Auralogic

Self-hosted e-commerce platform with Go, Next.js, plugin runtime, virtual inventory, orders, payments, and admin analytics.

Platforms

Web Self-hosted

Languages

TypeScript

Links

Need Help Installing Auralogic?

We provide expert installation service for this software. Our team will install, configure, and secure Auralogic on your server. plans start at just $30.

AuraLogic

自托管的全功能电商平台,支持实体与虚拟商品销售

Go Version Next.js License


系统概述

AuraLogic 是一个自托管的电商平台,支持实体商品和虚拟商品(激活码、序列号等)的销售与管理。系统提供商品展示、购物车、多种支付方式、库存管理、订单处理、客服工单、知识库等完整电商功能,同时支持通过 API 与第三方平台对接。


核心功能

商品与库存

  • 实体商品 - 支持多属性(颜色、尺寸等),需发货的传统商品
  • 虚拟商品 - 激活码、序列号等数字商品,支持自动发货
  • 库存管理 - 独立库存池,支持多商品共享库存、安全库存预警
  • 盲盒模式 - 随机分配商品属性,支持按优先级分配
  • 虚拟库存 - 批量导入虚拟库存项,支持预留/释放机制
  • 商品序列号 - 防伪序列号生成与公开验证

购物与订单

  • 购物车 - 按属性区分的购物车系统
  • 订单管理 - 用户下单、管理员代下单、第三方 API 创建草稿订单
  • 发货表单 - 通过安全链接填写收货信息,支持隐私保护模式
  • 物流跟踪 - 物流单号分配与展示
  • 优惠码 - 百分比/固定金额折扣,支持商品范围限制和有效期

支付系统

  • 多种支付方式 - 内置 USDT (TRC20/BEP20) 自动确认
  • 可扩展支付 - 通过 JavaScript 脚本自定义支付方式
  • 支付包治理 - 支持通过 ZIP 包上传/市场导入 payment_js 支付方式
  • 支付轮询 - 自动检测支付状态

用户系统

  • 多种登录方式 - 邮箱密码、OAuth(Google/GitHub)、快速登录链接
  • 自动注册 - 填写发货表单时自动创建账号
  • 隐私保护 - 用户可选择隐藏收货信息,仅发货管理员可见

客服与内容

  • 工单系统 - 用户提交工单、消息对话、文件上传、订单共享
  • 知识库 - 分类树结构的帮助文档
  • 公告系统 - 系统公告发布,支持强制阅读确认

管理后台

  • RBAC 权限 - 细粒度权限控制(订单、商品、用户、隐私查看等)
  • 数据分析 - 用户、订单、收入、设备、页面访问统计
  • API 密钥 - 第三方平台 API 接入管理,支持速率限制
  • 系统设置 - SMTP 邮件、登录策略、验证码、落地页编辑等
  • 操作日志 - 管理员操作记录、邮件发送日志

API 接入

第三方平台通过 API 密钥(X-API-Key + X-API-Secret)访问管理端接口(/api/admin/*),按分配的权限范围(scopes)操作订单、商品、用户等资源。管理员在后台创建 API 密钥时指定允许的权限和速率限制。

插件系统

  • 双运行时插件 - 支持 js_workergRPC 两种插件运行时
  • 全链路 Hook 扩展 - 支持认证、订单、支付、工单、商品库存、前端扩展等 Hook
  • 插件专属页面 - 支持管理端/用户端插件页、菜单入口与页面自执行
  • 沙箱权限控制 - 支持按插件授予 hook.executefrontend.extensionsapi.executeruntime.file_system 等能力

技术栈

后端: Go + Gin + GORM,支持 PostgreSQL / MySQL / SQLite

前端: Next.js 15 (App Router) + TypeScript + Tailwind CSS + shadcn/ui

基础设施: Redis 缓存 + JWT 认证 + OAuth2


快速开始

一键 Docker 部署(推荐)

git clone https://github.com/Unicode01/auralogic
cd auralogic
bash scripts/build_docker.sh

脚本会交互式引导完成配置(数据库类型、JWT 密钥、OAuth、SMTP、管理员账号等),自动构建 Docker 镜像并生成 docker-compose.yml

# 启动
docker compose up -d

# 更新(代码更新后,无需重新配置)
bash scripts/build_docker.sh update

容器内集成 Nginx + Backend + Frontend + Redis,由 Supervisor 管理进程。

手动部署

后端

cd backend
cp config/config.example.json config/config.json
# 编辑 config/config.json 和 config/admin.json
go mod download
go run scripts/init_admin.go
go run cmd/api/main.go --config=config/config.json

前端

cd frontend
npm install
# 编辑 .env.local 设置 API 地址
npm run dev

项目结构

.
├── .github/                    # CI、构建与派生分支同步 workflow
├── backend/                    # Go API、插件宿主、数据库与模板
│   ├── cmd/                   # api / jsworker 入口
│   ├── config/                # 配置文件与示例
│   ├── internal/              # handler / service / router / models
│   ├── scripts/               # 初始化与回归脚本
│   └── templates/             # 邮件与票据模板
├── frontend/                   # Next.js 前端应用
│   ├── app/                   # auth / user / admin / form 路由
│   ├── components/            # React 组件
│   ├── hooks/                 # 自定义 Hooks
│   ├── lib/                   # API / 工具 / i18n / 常量
│   └── types/                 # TypeScript 类型
├── docs/                       # 核心功能与集成文档
│   ├── README.md              # 文档索引
│   ├── API.md                 # API 总览(人工维护参考)
│   ├── PAYMENT_JS_API.md      # payment_js 开发文档
│   └── VIRTUAL_INVENTORY_JS_DELIVERY.md # 虚拟库存脚本发货说明
├── plugins/                    # 主分支保留的插件相关内容
│   ├── sdk/                   # 本地 TypeScript SDK
│   └── js_market/             # 官方市场插件
├── scripts/                    # 根级脚本与 Docker 资源
│   ├── build_docker.sh        # 一键构建脚本
│   ├── docker/                # Dockerfile、Nginx、Supervisor 配置
│   └── migrate_dujiaoka.py    # 独角数卡迁移脚本
├── DEPLOYMENT.md              # 通用部署指南
└── README.md                  # 仓库总览

配置说明

派生分支自动同步

master 上的宿主更改会通过 .github/workflows/sync-derived-branches.yml 自动 merge 到以下派生分支:

  • feat/market-registry
  • feat/official-packages

主分支只保留前后端、部署脚本、宿主文档、SDK 与 js_market 插件。

  • feat/market-registry 维护市场注册表相关实现与文档
  • feat/official-packages 维护官方模板、支付包、插件示例等次要内容

如果自动 merge 遇到冲突,workflow 会失败,此时需要手动在对应分支解决冲突后再继续推送。

后端配置 (config/config.json)

{
  "app": { "env": "production", "port": 8080, "url": "https://yourdomain.com" },
  "database": { "driver": "sqlite", "name": "auralogic.db" },
  "redis": { "host": "localhost", "port": 6379 },
  "jwt": { "secret": "至少32字符的密钥", "expire_hours": 24 },
  "security": {
    "login": { "allow_password_login": false },
    "captcha": { "provider": "none" }
  },
  "smtp": { "enabled": true, "host": "smtp.gmail.com", "port": 587 },
  "oauth": {
    "google": { "enabled": false, "client_id": "", "client_secret": "" },
    "github": { "enabled": false, "client_id": "", "client_secret": "" }
  }
}

登录策略 (allow_password_login):

  • false - 普通用户仅限快速登录/OAuth(推荐生产环境)
  • true - 所有用户可密码登录
  • 超级管理员始终可密码登录

初始管理员 (config/admin.json)

{
  "super_admin": {
    "email": "[email protected]",
    "password": "ChangeMe123!",
    "name": "超级管理员"
  }
}

从独角数卡迁移

提供 Python 脚本将 独角数卡 (Dujiaoka) 的数据迁移到 AuraLogic。

迁移内容:

  • 商品 → AuraLogic 商品(保留名称、价格、图片、分类、购买限制等)
  • 卡密 → 虚拟库存(支持普通卡密批量导入和循环卡密单条导入并预留)
  • 优惠码 → 促销码(保留折扣金额、关联商品、使用次数)

安装依赖:

pip install pymysql requests rich

使用示例:

# 预览模式(不写入数据,推荐先执行)
python scripts/migrate_dujiaoka.py --dry-run \
  --db-host 127.0.0.1 --db-password mypass --db-name dujiaoka \
  --api-url http://localhost:8080 --api-key ak_live_xxx --api-secret sk_live_xxx

# 正式迁移
python scripts/migrate_dujiaoka.py \
  --db-host 127.0.0.1 --db-password mypass --db-name dujiaoka \
  --api-url http://localhost:8080 --api-key ak_live_xxx --api-secret sk_live_xxx

# 仅迁移商品(跳过卡密和优惠码)
python scripts/migrate_dujiaoka.py --no-carmis --no-coupons \
  --db-host 127.0.0.1 --db-password mypass --db-name dujiaoka \
  --api-url http://localhost:8080 --api-key ak_live_xxx --api-secret sk_live_xxx

常用参数:

参数 说明
--dry-run 预览模式,不实际写入数据
--no-products 跳过商品迁移
--no-carmis 跳过卡密迁移
--no-coupons 跳过优惠码迁移
--skip-disabled 跳过已禁用的商品和分类
--batch-size N 卡密批量导入大小(默认 50)
--product-status 导入商品的初始状态:draft(默认)/ active / inactive

迁移完成后会生成 migration_mapping.json 文件,记录独角数卡 ID 与 AuraLogic ID 的映射关系。


文档

文档 说明
文档索引 主分支当前保留文档的导航入口
API 接口文档 手工维护的 API 总览,最新实现请以代码与路由为准
自定义支付方式 支付方式 JS 脚本开发
虚拟库存 JS 发货 type=script 虚拟库存发货机制说明
插件 SDK 文档 js_worker 插件 SDK、manifest 校验与构建说明
JS Market 插件 官方市场插件使用与开发说明
部署指南 生产环境部署配置
后端文档 后端开发说明
前端文档 前端开发说明

许可证

MIT License