PartialHow to

Install on a VPS

A VPS makes a good home: always on, reachable from anywhere through Tailscale, and cheap. It is still your server: you rent the machine, you hold the keys.

Coming soon — Add a server from Settings → Devices: sign in to Hetzner (then Linode/Akamai, DigitalOcean, Vultr, OVH, Scaleway), pick a size and region with its price shown, and Mandala creates the server, installs itself with Tailscale, a firewall and backups, and joins it to your identity with a pairing code. Until then, set it up by hand as below.

1. Create the server

  • Size: 2 vCPU and 4 GB RAM run Mandala comfortably for one person. Compiling on the server needs about 8 GB; with less, build elsewhere and copy the binary (same CPU architecture and a Linux at least as recent).
  • Disk: 40 GB or more. Mail, attachments and the record history grow with time.
  • Image: Debian 12 or Ubuntu 24.04.
  • Access: your SSH key only. Disable password login.

2. Lock it down first

sudo apt update && sudo apt -y upgrade
sudo apt -y install ufw unattended-upgrades
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh
sudo ufw default deny incoming && sudo ufw allow in on tailscale0 && sudo ufw enable

Before running the last line, check that ssh sam@<machine> works over Tailscale from your computer: the firewall then closes the public SSH port. After this, reach the server over Tailscale only (ssh sam@<machine>). Mandala itself never needs a public port. See Security.

3. Install Mandala

Follow Install on Linux from step 1. On a small VPS, build on your workstation instead:

cargo build --release -p mandala
scp target/release/mandala sam@<machine>:~/.mandala/bin/mandala
rsync -a applications/workspace/dist/ sam@<machine>:~/.mandala/web/

4. Back it up

A VPS can disappear. Turn on the provider's snapshots, and copy ~/.mandala off the machine regularly. See Backups and restore.

5. Join your other devices

Pair your Mac or a second server with it: Pair two nodes.