Self-hosting
The Tessera server syncs workspaces between devices and people, and serves the web app. It is one container with one volume: SQLite for documents and accounts, and a folder for attachments.
What you need
- A machine with Docker: a small VPS, a home server or a NAS. 1 CPU and 512 MB of RAM are plenty for a team.
- A domain name and HTTPS if people will connect over the internet. Caddy does HTTPS for you.
- Images for
linux/amd64andlinux/arm64(Raspberry Pi 4 and newer, Apple silicon, ARM VPSs).
Quick start
docker run -d --name tessera -p 8787:8787 -v tessera-data:/data ghcr.io/femboypuppy/tessera:latestThe server prints a one-time setup code in its log (docker logs tessera). Open http://localhost:8787, choose Join a workspace on a server, and create the owner account with that code. Prefer the command line? Run:
docker exec -it tessera tessera-server create-ownerDocker Compose (recommended)
Compose keeps your settings in a file, restarts the server after a reboot and makes upgrades one command.
mkdir tessera && cd tessera
curl -fsSLO https://raw.githubusercontent.com/femboypuppy/Tessera-Notes/main/docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/femboypuppy/Tessera-Notes/main/.env.example -o .envEdit .env: at least set PUBLIC_URL to the address people will use. Then:
docker compose up -d
docker compose logs -f tesseraThe compose file also contains an optional Caddy service that gets a Let's Encrypt certificate for your domain automatically. The comments in docker-compose.yml show how to turn it on; HTTPS and reverse proxies explains the options.
Every setting is listed in the configuration reference.
Invite people
Sign in as the owner, open Settings → Sync & account, and create an invite link with a role (editor or viewer). Whether people can also sign up on their own is up to you: see SIGNUP_MODE in the configuration reference.
Check that it works
https://<your-domain>/api/healthreturns{"ok":true,"version":"…"}.- The container reports
healthyindocker ps. - In the app, the sync indicator shows Synced.
Hosting platforms
Step-by-step guides for a VPS with Docker and Caddy, Fly.io, Railway and Render are in the deploy/ folder of the repository.
Keep it safe
- Put the server behind HTTPS before anyone signs in over the internet.
- Set
SIGNUP_MODEtoinvite(orclosed) unless you really want open sign-ups. - Back up the data volume, and test a restore once.
- Upgrade when a release fixes a security issue; watch the repository's releases to hear about them.