跳到主要内容

快速开始

三步本地启动:起依赖(docker compose)→ 起后端(go run)→ 起前端(bun dev)

环境要求:Go 1.26+、Docker Desktop、bun(≥1.0)。后端启动时自动执行数据库迁移(golang-migrate),无需手动建表。

第 1 步:起依赖

docker compose up -d mysql redis rabbitmq minio

依赖清单(端口):

服务端口用途
MySQL 83306业务数据(账号/商品/订单/秒杀/好友/聊天)
Redis 76379缓存、秒杀预扣与幂等键、领券防超发
RabbitMQ5672 / 15672(管理台)秒杀异步落单消息队列
MinIO19000 / 19001(控制台)聊天图片/文件存储

等待依赖就绪:

docker compose ps
# mysql / redis / rabbitmq / minio 均为 healthy 后继续
可观测组件(可选)

docker compose up -d 可一并启动 Prometheus(:9090) / Grafana(:3000,预置 Loki 数据源与服务日志面板) / Loki(:3100) / Promtail / Nginx(:8081→80,托管前端 dist 并反代 /api)。 Nginx 需要先构建前端产物(cd web/faire && bun install && bun run build),否则容器健康检查会失败。

本地 HTTPS 演示(T28)

Nginx 同时提供 SSL 终止:https://localhost:8443(自签证书需手动信任,curl -k 可验证安全头;80 端口仅 301 跳转 HTTPS)。 生成证书与演示命令见 docs/DEPLOYMENT.md

第 2 步:起后端

go run ./cmd/server
  • 自动执行 migrations/(含 admin 种子账号),监听 :8080
  • 健康检查:curl http://127.0.0.1:8080/healthz,返回 {"status":"ok",...} 即就绪
  • 秒杀库存对账 cron(每小时)与订单超时取消 cron(每分钟)随服务启动

第 3 步:起前端

cd web/faire
bun install
bun run dev

打开 http://localhost:5173,Vite dev server 已把 /api/ws 代理到后端 :8080,无需额外配置。

验收

  • 浏览器可注册/登录(演示账号见演示账号
  • 商品列表/详情可浏览,购物车与下单流程可走通
  • 可选:docker compose up -d 后访问 https://localhost:8443(或 http://localhost:8081 触发跳转)查看 Nginx 托管形态