tessera

管理

邀請碼、角色、停權,以及實例統計怎麼讀

後台在同一個網址的 /admin/,跟主程式編在同一個執行檔裡。管一台機器是四件事:決定誰進得來、決定他們能做什麼、看著存了些什麼,以及出事的時候介入。每一件都是一個權限。

features.admin 關掉的話,這裡每一條都回 404

不是 403。關掉的功能是這台機器沒有的東西,所以回的跟一個不存在的路徑一樣。

管理後台儀表板
儀表板:數量、儲存空間趨勢、內容放在哪、最近的分享

權限與角色

權限是一個 resource:verb 字串。會伸到持有者自己東西以外的,會被標成 privileged。

權限管到
shares:create、shares:read、shares:delete自己的分享
tokens:manage自己的 API 權杖
shares:read:any、shares:delete:any這台機器上的每一份分享
users:read、users:write、users:delete帳號
invites:read、invites:create、invites:delete邀請碼
roles:read、roles:write角色和誰持有
stats:read實例統計

內建四個角色:owner 全部都有,admin 除了 users:delete、shares:delete:any、roles:write 以外都有,member 有那四個管自己東西的,guest 一個都沒有。

guest 是給「要人先註冊,再由人工放行」的機器用的。把 auth.default_role 指到它,新帳號在被指派角色之前什麼都做不了。

自己開一個

一個角色是一個名字、一段說明、一份權限清單,加上兩個上限:屬於它的人總共能存多少、單一檔案最大多大。你可以自己建、改它能做什麼,也可以刪掉。

內建角色不能改也不能刪

改它們的權限會回 409,訊息叫你去看 auth.default_role。自己開一個角色,讓新帳號進那個。

一個帳號剛好在一個角色裡。指派一個新的就是換掉原本那個。

內建四個是層層包含的:guest 什麼都不能做,member 能做的是 admin 扣掉管理的部分,owner 能做 admin 的全部再加上更多。所以一個就夠了。

邀請碼

只有 auth.registration 是 invite 的時候才會看。open 不理它,closed 則是誰都註冊不了。

一組碼有可用次數、選填的期限,和一段備註,讓一整串碼看得出誰是誰。沒設期限的話,它會活到用完或被撤銷為止。在只收邀請的機器上不帶碼註冊,會被拒絕並告訴對方需要邀請碼。

碼只回來一次

碼本身不會被存下來,只留一段拿來核對的指紋。沒抄下來的只能撤銷掉再開一個。

清單會顯示每一組碼用掉幾次、還能不能用。撤銷一組不會影響已經用它建好的帳號。

命令列也能開:tessera-server invite。-n 是能用幾次,預設 1;-d 是幾天後過期,不填就不過期;--note 是備註。碼只會印出來一次。

tessera-server invite -n 5 -d 7 --note "book club"

帳號

帳號可以停權,也可以放回來。

  • 停權是讓那個人登不進來。他的分享會繼續送,因為拿著那些連結的人沒有做錯什麼。
  • 要連內容一起停,就去停那些分享本身。

弄丟驗證器的人,可以在這裡幫他關掉兩步驟驗證。使用者清單會顯示誰開了。

刪掉帳號會洗乾淨它的紀錄,但不會動他上傳的東西。結束某個人的分享是另一個動作,而且會回報結束了幾份。兩種情況各留下什麼,見你的資料在哪裡。

最後一個管理員拿不掉

刪掉、降權,或是把改角色的權限從唯一持有它的帳號上拿走,都會被擋。對自己做也一樣。

分享

這台機器上的每一份分享都列得出來,新的在前,附上是誰上傳的、送出去多少,以及被停用的話原因是什麼:管理員停的,或是掃毒找到了什麼。任何一份都刪得掉。

shares:delete:any 是唯一碰得到「上傳者已經不在」那些分享的方法,因為一般的刪除看的是擁有權,而被刪掉的帳號什麼都不擁有。

設定

每一個設定都列得出現在生效的值,以及那個值是哪一層給的。只能走環境變數的那些會明講,不會在你試著改的時候默默失敗。

會丟掉東西的改動要確認過才做得下去,而且可以先問它會毀掉什麼再決定。

哪些設定只能走環境變數,見設定。

存取紀錄

share.access_log.enabled 預設關。打開之後每一次把內容交出去都會被記下來,持有 shares:read:any 的人可以按分享去讀。

上傳者讀不到。

一列裡有什麼、留多久,見你的資料在哪裡。

儲存 backend

放檔案的地方在這裡管:加一個、刪一個、選哪一個收新的上傳。每一個有名字、位址、選填的容量上限、一個唯讀開關,以及能不能讓瀏覽器直接連過去。

每一個也會顯示上一次呼叫有沒有回應,沒有的話原因是什麼。上傳和下載會一直更新這個狀態,閒著的每 15 分鐘檢查一次,失敗中的每 5 分鐘一次。不回應的 backend 其他地方看起來都正常,只有存在上面的分享會失敗。

位址存之前會先封起來而且讀不回來,因為它帶著憑證,而 backend 清單正是那種會被貼進求助討論串的東西。

檔案怎麼挑一個,見檔案放在哪裡。

站名和外觀

首頁和連結預覽上顯示的標題、描述,以及這台機器的預設語言,都在這裡設。

連結預覽用這個語言寫,因為聊天軟體抓連結時,不會說是誰要看。瀏覽器要的語言不是英文、日文、繁體中文或簡體中文的訪客,網站也會用這個語言打開。沒改之前是英文。

之後再改,只會影響新的訪客。第一次來的時候,語言就存進 cookie 了,之後一律以 cookie 為準。

預設的外觀也是:淺色、深色或跟隨系統,一個主題,一個強調色。每個人可以在自己的設定裡選自己的;預設的就是其他人看到的。

測速

預設關。speed.enabled 會加一個頁面,用不落地的拋棄式資料來回傳送,量訪客跟這台機器之間的線路。

設定預設
speed.enabled關
speed.anonymous關只有登入的人能測
speed.max_bytes25 MiB一次最多送或收多少

每個來源一小時可以測五次,上傳和下載算在一起。關掉的時候,或是不開放給匿名訪客的時候,對他們來說這個功能就像不存在。

實例統計

這台機器會回報:

欄位是什麼
accounts、administrators有幾個帳號,其中幾個在管理
shares 對 live_shares總共握有幾份,對上訪客現在還打得開幾份
stored_bytes還在儲存上的上傳內容
quota_bytesstorage.max_total_bytes 的上限,沒設就是 null
live_invites還能讓人進來的碼
bytes_served這台伺服器送出去多少
bytes_redirected有多少是讓瀏覽器直接去 bucket 拿的

stored_bytes、shares、live_shares、bytes_served 每天會存一份快照,留一年,讓後台畫得出儲存空間的變化。伺服器整天沒開的日子沒有快照,不會補成 0;歷史從有這個功能的那一版開始。

shares 和 live_shares 差很多,代表掃描沒跟上,或是保存期比你以為的長。

quota_bytes 是 null 代表沒有人設過

在一台收匿名上傳的機器上,這個組合就是啟動時那句警告在講的事。見設定。

接下來

本頁內容