安裝
ThirtyFile 在 Docker 中執行。從下面兩種方式任選一種,都只要一分鐘左右。
開始之前
在要存放檔案的電腦或伺服器上安裝 Docker,不需要其他軟體。
方法一:docker run
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' \
ghcr.io/thirtyfile/thirtyfile:latest
自 v0.6.0 起的映像也提供於 Docker Hub。上方指令可改用 thirtyfile/thirtyfile:0.6,維持在該版本系列。使用 Compose 時,將 image: 那一行的 ghcr.io/thirtyfile/thirtyfile 改為 thirtyfile/thirtyfile,保留 Docker Hub 上存在的標籤與原有磁碟區。更早的版本仍可從 GHCR 取得。
| 部分 | 作用 |
|---|---|
-p 8080:8080 | 連到網站所用的連接埠。若要使用 80 埠,請寫成 -p 80:8080 |
-v /srv/thirtyfile/data:/data | 帳號與設定存放的位置,更新後仍會保留 |
-v /srv/thirtyfile/storage:/storage | 檔案存放的位置。可以是另一顆磁碟,或掛載的 NAS |
THIRTYFILE_ADMIN_PASSWORD | 第一個帳號的密碼。請把 choose-a-password 換成你自己的密碼:沿用這個範例會被當成沒有設定。這一項可以省略:省略時會產生隨機密碼,並寫入紀錄 |
方法二:Docker Compose
把現成的 compose.yaml 下載到一個空資料夾,並在該資料夾中啟動:
curl -fLO https://github.com/ThirtyFile/ThirtyFile/releases/latest/download/compose.yaml
docker compose up -d
帳號與設定存放在 data 資料夾,檔案存放在 storage 資料夾,兩者都在 compose.yaml 旁邊。裡面是一般資料夾中的一般檔案,每個空間一個資料夾(檔案存放在哪裡)。若要把檔案放在另一顆磁碟或 NAS,請把 compose.yaml 中的 ./storage 改成該路徑。
data 與 storage 屬於其他使用者,ThirtyFile 會把資料夾連同裡面的所有內容,改為它執行時使用的使用者所有(id 1000,THIRTYFILE_RUN_AS)。如果你把 storage 指向其他程式或其他人也在使用的既有資料夾,他們的檔案擁有者也會跟著改變。請使用空資料夾,或把 THIRTYFILE_RUN_AS 設為該資料夾現有的擁有者。若要改用群組存取 NAS 的共用資料夾,請以 --group-add 2001(在 compose.yaml 中為 group_add:)加入該群組:ThirtyFile 切換使用者後仍會保留這個群組。現成的 compose.yaml 會以唯讀的根檔案系統執行容器,除了移交資料夾與切換使用者所需的四項之外,移除所有 Linux capability,並設定 no-new-privileges。在 Kubernetes 上,或任何無法以 root 啟動容器的環境,請直接以該使用者執行(--user 1000:1000,或 runAsUser: 1000 與 runAsGroup: 1000),並確認磁碟區屬於這個使用者;ThirtyFile 就會略過移交的步驟。
若要自己設定管理員密碼,請在第一次啟動前,於同一個資料夾中建立名為 .env 的檔案,內容如下:
THIRTYFILE_ADMIN_PASSWORD=choose-a-password
登入
- 開啟
http://localhost:8080。從其他電腦連線時,請把localhost換成伺服器的位址。 - 在鎖定畫面上任意處按一下,再以 admin 和你設定的密碼登入。
- 開啟左下角的帳號選單,選擇變更密碼。
docker logs thirtyfile 2>&1 | grep password 查看。停止與啟動
docker stop thirtyfile
docker start thirtyfile
使用 Docker Compose 時,請在 compose.yaml 所在的資料夾執行 docker compose stop 與 docker compose start。