跳转到内容

环境变量

Docker Compose 部署使用 asp-compose/ 目录中的 .env。首次执行 init.sh 时,脚本会从 .env.example 创建该文件,并自动生成 Django、PostgreSQL、Redis 和 RustFS 的随机凭据。

修改 .env 后,执行以下命令应用配置:

bash
docker compose up -d
./scripts/doctor.sh

保护 .env

.env 包含服务密码和密钥。请限制文件访问权限,不要提交到代码仓库或发送给无关人员。

镜像

变量默认值说明
ASP_BACKEND_IMAGE当前版本后端镜像后端、Worker 和迁移服务使用的镜像。
ASP_FRONTEND_IMAGE当前版本前端镜像HTTPS 入口和前端页面使用的镜像。

升级脚本会使用最新发布包中的镜像配置更新这两个变量,不需要手工修改。

HTTPS 入口

变量默认值说明
ASP_BIND0.0.0.0HTTPS 入口在宿主机上的绑定地址。
ASP_HTTPS_PORT443HTTPS 入口在宿主机上的端口。
ASP_PUBLIC_HOSTNAMElocalhost仅用于生成备用自签名证书的 CN 和 SAN。
ASP_CERT_EXTRA_SAN自签名证书的额外 SAN,例如 DNS:asp.example.com,IP:10.0.0.10
ASP_MAX_UPLOAD_SIZE20mNginx 接受的请求体大小上限。

ASP_PUBLIC_HOSTNAMEASP_CERT_EXTRA_SAN 只在 certs/asp.crtcerts/asp.key 不存在时生效。正式证书的准备和替换方式见部署

Web API

变量默认值说明
ASP_WEB_WORKERS3Gunicorn Worker 进程数。
ASP_WEB_THREADS4每个 Worker 的线程数。
ASP_WEB_TIMEOUT210请求超时,单位为秒;Nginx 代理超时会基于该值自动计算。
ASP_WEB_KEEPALIVE5HTTP keep-alive 时间,单位为秒。
ASP_WEB_MAX_REQUESTS1000Worker 处理指定请求数后回收。
ASP_WEB_MAX_REQUESTS_JITTER100Worker 回收请求数的随机偏移,避免同时重启。
ASP_DOCTOR_WAIT_SECONDS180doctor.sh 等待全部服务就绪的最长时间,单位为秒。

增加 Worker 或线程会提高并发能力,也会增加 CPU、内存和 PostgreSQL 连接消耗。

服务管理界面

变量默认值说明
ASP_MANAGEMENT_BIND0.0.0.0Redis Stack UI 和 RustFS Console 的宿主机绑定地址。
ASP_REDIS_UI_PORT8001Redis Stack UI 的宿主机端口。
ASP_RUSTFS_CONSOLE_PORT9001RustFS Console 的宿主机端口。

生产环境应通过防火墙或 VPN 限制管理界面访问。登录方式见服务管理界面

Django

变量默认值说明
DJANGO_SECRET_KEY初始化时随机生成Django 加密签名密钥。
DJANGO_DEBUGfalse是否启用 Django Debug。生产环境保持 false
DJANGO_ALLOWED_HOSTS*Django 接受的 Host,多个值使用逗号分隔。
DJANGO_LOG_LEVELINFO应用根日志级别。
DJANGO_LOG_LEVEL_DJANGOINFODjango 框架日志级别。
DJANGO_LOG_FORMATtext日志格式,可选 textjson

PostgreSQL

连接

变量默认值说明
POSTGRES_DBasp数据库名称。
POSTGRES_USERpostgres数据库用户。
POSTGRES_PASSWORD初始化时随机生成数据库密码。
POSTGRES_HOSTpostgres后端连接的数据库主机。
POSTGRES_PORT5432后端连接的数据库端口。
POSTGRES_CONN_MAX_AGE60Django 持久连接生命周期,单位为秒。
POSTGRES_CONN_HEALTH_CHECKStrue复用持久连接前是否执行健康检查。

服务调优

变量默认值说明
POSTGRES_MAX_CONNECTIONS150PostgreSQL 最大连接数。
POSTGRES_SHARED_BUFFERS512MBPostgreSQL 共享缓冲区。
POSTGRES_EFFECTIVE_CACHE_SIZE2GB查询规划器估算的可用缓存,不会直接分配对应内存。
POSTGRES_WORK_MEM8MB每个排序或哈希操作可用的内存。
POSTGRES_MAINTENANCE_WORK_MEM256MBVACUUM、创建索引等维护操作可用的内存。
POSTGRES_CHECKPOINT_COMPLETION_TARGET0.9将 checkpoint 写入分散到检查点周期的比例。
POSTGRES_RANDOM_PAGE_COST1.1查询规划器使用的随机页面读取成本。
POSTGRES_LOG_MIN_DURATION_STATEMENT1000记录执行时间达到该值的 SQL,单位为毫秒。

PostgreSQL 内存参数会相互叠加。调整前应结合主机内存、并发连接数和实际查询负载评估。

Redis

变量默认值说明
REDIS_HOSTredis-stack后端连接的 Redis 主机。
REDIS_PORT6379后端连接的 Redis 端口。
REDIS_DB1ASP 使用的 Redis logical database。
REDIS_PASSWORD初始化时随机生成Redis 连接密码。

RustFS

变量默认值说明
RUSTFS_ENDPOINT_URLhttp://rustfs:9000后端访问 S3-compatible API 的地址。
RUSTFS_ACCESS_KEYaspS3-compatible Access Key。
RUSTFS_SECRET_KEY初始化时随机生成S3-compatible Secret Key。
RUSTFS_BUCKETaspASP 保存附件和对象的 bucket。
RUSTFS_REGIONus-east-1S3 请求签名使用的 region。

修改凭据

初始化后不要只修改 .env 中的 PostgreSQL、Redis 或 RustFS 密码。服务端已有凭据不会因此自动更新,可能导致 ASP 无法连接。

如需轮换生产环境凭据,应先在对应服务中完成密码变更,再同步更新 .env 并执行 docker compose up -d

下一步