chore: 更新配置和依赖
- 添加 MinIO 和邮件服务相关环境变量 - 添加 @nestjs-modules/mailer, minio, multer 等依赖 - 更新 app.module.ts 注册新模块 - docker-compose 添加 MinIO 服务配置 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,3 +15,26 @@ ENABLE_ENCRYPTION=false
|
||||
# AES-256-GCM 加密密钥 (32 字节 Base64 编码)
|
||||
# 开发环境默认密钥 (仅用于开发测试,生产环境必须更换)
|
||||
ENCRYPTION_KEY=dGhpc2lzYXRlc3RrZXlmb3JkZXZlbG9wbWVudG9ubHk
|
||||
|
||||
# ----- SMTP 邮件配置 -----
|
||||
# SMTP 服务器地址
|
||||
SMTP_HOST=smtpdm.aliyun.com
|
||||
# SMTP 端口(通常 587 或 465)
|
||||
SMTP_PORT=465
|
||||
# 是否使用 SSL/TLS(端口 465 时通常为 true)
|
||||
SMTP_SECURE=true
|
||||
# SMTP 用户名
|
||||
SMTP_USER=system@notice.seclusion.dev
|
||||
# SMTP 密码或应用专用密码
|
||||
SMTP_PASS=nIZvj5RPuvyB2h
|
||||
# 发件人地址
|
||||
SMTP_FROM=system@notice.seclusion.dev
|
||||
|
||||
# ----- MinIO 对象存储配置 -----
|
||||
MINIO_ENDPOINT=localhost
|
||||
MINIO_PORT=9000
|
||||
MINIO_USE_SSL=false
|
||||
MINIO_ACCESS_KEY=minioadmin
|
||||
MINIO_SECRET_KEY=minioadmin
|
||||
MINIO_BUCKET=seclusion
|
||||
MINIO_PUBLIC_URL=
|
||||
|
||||
@@ -36,3 +36,35 @@ ENABLE_ENCRYPTION=false
|
||||
# 生成方式: openssl rand -base64 32
|
||||
# 注意: 生产环境必须使用强随机密钥,且前后端保持一致
|
||||
ENCRYPTION_KEY=
|
||||
|
||||
# ----- SMTP 邮件配置 -----
|
||||
# SMTP 服务器地址
|
||||
SMTP_HOST=smtp.example.com
|
||||
# SMTP 端口(通常 587 或 465)
|
||||
SMTP_PORT=587
|
||||
# 是否使用 SSL/TLS(端口 465 时通常为 true)
|
||||
SMTP_SECURE=false
|
||||
# SMTP 用户名
|
||||
SMTP_USER=your-email@example.com
|
||||
# SMTP 密码或应用专用密码
|
||||
SMTP_PASS=your-password
|
||||
# 发件人地址
|
||||
SMTP_FROM=noreply@example.com
|
||||
|
||||
# ----- MinIO 对象存储配置 -----
|
||||
# MinIO 服务地址
|
||||
MINIO_ENDPOINT=localhost
|
||||
# MinIO 端口
|
||||
MINIO_PORT=9000
|
||||
# 是否使用 SSL
|
||||
MINIO_USE_SSL=false
|
||||
# MinIO 访问密钥
|
||||
MINIO_ACCESS_KEY=minioadmin
|
||||
# MinIO 密钥
|
||||
MINIO_SECRET_KEY=minioadmin
|
||||
# 存储桶名称
|
||||
MINIO_BUCKET=seclusion
|
||||
# 公开访问 URL(可选,用于 CDN 或 Nginx 代理)
|
||||
# 如果设置,将使用此 URL 作为文件访问地址前缀
|
||||
# 示例: https://cdn.example.com 或 https://example.com/storage
|
||||
MINIO_PUBLIC_URL=
|
||||
|
||||
@@ -33,12 +33,15 @@
|
||||
"class-transformer": "^0.5.1",
|
||||
"class-validator": "^0.14.1",
|
||||
"ioredis": "^5.9.2",
|
||||
"minio": "^8.0.6",
|
||||
"nanoid": "^5.1.6",
|
||||
"nodemailer": "^7.0.12",
|
||||
"passport": "^0.7.0",
|
||||
"passport-jwt": "^4.0.1",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"rxjs": "^7.8.1",
|
||||
"svg-captcha": "^1.4.0"
|
||||
"svg-captcha": "^1.4.0",
|
||||
"uuid": "^13.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nestjs/cli": "^10.4.9",
|
||||
@@ -49,8 +52,11 @@
|
||||
"@types/bcrypt": "^5.0.2",
|
||||
"@types/express": "^5.0.0",
|
||||
"@types/jest": "^29.5.14",
|
||||
"@types/multer": "^2.0.0",
|
||||
"@types/node": "^22.10.2",
|
||||
"@types/nodemailer": "^7.0.5",
|
||||
"@types/passport-jwt": "^4.0.1",
|
||||
"@types/uuid": "^11.0.0",
|
||||
"dotenv-cli": "^11.0.0",
|
||||
"eslint": "^9.39.0",
|
||||
"jest": "^29.7.0",
|
||||
|
||||
@@ -6,7 +6,11 @@ import { AppService } from './app.service';
|
||||
import { AuthModule } from './auth/auth.module';
|
||||
import { CaptchaModule } from './common/captcha/captcha.module';
|
||||
import { CryptoModule } from './common/crypto/crypto.module';
|
||||
import { EmailCodeModule } from './common/email-code/email-code.module';
|
||||
import { MailModule } from './common/mail/mail.module';
|
||||
import { RedisModule } from './common/redis/redis.module';
|
||||
import { StorageModule } from './common/storage/storage.module';
|
||||
import { FileModule } from './file/file.module';
|
||||
import { PermissionModule } from './permission/permission.module';
|
||||
import { PrismaModule } from './prisma/prisma.module';
|
||||
import { UserModule } from './user/user.module';
|
||||
@@ -22,6 +26,10 @@ import { UserModule } from './user/user.module';
|
||||
RedisModule,
|
||||
CryptoModule,
|
||||
CaptchaModule,
|
||||
MailModule,
|
||||
EmailCodeModule,
|
||||
StorageModule,
|
||||
FileModule,
|
||||
AuthModule,
|
||||
UserModule,
|
||||
PermissionModule,
|
||||
|
||||
@@ -30,6 +30,25 @@ services:
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
minio:
|
||||
image: minio/minio:latest
|
||||
container_name: seclusion-minio
|
||||
ports:
|
||||
- "9000:9000"
|
||||
- "9001:9001"
|
||||
environment:
|
||||
MINIO_ROOT_USER: minioadmin
|
||||
MINIO_ROOT_PASSWORD: minioadmin
|
||||
volumes:
|
||||
- minio_data:/data
|
||||
command: server /data --console-address ":9001"
|
||||
healthcheck:
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
redis_data:
|
||||
minio_data:
|
||||
|
||||
1240
pnpm-lock.yaml
generated
1240
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user