Self-host in two steps

Run your own Notabeam server: one binary, embedded SQLite, automatic HTTPS. Install it with a shell script or Docker, then connect the plugin in a minute.

Install the server

Two ways — pick one.

A

Shell script — Linux + systemd

Installs the server as a systemd service and starts a 30-second wizard: enter your domain, it verifies DNS, obtains a Let's Encrypt certificate (auto-renewed) and prints everything the plugin needs — server URL, vault token, a one-click setup link and a QR code.

$ curl -fsSL https://notabeam.app/install.sh | bash
B

Docker Compose

Nothing to clone — the compose file builds the image from the released binary. Next to it, create a .env file with three lines: DOMAIN=your-domain, ACME_EMAIL=your-email, VAULT_TOKEN=long-random-secret. TLS is automatic; data (SQLite, attachments, certificate) lives on the volume.

$ curl -fsSLO https://notabeam.app/docker-compose.yml$ docker compose up -d

Connect the plugin

  1. 1

    Install and enable Notabeam

    Obsidian → Settings → Community plugins → install Notabeam and switch it on.

  2. 2

    One click — or one scan

    Open the setup link the wizard printed (desktop) or scan the QR code (phone), confirm — the plugin configures itself. Docker installs don't run the wizard — use the manual step below.

  3. 3

    Or enter the details manually

    If the link doesn't open (the obsidian:// scheme isn't registered in your OS, or the plugin wasn't enabled yet): Settings → Notabeam → Server address: wss://your-domain (LAN: ws://server-ip:3000), Vault token: from the wizard output or your .env. Sync starts right away — no restart needed.

Requirements

  • Any small VPS or home server (Linux); ports 80/443 reachable from the internet
  • A domain pointed at the server — TLS is handled for you (Let's Encrypt, auto-renewal)
  • No domain? LAN-only mode is available — unencrypted, explicit opt-in
  • SQLite is embedded — no database to install

Full guides — Kubernetes (Helm), LAN without a domain, Cloudflare Tunnel, backups — live in the repo docs.