tessera

はじめに

起動して、サインインする

tessera はセルフホストのファイル受け渡しツールです。ファイルをアップロードして受け取りコードをもらい、必要な人にそのコードを渡します。

アップロード画面

アップロード画面:ファイルをドロップ、テキストを貼る、リンクを追加

アップロード後の画面

アップロード後:リンク、QR コード、期限

起動する

イメージを pull する

docker pull ghcr.io/limatura/tessera:latest

:latest は最新のリリース、:sha-<commit> は特定のビルドに固定します。amd64 と arm64 の両方を公開しているので、Raspberry 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 タブを使ってください。

ログから管理者パスワードを取る

イメージのログは JSON で、1 行に 1 オブジェクトです。次のコマンドで探せます。

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 向けはないので、Docker を使ってください。Web の画面も組み込まれているので、このファイル一つでインスタンス全体です。

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 はデータベースに保存する認証情報を暗号化します。ストレージバックエンドのアドレス、メールのパスワード、外部ログインのシークレットなどです。

secret.key はデータベースと一緒にバックアップする

これなしで復元したデータベースも開きはしますが、封印された認証情報はすべて読めなくなり、入力し直しになります。設定を見てください。

設定はボリュームには入りません。環境変数と管理画面から読み込みます。管理画面は同じアドレスの /admin/ にあります。

/data にボリュームをマウントしないと、コンテナを作り直したときにすべて消えます。

次に読む

このページの内容