feat: 完成后端服务核心业务逻辑实现
## 主要功能 - ✅ 用户认证模块 (登录/注册/JWT) - ✅ 照片管理模块 (上传/查询/分页/搜索) - ✅ 分类管理模块 (创建/查询/分页) - ✅ 用户管理模块 (用户列表/分页查询) - ✅ 健康检查接口 ## 技术实现 - 基于 go-zero v1.8.0 标准架构 - Handler → Logic → Model 三层架构 - SQLite/PostgreSQL 数据库支持 - JWT 认证机制 - bcrypt 密码加密 - 统一响应格式 - 自定义模型方法 (分页/搜索) ## API 接口 - POST /api/v1/auth/login - 用户登录 - POST /api/v1/auth/register - 用户注册 - GET /api/v1/health - 健康检查 - GET /api/v1/photos - 照片列表 - POST /api/v1/photos - 上传照片 - GET /api/v1/categories - 分类列表 - POST /api/v1/categories - 创建分类 - GET /api/v1/users - 用户列表 ## 配置完成 - 开发环境配置 (SQLite) - 生产环境支持 (PostgreSQL) - JWT 认证配置 - 文件上传配置 - Makefile 构建脚本 服务已验证可正常构建和启动。
This commit is contained in:
@ -1,71 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# 后端 API 服务
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile
|
||||
container_name: photography_backend
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# 数据库配置 (连接到现有的 PostgreSQL)
|
||||
DB_HOST: ${DB_HOST:-localhost}
|
||||
DB_PORT: ${DB_PORT:-5432}
|
||||
DB_NAME: ${DB_NAME:-photography}
|
||||
DB_USER: ${DB_USER:-postgres}
|
||||
DB_PASSWORD: ${DB_PASSWORD}
|
||||
|
||||
# Redis 配置 (连接到现有的 Redis)
|
||||
REDIS_HOST: ${REDIS_HOST:-localhost}
|
||||
REDIS_PORT: ${REDIS_PORT:-6379}
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
|
||||
# JWT 配置
|
||||
JWT_SECRET: ${JWT_SECRET}
|
||||
JWT_EXPIRES_IN: ${JWT_EXPIRES_IN:-24h}
|
||||
|
||||
# 服务器配置
|
||||
PORT: 8080
|
||||
GIN_MODE: release
|
||||
|
||||
# 文件存储配置
|
||||
STORAGE_TYPE: ${STORAGE_TYPE:-local}
|
||||
STORAGE_PATH: /app/uploads
|
||||
MAX_UPLOAD_SIZE: ${MAX_UPLOAD_SIZE:-10MB}
|
||||
|
||||
# 日志配置
|
||||
LOG_LEVEL: ${LOG_LEVEL:-info}
|
||||
LOG_FORMAT: json
|
||||
volumes:
|
||||
- ./backend/uploads:/app/uploads
|
||||
- ./backend/logs:/app/logs
|
||||
- ./backend/configs:/app/configs
|
||||
ports:
|
||||
- "127.0.0.1:8080:8080"
|
||||
# 使用 host 网络模式以便访问宿主机的服务
|
||||
network_mode: host
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
|
||||
# 数据库备份服务 (可选,如果你想使用容器化备份)
|
||||
backup:
|
||||
image: postgres:16-alpine
|
||||
container_name: photography_backup
|
||||
restart: "no"
|
||||
environment:
|
||||
PGPASSWORD: ${DB_PASSWORD}
|
||||
DB_HOST: ${DB_HOST:-localhost}
|
||||
DB_USER: ${DB_USER:-postgres}
|
||||
DB_NAME: ${DB_NAME:-photography}
|
||||
volumes:
|
||||
- ./backups:/backups
|
||||
- ./scripts/backup.sh:/backup.sh
|
||||
network_mode: host
|
||||
entrypoint: ["/backup.sh"]
|
||||
profiles:
|
||||
- backup # 使用 profile 使这个服务可选
|
||||
Reference in New Issue
Block a user