はじめに
起動して、サインインする
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 passwordCompose の場合は 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 に入るもの
blobs には、ほかの保存先を追加するまでアップロードされた中身が入ります。secret.key はデータベースに保存する認証情報を暗号化します。ストレージバックエンドのアドレス、メールのパスワード、外部ログインのシークレットなどです。
secret.key はデータベースと一緒にバックアップする
これなしで復元したデータベースも開きはしますが、封印された認証情報はすべて読めなくなり、入力し直しになります。設定を見てください。
設定はボリュームには入りません。環境変数と管理画面から読み込みます。管理画面は同じアドレスの /admin/ にあります。
/data
にボリュームをマウントしないと、コンテナを作り直したときにすべて消えます。