TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
파일을 업로드하면 링크와 QR코드를 받아, 공유 기간·다운로드 횟수까지 다운로드 가능. 자체 머신의 Docker 컨테이너 하나로 실행
Upload a file and get a link and a QR code. Whoever you give them to can download the file until the share expires or its downloads run out. It runs as one Docker container on your own machine.
생산성Rust · TypeScriptGitHub @Limatura온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Self-hosted file and note sharing that cleans up after itself.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗https://github.com/user-attachments/assets/f1c95b78-8561-4184-9616-c57e3fa3bc5a
Upload a file, a folder, a snippet of code or a link, and get back a short code and a URL. Whoever has them can open it until it expires or has been downloaded as many times as you allowed. Then it is deleted.
No account is needed to send something, unless you turn that off. Tessera runs as one binary with the web app built in, keeps its data in SQLite, PostgreSQL or MySQL, and stores files on local disk or in object storage.
Just you, and people you trust. Run it on a NAS or a home server, behind your VPN, to move files between your own devices or hand them to friends. The defaults suit this: anonymous uploads on, SQLite and local disk, nothing else to set up. See the personal example.
A public instance for strangers. Anyone can upload, so every resource is spent by people you do not know. Cap the file size and the total storage, shorten the default lifetime, keep sign-up closed or invite-only, and point it at a malware scanner. See the public example.
A team or an organization. Turn anonymous uploads off and let people sign in through your company's OpenID Connect provider. Roles control who may upload, who may see everyone's shares and who may change settings, and each account can have its own quota. PostgreSQL and S3-compatible storage scale past one machine.
Everything an operator needs is at /admin, and nearly every setting takes effect on the next request, without a restart:
Without a browser, the same settings are available from the command line: tessera-server settings list, settings set <key> <value>.
With Docker:
docker run -d --name tessera --restart unless-stopped \
-p 12923:12923 -v tessera-data:/data ghcr.io/limatura/tessera
Then open http://localhost:12923. On first start the server creates an administrator account and prints its password in the log, once:
docker logs tessera | grep password
From a clone of this repository, docker compose up -d does the same, with the settings kept in docker-compose.yml.
Before you put it on the internet, read the public deployment example. Anonymous uploads are on by default, and without a storage limit anyone who can reach the server can fill its disk.
You need Rust and pnpm.
pnpm install
pnpm --filter web build
pnpm server:dev
Most settings live in the admin panel. The few that must be known before the server starts, such as the port, the database URL and the data directory, are environment variables:
TESSERA_SERVER__PORT=9000
TESSERA_DATABASE__URL=postgres://tessera:secret@localhost/tessera
TESSERA_SERVER__DATA_DIR=/var/lib/tessera
Two commented starting points: a personal instance and a public one. For systemd there is a unit file.
Files go to a local directory unless you add another backend in the admin panel.
| Backend | Notes |
|---|---|
| Local disk | The default |
| S3-compatible | Tested against MinIO, Garage, RustFS, SeaweedFS, VersityGW and s3proxy. AWS S3, Cloudflare R2 and Backblaze B2 are checked when credentials are available. |
| Azure Blob Storage | Tested against Azurite |
| Google Cloud Storage | Built in, not yet covered by tests |
| WebDAV | Small files only, up to share.inline_threshold_bytes (64 KiB by default) |
Install tess for Linux or macOS. Windows builds are on the releases page, and cargo install --path apps/cli builds it from source.
curl -fsSL https://raw.githubusercontent.com/Limatura/tessera/main/scripts/install.sh | sh
Until there is a stable release, add -s -- --version <version> with the release you want.
tess login https://share.example.com
tess send report.pdf --expires 24
tess get https://share.example.com/s/P8D72PSF
echo "hello" | tess send -
tess ls
tess rm P8D72PSF
tess
tess on its own opens a full-screen view to find files and send them without typing paths, and to manage your shares.
--encrypt seals the content before it leaves your machine; the key is the part of the link after #, which the server never sees.
No CLI at hand? curl will do, and prints the link:
curl -T report.pdf https://share.example.com/
echo "hello" | curl -T - https://share.example.com/
Options go in headers: -H 'X-Share-Expires: 1d', -H 'X-Share-Max-Downloads: 3', -H 'X-Share-Password: …'.
See CONTRIBUTING.md. Security problems go through SECURITY.md, not the issue tracker.
AGPL-3.0. If you run a modified Tessera for other people, you must offer them its source.