セルフホストのファイル共有

ファイルをアップロードすると、リンクと QR コードがもらえます。渡された人は、共有の期限が切れるかダウンロード回数がなくなるまで受け取れます。自分のマシンで Docker コンテナを一つ動かすだけです。

  • AGPL-3.0
  • amd64 · arm64
  • SQLite · PostgreSQL · MySQL
  • S3 · Azure Blob · GCS
初回起動

docker run -p 12923:12923 -v tessera-data:/data ghcr.io/limatura/tessera:latest

{"level":"WARN","message":"created the first administrator with a generated password; sign in and change it","username":"admin","password":"d8558ce68d08…"}

{"level":"INFO","message":"listening","address":"0.0.0.0:12923"}

# http://localhost:12923 を開き、上のパスワードで admin としてサインインします。

スマートフォンで見た共有ページ

共有の流れ

  1. アップロード画面

    1アップロード

    ファイルやフォルダを画面に入れます。コードの貼り付けや、リンクの短縮もできます。

  2. アップロード後の画面。QR コード、リンク、共有の設定

    2渡す

    リンクと QR コードが出ます。リンクの最後の 8 文字が受け取りコードで、読み上げられる短さです。有効期限、読んだら削除、パスワードはその場で設定でき、あとからも変えられます。

  3. 受け取る側に表示される共有ページ

    3受け取る

    相手はリンクを開くか、トップページでコードを入力します。期限切れや回数切れになると、リンクはそう表示し、ファイルは削除されます。

ほかにも

リンクプレビュー

チャットにリンクを貼ると、サーバーが描いたカードが出ます。プレビューを開いてもダウンロード回数は減らず、パスワード付きの共有はロックされていることしか見せません。

ファイル共有のプレビューパスワード付き共有のプレビューテキスト共有のプレビュー

読み上げやすいコード

大文字小文字、スペース、ハイフンは無視します。O、I、L は 0、1、1 として読みます。

パスワード

パスワードを入れるまで、ファイル名もサイズも見えません。

アップロードの再開

接続が切れても、止まったところから続きを送ります。

エンドツーエンド暗号化

任意。ファイルは手元で暗号化してから送られ、サーバーは鍵を持ちません。

ウイルススキャン

任意。誰かがダウンロードする前に、ClamAV や自前のスキャナーで確認します。

インスタンス全体の管理画面

保存量と保存先を確認し、アカウント、招待コード、ロールを管理し、再起動なしで設定を変えられます。

管理のガイド
管理画面のダッシュボード

ファイルの保存先

ディスク上のフォルダから始めて、必要になったらバケットを追加します。保存済みのファイルはそのままです。

ディスク上のフォルダ

デフォルト

デフォルト。設定は不要です。

data/blobs
  • ファイルはマウントしたボリューム内の /data/blobs に入ります
  • テキスト共有はデータベースに入ります
  • ボリュームをバックアップすればすべて残ります

バケット

管理画面から追加

ディスクが小さいとき、バケットのほうが安いとき。

s3://bucket
  • S3 互換ストレージ、Azure Blob、Google Cloud Storage
  • WebDAV は小さなファイル専用
  • それぞれに容量上限。引退させる前に読み取り専用に

バケットをまたいで分割

デフォルトはオフ

どのバケットよりも大きなファイルに。

  • 無料の 10 GB バケット 5 つで 40 GB のファイルが入ります
  • どこにも丸ごと入らないファイルだけを分割します
  • 分割したファイルはサーバー経由でダウンロードするので、帯域を両側で使います

REST API

アップロード画面も管理画面も、あなたが呼べるのと同じ API を使っています。すべてのエンドポイントは API リファレンスにあります。

API リファレンス

動かす

Docker が動くマシンなら三ステップです。

  1. 1

    起動する

    コンテナを一つ。/data にボリュームをマウントすれば、作り直してもデータは残ります。

    $ docker run -d --name tessera \  -p 12923:12923 -v tessera-data:/data \  ghcr.io/limatura/tessera:latest
  2. 2

    パスワードを探す

    初回起動時に、生成された管理者パスワードがログに一度だけ出ます。

    $ docker logs tessera 2>&1 \  | grep password
  3. 3

    サインインする

    12923 番ポートを開き、admin でサインインして新しいパスワードを決めます。ほかの設定は管理画面で行います。

    http://localhost:12923