開始
跑起來,然後登入
tessera 是一個自架的檔案傳遞工具。上傳一個檔案,拿到一組取件碼,把碼給對方。

上傳頁:拖放檔案、貼上文字或加一條連結

上傳後:連結、QR code、期限
跑起來
拉映像檔
docker pull ghcr.io/limatura/tessera:latest:latest 是最新的 release,:sha-<commit> 釘住某一次建置。amd64 和 arm64 都有出,所以 Pi 和 NAS 跑得起來。
要自己建的話,docker build -f apps/server/Dockerfile -t tessera . 會連前端一起編進去。
跑起來
docker run -p 12923:12923 -v tessera-data:/data ghcr.io/limatura/tessera:latest資料放在名為 tessera-data 的 named volume。Docker 第一次執行時會自動建立,伺服器也已經有寫入權限。想把資料放在自己指定的目錄,請用 Docker Compose 頁籤。
從 log 拿管理員密碼
映像檔的 log 是 JSON,一行一個物件。用這個找出來:
docker logs <container> 2>&1 | grep password用 Compose 的話,改跑 docker compose logs tessera 2>&1 | grep password。
那一行長這樣:
{
"timestamp": "…",
"level": "WARN",
"message": "created the first administrator with a generated password; sign in and change it",
"username": "admin",
"password": "1e3bc629…",
"target": "tessera_server::auth::bootstrap"
}這行只印一次
之後重啟不會再印。錯過的話用 reset-password
再設一次。
登入,然後換掉密碼
系統會擋著你,直到換掉為止。
不用 Docker
每個發布版也附了單獨的伺服器執行檔,有 Linux(x86_64 和 arm64,靜態連結,哪個發行版都能跑)和 macOS(Intel 和 Apple Silicon)的版本。沒有 Windows 版,Windows 上請用 Docker。網頁介面已經編進去了,所以這一個檔案就是整台機器。
curl -fsSL https://github.com/Limatura/tessera/releases/latest/download/tessera-server-linux-x86_64.tar.gz | tar -xz
./tessera-server這樣直接跑,和映像檔有三個地方不一樣:
- 它聽在
127.0.0.1:12923,只有這台電腦連得到。請在前面放反向代理,或設TESSERA_SERVER__HOST=0.0.0.0。 - 資料放在你啟動它的目錄底下的
data/。 - 日誌是純文字,管理員密碼在結尾是
username=admin password=…的那一行。
要把資料放在別的地方,這兩個都要設:
TESSERA_SERVER__DATA_DIR=/var/lib/tessera \
TESSERA_DATABASE__URL=sqlite:///var/lib/tessera/tessera.db \
./tessera-server資料庫不會跟著資料目錄走
只設 TESSERA_SERVER__DATA_DIR 的話,資料庫還是在啟動位置底下的 data/tessera.db。tessera-server reset-password 這類管理指令讀的是同一套設定,所以要帶同樣的變數、在同一個目錄執行。不然它們動到的會是另一個空的資料庫。
/data 裡有什麼
blobs 是上傳的檔案本體,直到你加了別的地方放檔案為止。secret.key 用來加密存在資料庫裡的憑證:儲存 backend 的位址、寄信密碼、第三方登入的 secret。
secret.key 要跟資料庫一起備份
沒有它還原回來的資料庫照樣開得起來,但裡面每一個封起來的憑證都讀不出來,要全部重新輸入。見設定。
設定不在磁碟區裡。它們來自環境變數,以及同一個網址的 /admin/ 後台。
/data 掛出來的話,容器一重建東西就沒了。