設定
大多數設定位於控制台,少數設定在容器啟動時提供。
設定清單
| 設定 | 預設值 | 說明 |
|---|---|---|
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。參閱儲存位置。