sotashimozono_obsidian-remo.../docs/en/getting-started/quickstart.md
Souta 07435647d3 fix(docs): correct review-pass findings on PR #294
Critical:
- api/examples.md + api/overview.md: framing protocol was wrong. Daemon
  uses LSP-style `Content-Length: <N>\r\n\r\n<body>` framing
  (server/internal/rpc/frame.go), NOT 4-byte big-endian length prefix.
  The shell smoke-test as written would have failed with "missing
  Content-Length". Both files now show the correct framing + the
  16 MiB max-message cap. Worst self-fabrication of this PR — the
  examples.md preamble explicitly claimed wire-accuracy from
  proto/types.go while echoing this pre-existing bug.
- 4 broken cross-folder relative links from the architecture/contributing
  migration: perf.md → testing-strategy.md, shadow-vault.md →
  plugin-compatibility.md (×2), testing-strategy.md → shadow-vault.md.
  All now use the correct `../<folder>/<file>.md` paths.

Important:
- api/examples.md server.info capabilities array: actual response is
  alphabetically sorted (sort.Strings) and includes EVERY registered
  method — auth + server.info + 20 fs.* methods = 22 entries. The doc
  showed a hand-curated 20-entry list in registration order.
- plugin-compatibility.md: 5 GitHub issue links used `../../issues/NNN`
  which resolved to repo-root when the file lived at docs/, but now
  resolves to docs/issues/ (404). Switched to absolute github.com URLs.

Advisory:
- "RPC daemon" UI label inaccuracy in 3 docs (raspberry-pi-vault,
  tutorial, quickstart) — actual ProfileForm.ts shows
  "Daemon (deploys helper on connect)" / "SFTP (direct)" labels.
- Fake `tailscale status` output line (no `alias:` row exists);
  replaced with realistic format + an `tailscale ip -4` example.
2026-05-10 15:18:20 +09:00

3 KiB
Raw Blame History

title tags
Quickstart
getting-started
quickstart

5-minute quickstart

This walks you from "plugin installed" to "editing a file on a remote vault" in five minutes. Assumes you already have:

  • obsidian-remote-ssh installed (see en/getting-started/install)
  • An SSH-reachable Linux/macOS host with your public key in ~/.ssh/authorized_keys on it
  • A directory on that host you want to use as a vault (it can be empty)

If any of those is missing, the en/server/docker gets you a sandbox in one command.

1. Open the plugin settings

SettingsCommunity pluginsObsidian Remote SSH⚙️.

2. Add an SSH profile

Click Add profile and fill in:

Field Example Notes
Profile name My Pi Display label only
Host 192.168.1.50 or pi.local Anything ssh would accept
Port 22 Default 22
Username pi Remote user
Authentication Private key See en/configuration/profiles#authentication
Private key path ~/.ssh/id_ed25519 Tilde-expanded at runtime
Remote vault path /home/pi/notes or ~/notes Must exist on the remote
Mode Daemon (deploys helper on connect) Switch from the factory default SFTP (direct) for lower latency + push notifications; auto-deploys the signed server binary

Click Save.

3. Connect

Either:

  • Open the command palette (⌘P / Ctrl+P) → type "Remote SSH: Connect" → pick your profile, or
  • Click the Remote SSH ribbon icon and select your profile from the menu.

What happens next:

  1. Plugin opens an SSH connection over your existing keys/agent.
  2. Plugin uploads the daemon binary to ~/.obsidian-remote/server (~5 MB) and verifies its SHA256.
  3. Plugin starts the daemon under your remote user. The daemon listens on a Unix socket; the plugin tunnels it back through SSH.
  4. Plugin opens a new "shadow vault" window that reads/writes the remote files via the daemon.

The first connect takes ~58 seconds (binary upload). Subsequent connects reuse the running daemon and finish in ~1 second.

4. Verify

In the new window:

  • Create a file → confirm it appears on the remote with ls.
  • Edit a file on the remote (echo hello >> README.md) → see the change reflected in Obsidian within ~500 ms.

5. Disconnect

Command palette → "Remote SSH: Disconnect" — or just close the shadow vault window. The daemon keeps running for ~5 minutes after disconnect (configurable) so a quick reconnect is instant.

What if it didn't work?

  • Auth failed: check your private key path / SSH agent — the plugin uses your existing SSH config, not its own credential store.
  • Daemon won't start: check the daemon panel in settings (⚙️ → Daemon) → "View log".
  • Files don't appear: confirm the remote vault path exists. The daemon does NOT auto-create it (it's protective — see en/operations/troubleshooting).

Continue: en/getting-started/first-connect.