-
Notifications
You must be signed in to change notification settings - Fork 258
Expand file tree
/
Copy path.env.example
More file actions
47 lines (45 loc) · 2.73 KB
/
Copy path.env.example
File metadata and controls
47 lines (45 loc) · 2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 复制为 .env 后按需修改。所有配置走 UTOPIA_ 前缀的环境变量。
UTOPIA_DATABASE_URL=postgres://utopia:utopia@localhost:1517/utopia
UTOPIA_BIND_ADDR=0.0.0.0:1516
# JWT 签名密钥。留空即可——首次启动会自动生成一条存进数据库。
# 只有轮换密钥、或要让多个实例显式对齐时才需要填。
# UTOPIA_JWT_SECRET=
# 前端构建产物目录(存在则由服务端托管 SPA)
UTOPIA_WEB_DIST=web/dist
# 数据目录:原始文件(files/)与全文索引(index/)
UTOPIA_DATA_DIR=data
# 强制给会话 cookie 打 Secure。留空即可——走 TLS 时按 X-Forwarded-Proto 自动判定。
# 只有反向代理不发那个头时才需要打开。
# UTOPIA_COOKIE_SECURE=true
# 开放注册;false 时仅首个用户可注册,其余由管理员开放
UTOPIA_OPEN_REGISTRATION=true
# 数据库连接池上限。缺省 32,与 worker 并发的缺省对齐。
# 池子小于并发时症状是请求变慢、而不是任何一处说"池子不够"——调高 worker
# 并发时一并考虑这里,也别超过 Postgres 自己的 max_connections(默认 100)。
# UTOPIA_DB_MAX_CONNECTIONS=32
# --- 以下几项由 docker-compose 读取,不是应用配置 ---
# 数据库口令。默认值只适合本机开发,公开部署务必改。
# UTOPIA_DB_PASSWORD=utopia
# 数据库端口映射。默认只绑回环,仅供本地开发连接;宿主机端口被占时改这里。
# UTOPIA_DB_BIND=127.0.0.1:1517
# 拉不动 Docker Hub 时,换成任何带 pgvector 的 PG16+ 镜像
# UTOPIA_DB_IMAGE=pgvector/pgvector:pg16
# 部署指定版本,默认 latest
# UTOPIA_IMAGE=ghcr.io/deeplethe/utopia:0.1.0
# --- 受限数据库角色(可选,推荐新部署启用)---
# 不设则应用以数据库 owner 身份运行:那个身份能 DROP TRIGGER,也就能绕过
# 台账的不可变约束。设了之后应用改用 utopia_app 连库——业务表照常读写,
# 台账只能写和读,改不动也删不掉;迁移另走 owner 连接,用完即释放。
#
# 注意:这一层挡的是应用 bug、SQL 注入与泄漏出去的连接串,挡不住能登进
# 服务器的人(容器内 psql 免密即 superuser)。那属于服务器访问控制。
#
# 首次 up 时由 init 脚本建角色,因此三条要一起给:
# UTOPIA_APP_DB_PASSWORD=换成随机口令
# UTOPIA_DATABASE_URL=postgres://utopia_app:同上那个口令@db:5432/utopia
# UTOPIA_MIGRATION_URL=postgres://utopia:${UTOPIA_DB_PASSWORD}@db:5432/utopia
#
# 数据目录已存在的部署,init 脚本不会执行,需手动建一次角色:
# docker compose exec db psql -U utopia -d utopia \
# -c "CREATE ROLE utopia_app LOGIN PASSWORD '换成随机口令';"
# 然后配上面三条并重启,迁移会自动把权限授予它。