# sicily-mall **Repository Path**: doomnaiad_admin/sicily-mall ## Basic Information - **Project Name**: sicily-mall - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-07 - **Last Updated**: 2026-02-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 助农平台 - 部署教程 农产品销售平台,基于 Next.js 15 + tRPC + Prisma + Chakra UI 构建。 --- ## 目录 - [环境要求](#环境要求) - [Docker 一键部署](#docker-一键部署) - [本地开发](#本地开发) - [生产部署](#生产部署) - [小程序部署](#小程序部署) - [常见问题](#常见问题) --- ## 环境要求 ### 基础环境 | 软件 | 版本要求 | 说明 | |------|----------|------| | Node.js | 18+ | 推荐使用 LTS 版本 | | npm/pnpm | 最新版 | 包管理器 | | Git | 最新版 | 版本控制 | ### 数据库(二选一) | 数据库 | 版本 | 适用场景 | |--------|------|----------| | SQLite | - | 本地开发、测试 | | PostgreSQL | 14+ | 生产环境 | | MySQL | 8+ | 生产环境 | ### Docker 部署(可选) | 软件 | 版本要求 | |------|----------| | Docker | 20+ | | Docker Compose | 2.0+ | --- ## Docker 一键部署 最简单的部署方式,适合快速体验和生产部署。 ### 1. 克隆项目 ```bash git clone cd sicily-nextmall ``` ### 2. 配置环境变量 ```bash cp .env.example .env ``` 编辑 `.env` 文件,配置以下必要参数: ```env # 数据库连接(PostgreSQL) DATABASE_URL="postgresql://user:password@db:5432/nextmall" # NextAuth 配置 NEXTAUTH_SECRET="your-secret-key-here" NEXTAUTH_URL="http://localhost:3000" # 微信小程序配置(可选) WECHAT_APP_ID="your-app-id" WECHAT_APP_SECRET="your-app-secret" ``` ### 3. 启动服务 ```bash docker compose up -d ``` ### 4. 初始化数据库 ```bash # 进入容器执行数据库迁移 docker compose exec app npx prisma db push docker compose exec app npx prisma db seed ``` ### 5. 访问应用 - 前台商城:http://localhost:3000/h5 - 管理后台:http://localhost:3000/admin - 农户后台:http://localhost:3000/farmer ### 默认账号 | 角色 | 手机号 | 密码 | |------|--------|------| | 超级管理员 | 16666666666 | admin123 | | 供应商 | 17777777777 | admin123 | | 普通用户 | 18888888888 | admin123 | --- ## 本地开发 适合开发调试,使用 SQLite 数据库。 ### 1. 克隆项目 ```bash git clone cd sicily-nextmall ``` ### 2. 安装依赖 ```bash npm install --legacy-peer-deps # 或使用 pnpm pnpm install ``` ### 3. 配置环境变量 ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```env # SQLite 数据库(本地开发) DATABASE_URL="file:./dev.db" # NextAuth 配置 NEXTAUTH_SECRET="development-secret-key" NEXTAUTH_URL="http://localhost:3000" ``` ### 4. 初始化数据库 ```bash # 推送数据库结构 npx prisma db push # 生成 Prisma 客户端 npx prisma generate # 填充测试数据 npx prisma db seed ``` ### 5. 启动开发服务器 ```bash npm run dev ``` 访问 http://localhost:3000 ### 常用开发命令 ```bash # 启动开发服务器 npm run dev # 打开 Prisma Studio(数据库管理界面) npx prisma studio # 重置数据库 npx prisma db push --force-reset && npx prisma db seed # 类型检查 npm run typecheck # 代码格式化 npm run format:write ``` --- ## 生产部署 ### 方式一:Docker Compose(推荐) 参考上方 [Docker 一键部署](#docker-一键部署) 章节。 ### 方式二:手动部署 #### 1. 准备服务器 - 安装 Node.js 18+ - 安装 PostgreSQL 或 MySQL - 配置 Nginx(可选,用于反向代理) #### 2. 克隆并安装 ```bash git clone cd sicily-nextmall npm install --legacy-peer-deps ``` #### 3. 配置环境变量 创建 `.env` 文件: ```env # PostgreSQL 数据库 DATABASE_URL="postgresql://user:password@localhost:5432/nextmall" # MySQL 数据库(如果使用 MySQL) # DATABASE_URL="mysql://user:password@localhost:3306/nextmall" # NextAuth 配置 NEXTAUTH_SECRET="your-production-secret-key" NEXTAUTH_URL="https://your-domain.com" # 微信小程序配置 WECHAT_APP_ID="your-app-id" WECHAT_APP_SECRET="your-app-secret" ``` #### 4. 修改 Prisma 配置(如使用 MySQL) 编辑 `prisma/schema.prisma`: ```prisma datasource db { provider = "mysql" // 改为 mysql url = env("DATABASE_URL") } ``` #### 5. 初始化数据库 ```bash npx prisma db push npx prisma db seed ``` #### 6. 构建生产版本 ```bash npm run build ``` #### 7. 启动服务 ```bash npm run start ``` #### 8. 配置 Nginx(可选) ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } } ``` #### 9. 使用 PM2 管理进程(推荐) ```bash # 安装 PM2 npm install -g pm2 # 启动应用 pm2 start npm --name "nextmall" -- start # 设置开机自启 pm2 startup pm2 save ``` --- ## 小程序部署 小程序基于 Taro 4 开发,需要单独构建和发布。 ### 1. 进入小程序目录 ```bash cd miniprogram ``` ### 2. 安装依赖 ```bash npm install ``` ### 3. 配置 API 地址 编辑 `miniprogram/src/config/index.ts`,修改 API 地址: ```typescript export const API_BASE_URL = 'https://your-domain.com' ``` ### 4. 开发模式 ```bash npm run dev:weapp ``` 使用微信开发者工具打开 `miniprogram/dist` 目录。 ### 5. 构建生产版本 ```bash npm run build:weapp ``` ### 6. 发布小程序 1. 使用微信开发者工具打开 `miniprogram/dist` 目录 2. 点击"上传"按钮 3. 在微信公众平台提交审核 --- ## 常见问题 ### 1. 安装依赖报错 **问题**:npm install 时出现依赖冲突 **解决**: ```bash npm install --legacy-peer-deps ``` ### 2. 数据库连接失败 **问题**:Prisma 无法连接数据库 **解决**: - 检查 `.env` 中的 `DATABASE_URL` 是否正确 - 确保数据库服务已启动 - 检查数据库用户权限 ### 3. 端口被占用 **问题**:3000 端口已被占用 **解决**: ```bash # 查找占用端口的进程 lsof -i :3000 # 终止进程 kill -9 # 或使用其他端口 PORT=3001 npm run dev ``` ### 4. Prisma 生成失败 **问题**:`npx prisma generate` 报错 **解决**: ```bash # 删除 node_modules 重新安装 rm -rf node_modules npm install --legacy-peer-deps # 重新生成 npx prisma generate ``` ### 5. 小程序请求失败 **问题**:小程序无法请求后端 API **解决**: - 确保后端服务已启动且可访问 - 检查小程序的 API 地址配置 - 在微信公众平台配置服务器域名白名单 - 开发时可在微信开发者工具中关闭"不校验合法域名" ### 6. 图片上传失败 **问题**:商品图片无法上传 **解决**: - 检查 `public/uploads` 目录是否存在且有写入权限 - Docker 部署时确保目录已挂载 ### 7. 登录后跳转失败 **问题**:登录成功但页面不跳转 **解决**: - 检查 `NEXTAUTH_URL` 配置是否正确 - 确保 `NEXTAUTH_SECRET` 已设置 --- ## 技术支持 如遇到其他问题,请提交 Issue 或联系开发团队。