sotashimozono_obsidian-remo.../docs/en/server/docker.md
Souta e8a21f2257 docs(en): comprehensive end-user docs — install through architecture
Builds out the Quartz site from a 1-page placeholder into a full doc
set modelled on Excalidraw plugin's user-first IA. 34 new pages across
9 sections, ~5k lines.

Sections added under docs/en/:

- getting-started/  install, quickstart (5-min), first-connect (lifecycle diagram)
- user-guide/       ssh-config, jump-host, host-keys, conflicts, terminal-pane
- configuration/    profiles, this-device, terminal, advanced (every setting documented)
- server/           overview, auto-deploy (lifecycle), docker, systemd, raspberry-pi, signing
- api/              overview (wire format), authentication, filesystem, watch, errors
- security/         model (threat boundaries + mermaid), cosign-verify, token, host-keys
- operations/       troubleshooting, logs, reconnect, daemon-panel
- architecture/     index linking the existing shadow-vault / perf / collab specs
- faq               quick-answer landing for recurring questions

en/index.md rewritten as a real landing page: "start here" matrix,
section list, release-channel table, project status.

Coverage notes:
- Every plugin setting from settings/SettingsTab.ts has a reference entry
- Every RPC method from proto/types.ts is documented with payload shapes
- Every error code (-32000 series + filesystem -32010 series) is in errors.md
- Cosign verify steps are copy-pasteable
- Beta/stable channel model from CONTRIBUTING.md is mirrored in en/index.md

Bump: 1.0.44-beta.1 → 1.0.44-beta.2.
2026-05-10 13:22:26 +09:00

2.4 KiB

title tags
Docker (turn-key sshd)
server
deploy
docker

Docker — turn-key sshd + auto-deploy

The repo ships a Docker setup that gives you a sandbox sshd container in one command. Useful for trying obsidian-remote-ssh without setting up SSH on a real server, hosting a shared vault for several family members or teammates, or running CI integration tests.

Quickstart

git clone https://github.com/sotashimozono/obsidian-remote-ssh
cd obsidian-remote-ssh/deploy/docker

cp ~/.ssh/id_ed25519.pub authorized_keys
cp .env.example .env

docker compose up -d --build

Connect from the plugin:

Field Value
Host localhost (or your Docker host's IP)
Port 2222 (configurable in .env)
Username obsidian
Auth Private key (your existing key)
Remote vault path /home/obsidian/vault

What is inside

  • Single sshd container, port 2222 (configurable).
  • Non-privileged obsidian user (uid 1000).
  • Pubkey-only auth (passwords disabled).
  • Persistent host keys (./hostkeys/ on host) — survives container recreate, so trust survives upgrades.
  • Vault directory bind-mounted from host (./vault/ by default).
  • The daemon auto-deploys into ~/.obsidian-remote/ on first connect.

Configuration (.env)

Var Default Purpose
HOST_PORT 2222 Host-side TCP port
VAULT_PATH ./vault Host folder mounted into the container as the vault
AUTHORIZED_KEYS_PATH ./authorized_keys One pubkey per line, OpenSSH format
HOSTKEYS_PATH ./hostkeys Persistent sshd host keys

Multiple users

Add more public keys to ./authorized_keys (one per line). Restart sshd:

docker compose restart

Each user spawns their own daemon process under the shared obsidian account; they coexist via independent socket paths configured per profile.

For real isolation (per-user vaults), run multiple containers with different mounts.

Production use

This image is reasonable for small home / family use. For real production:

  • Put it behind a reverse-tunnel proxy (Tailscale, Cloudflare Tunnel) — do NOT expose port 2222 directly to the internet.
  • Run the container under a non-root user namespace.
  • Mount /home/obsidian/.obsidian-remote/ as a volume so daemon state survives container recreate; otherwise the token regenerates on each restart and existing plugin sessions need to reconnect.

Next: en/server/systemd.