tessera

开始

跑起来,然后登录

tessera 是一个自建的文件传递工具。上传一个文件,拿到一组取件码,把码给对方。

上传页

上传页:拖放文件、粘贴文字或加一条链接

上传完成后的页面

上传后:链接、二维码、期限

跑起来

拉镜像

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 标签页。

从日志里拿管理员密码

镜像的日志是 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 挂出来的话,容器一重建东西就没了。

接下来

本页内容