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.