tessera

開始

跑起來,然後登入

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 裡有什麼

tessera.db
secret.key

blobs 是上傳的檔案本體,直到你加了別的地方放檔案為止。secret.key 用來加密存在資料庫裡的憑證:儲存 backend 的位址、寄信密碼、第三方登入的 secret。

secret.key 要跟資料庫一起備份

沒有它還原回來的資料庫照樣開得起來,但裡面每一個封起來的憑證都讀不出來,要全部重新輸入。見設定。

設定不在磁碟區裡。它們來自環境變數,以及同一個網址的 /admin/ 後台。

沒有把 /data 掛出來的話,容器一重建東西就沒了。

接下來

本頁內容