设置
大多数设置位于控制面板,少数设置在容器启动时提供。
设置列表
| 设置 | 默认值 | 说明 |
|---|---|---|
THIRTYFILE_ADMIN_PASSWORD | 随机 | admin 账号的密码,仅首次启动时使用。示例 choose-a-password 视为未设置 |
THIRTYFILE_ADMIN_PASSWORD_FILE | 从文件读取管理员密码,例如 Docker secret | |
THIRTYFILE_SECURE_COOKIE | false | 网站使用 HTTPS 时设为 true(以 https:// 开头的网站地址也有相同效果)。cookie 仅通过 HTTPS 发送,并要求浏览器一年内只使用 HTTPS(HSTS) |
THIRTYFILE_TRUST_PROXY | false | 网站位于同一电脑或 Docker 网络的反向代理后方时,设为 true。代理在另一台电脑时,填写地址列表,例如 203.0.113.7, 10.1.0.0/16。IPv6 形式的地址,例如 ::ffff:172.18.0.1,按其中的 IPv4 地址处理(网络至少需要 /96:::ffff:172.18.0.0/112 等于 172.18.0.0/16)。true 信任所有私有地址,包括网络中其他电脑;明确列出代理地址更安全。仅信任来自这些地址的代理请求信息(X-Forwarded-For、-Host 和 -Proto) |
THIRTYFILE_TRASH_DAYS | 30 | 回收站保留天数。0 表示永久保留 |
THIRTYFILE_MAX_UPLOAD_MB | 0 | 可上传的最大文件大小。0 表示不限制 |
THIRTYFILE_DB_CACHE_MB | 16 | 每个数据库连接的缓存大小,单位 MB(最多 8 个连接)。多用户的大型服务器可提高 |
THIRTYFILE_THUMBNAIL_JOBS | 1 或 2 | 同时生成的缩略图数量:服务器或容器内存不足 2 GB 时为 1,否则为 2 |
THIRTYFILE_RUN_AS | 1000:1000 | 服务器运行的用户和用户组。启动时数据和存储文件夹交给该用户所有。由镜像设置;独立服务器程序继续使用启动它的用户运行 |
THIRTYFILE_LOG_FORMAT | text | json 每行输出一个 JSON 对象,供日志收集工具使用 |
RUST_LOG | thirtyfile=info | 日志详细程度,例如排查问题时设置 thirtyfile=debug |
TZ | UTC | 时区,例如 Asia/Taipei |
THIRTYFILE_SECRET_KEY | /data 中的 secret.key | 加密数据库所保存密码和密钥的密钥(存储位置、单点登录、签名密钥),为 64 个十六进制字符,例如由 openssl rand -hex 32 生成。未设置时,首次启动会创建 /data/secret.key。参阅升级与备份 |
THIRTYFILE_SECRET_KEY_FILE | 从文件读取密钥,例如 Docker secret | |
THIRTYFILE_ADDR | 0.0.0.0:8080 | 容器内服务器监听的地址和端口。要更改电脑对外端口,应修改发布端口(-p 9000:8080) |
THIRTYFILE_DATA | /data | 数据库、缩略图和进行中上传的目录。由镜像设置,请在该处挂载文件夹,不要修改变量。独立服务器程序使用 ./data |
THIRTYFILE_STORAGE | /storage | 内置存储位置的文件夹,与 THIRTYFILE_DATA 一样由镜像设置。独立服务器程序使用数据目录内的 blobs |
开关设置接受 true 和 false(也接受 1/0、yes/no 和 on/off,不区分大小写)。在 compose.yaml 中加引号("true"),否则 YAML 会将其解析为其他类型。
使用 docker run
每项设置添加一个 -e:
docker run -d --name thirtyfile --restart unless-stopped -p 8080:8080 \
-v /srv/thirtyfile/data:/data -v /srv/thirtyfile/storage:/storage \
-e THIRTYFILE_ADMIN_PASSWORD='choose-a-password' \
-e TZ=Asia/Taipei \
-e THIRTYFILE_TRASH_DAYS=60 \
ghcr.io/thirtyfile/thirtyfile:latest
之后更改设置时,先停止并移除容器,再用新值重新运行命令。文件会保留。
docker stop thirtyfile && docker rm thirtyfile
使用 Docker Compose
在 compose.yaml 的 environment: 下添加,然后再次运行 docker compose up -d:
environment:
TZ: Asia/Taipei
THIRTYFILE_TRASH_DAYS: "60"
内存
ThirtyFile 空闲时约需 100 MB 内存,通常低于 300 MB。大型图片缩略图占用最多,每个同时生成的缩略图最多约 280 MB。可在 1 GB 内存的 NAS 或 Raspberry Pi 上运行:不足 2 GB 时,每次只生成一个缩略图,并降低图片解码允许的内存量(超过限制的图片不生成缩略图)。
如需限制内存用量,为容器设置上限,例如 docker run 添加 --memory 512m,或 compose.yaml 设置 mem_limit: 512m。ThirtyFile 启动时读取上限并相应调整。
数据存放在哪里
容器使用两个目录,请分别挂载电脑上的文件夹:
| 容器内目录 | 内容 |
|---|---|
/data | 账号、设置、日志、缩略图和进行中的上传。通常较小 |
/storage | 内置存储位置中的文件,按普通文件夹保存:company、teams/<space name>、users/<user name>。随文件数量增长 |
两者无需位于同一磁盘:/storage 可放在大容量磁盘或 NAS 挂载点。缺少的文件夹会创建,启动时两者都交给用户 1000(参阅 THIRTYFILE_RUN_AS),无需自行更改所有者。
其他磁盘可添加为额外存储位置:挂载到容器,例如 -v /mnt/nas:/nas,再从控制面板 › 存储位置添加 /nas。参阅存储位置。