- 修复 production.py 存储配置:Django 6.0 已移除 DEFAULT_FILE_STORAGE/ STATICFILES_STORAGE 旧式设置兼容层,改用 STORAGES 字典(此前的写法 实际上早已失效,属于遗留 bug) - 静态文件接入 whitenoise(压缩+哈希文件名+长缓存头),容器化部署下 无需额外 Nginx/CDN 即可正确提供静态文件 - 新增生产 SMTP 邮件配置(EMAIL_HOST/PORT/USER/PASSWORD/USE_TLS/ DEFAULT_FROM_EMAIL),修复线索通知邮件/PIPL 删除确认邮件在生产环境 发不出去的问题 - 新增 docker/Dockerfile(多阶段构建,非 root 用户运行) - 新增 docker/entrypoint.sh(启动时自动 migrate + collectstatic + bootstrap_deployment,均为幂等操作) - 新增 docker-compose.prod.yml(backend + postgres + redis 编排) - 新增 .dockerignore - .env.example 补充 POSTGRES_*/EMAIL_* 环境变量说明
52 lines
1.9 KiB
Bash
52 lines
1.9 KiB
Bash
# 复制为 .env 并按实际环境填写。生产环境密钥请使用密钥管理服务,切勿提交到仓库。
|
|
|
|
SECRET_KEY=change-me
|
|
ALLOWED_HOSTS=example.com,www.example.com
|
|
WAGTAILADMIN_BASE_URL=https://cms.example.com
|
|
|
|
# 数据库(生产环境,PostgreSQL)
|
|
DATABASE_URL=postgres://user:password@postgres:5432/enterprise_cms
|
|
|
|
# docker-compose.prod.yml 中 postgres 容器初始化用(需与上面 DATABASE_URL 里的
|
|
# 用户名/密码/库名保持一致,否则 backend 连接不上自己容器编排出来的数据库)
|
|
POSTGRES_DB=enterprise_cms
|
|
POSTGRES_USER=user
|
|
POSTGRES_PASSWORD=change-me
|
|
|
|
# 缓存
|
|
REDIS_URL=redis://redis:6379/1
|
|
|
|
# 生产环境邮件发送(SMTP),用于线索通知邮件、PIPL 数据删除确认邮件
|
|
EMAIL_HOST=smtp.example.com
|
|
EMAIL_PORT=587
|
|
EMAIL_HOST_USER=user@example.com
|
|
EMAIL_HOST_PASSWORD=change-me
|
|
EMAIL_USE_TLS=True
|
|
DEFAULT_FROM_EMAIL=user@example.com
|
|
|
|
# 跨域 / CSRF 白名单(Next.js 前端域名)
|
|
CORS_ALLOWED_ORIGINS=https://www.example.com
|
|
CSRF_TRUSTED_ORIGINS=https://www.example.com
|
|
|
|
# 国内对象存储(阿里云 OSS / 腾讯云 COS,S3 兼容协议)
|
|
DEFAULT_FILE_STORAGE=storages.backends.s3boto3.S3Boto3Storage
|
|
OSS_ACCESS_KEY_ID=
|
|
OSS_SECRET_ACCESS_KEY=
|
|
OSS_BUCKET_NAME=
|
|
OSS_ENDPOINT_URL=
|
|
# 绑定到 OSS/COS 源站的 CDN 加速域名(阿里云 CDN / 腾讯云 CDN / 又拍云),留空则直接使用 OSS 源站地址
|
|
OSS_CDN_DOMAIN=
|
|
|
|
# 发布后前端 ISR 缓存失效 Webhook
|
|
FRONTEND_REVALIDATE_URL=https://www.example.com/api/revalidate
|
|
REVALIDATE_SECRET=change-me
|
|
|
|
# 前端站点基础 URL(用于邮件中的链接,如 PIPL 数据删除确认链接)
|
|
FRONTEND_BASE_URL=https://www.example.com
|
|
|
|
# 部署引导(python manage.py bootstrap_deployment):首次部署时自动创建的超级管理员账号
|
|
# 三项均设置且该用户名不存在时才会创建;账号已存在则跳过,不会重置密码。
|
|
DJANGO_SUPERUSER_USERNAME=
|
|
DJANGO_SUPERUSER_EMAIL=
|
|
DJANGO_SUPERUSER_PASSWORD=
|