快速开始

预计阅读时间: 4 分钟 预计阅读时间: 4 分钟

前置要求

工具推荐版本用途
Rust1.93+ (Edition 2024)编译后端
PostgreSQL17+主存储
Redis7+会话 / 缓存 / 限流后端
S3 兼容存储MinIO / RustFS / AWS S3文件上传
Docker + Compose可选一键启动整套环境

当前 Cargo.toml 锁定 edition = "2024",Rust 工具链需要 1.93 及以上。

方式一:Docker 一键启动(推荐)

1. 克隆代码

git clone https://github.com/ouywm/summerrs-admin.git
cd summerrs-admin

2. 配置环境变量

仓库根目录的 docker-compose.yml 包含 5 个服务:

Service镜像默认端口作用
postgrespostgres:17-alpine5432主存储
redisredis:7-alpine6379会话 / 缓存 / 限流后端
rustfsrustfs/rustfs:latest9000 / 9001S3 兼容对象存储
ratchjobqingpan/ratchjob:stable8725 / 8825 / 8925任务调度(XXL-Job 兼容)
app多阶段构建8080Summerrs Admin 主应用

创建或修改 .env 文件:

# Postgres
POSTGRES_PASSWORD=请改成强密码

# JWT
JWT_SECRET=请改成 64+ 位随机字符串

# S3 / RustFS
S3_ACCESS_KEY=summerAK
S3_SECRET_KEY=summerSK
S3_ENDPOINT=http://rustfs:9000     # 容器内通信用 service 名
S3_BUCKET=summer-admin
S3_REGION=us-east-1

# XXL-Job / RatchJob(可选)
XXL_JOB_ACCESS_TOKEN=default_token

# 日志级别
RUST_LOG=info

容器内 app 服务通过 service 名 postgres / redis / rustfs / ratchjob 互通,所以 S3_ENDPOINT 要写 http://rustfs:9000 而不是 localhost

3. 启动服务

# 拉镜像 + 构建 app + 启动
docker compose up -d --build

# 查看日志
docker compose logs -f app

# 健康状态检查
docker compose ps
# 看到 postgres/redis 是 healthy,app 是 running

应用监听 8080,RustFS 控制台监听 9001(默认账号 summerAK / summerSK)。

提示: 数据库会在应用首次启动时自动初始化,无需手动执行 SQL。

4. 验证

# OpenAPI 文档
curl http://localhost:8080/docs/openapi.json

# 登录测试(默认账号 Admin / 123456)
curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"userName":"Admin","password":"123456"}'

自定义端口

如果本机已有服务占用默认端口,可以在 .env 中设置这些变量,docker-compose.yml 会自动读取:

POSTGRES_PORT=15432
REDIS_PORT=16379
S3_PORT=19000
APP_PORT=18080

这些端口变量仅用于 Docker 部署,应用本身的配置在 config/app.toml 中。

方式二:本地开发

1. 克隆代码

git clone https://github.com/ouywm/summerrs-admin.git
cd summerrs-admin

2. 准备外部依赖

确保本机有可用的:

  • PostgreSQL 17+
  • Redis 7+
  • S3 兼容存储 (MinIO / RustFS / AWS S3)

提示:数据库会在首次启动时通过 SeaORM 自动初始化,无需手动执行 SQL。

3. 配置环境变量

创建 .env 文件:

# 数据库连接
DATABASE_URL=postgres://admin:123456@localhost/summerrs-admin

# Redis 连接
REDIS_URL=redis://127.0.0.1/

# JWT 签名密钥
JWT_SECRET="生产环境请用 openssl rand -base64 32 生成"

# 日志级别
RUST_LOG=debug

# S3 / MinIO / RustFS
S3_ENDPOINT=http://localhost:9000
S3_BUCKET=summer-admin
S3_REGION=us-east-1
S3_ACCESS_KEY=请填
S3_SECRET_KEY=请填

# XXL-Job(可选,如果不用任务调度可以不填)
XXL_JOB_ADMIN_ADDRESSES=http://127.0.0.1:8725/xxl-job-admin
XXL_JOB_ACCESS_TOKEN=default_token

安全提示:.env 已在 .gitignore 中,不要把生产密钥提交到仓库。

4. 运行项目

# 直接运行(会自动编译)
cargo run --bin app

项目会在首次启动时自动完成数据库初始化。启动后访问 http://localhost:8080/docs/openapi.json 即可。