Start
TLDR: quick setup
The shortest path from an empty server to a published site. Copy, paste, publish. For the why behind each step, read Getting started.
You need
- A server with Docker.
- An address with HTTPS that forwards to
http://127.0.0.1:8080on that server, using whatever you prefer: Cloudflare, nginx, Caddy, Traefik or something else. The plugin only publishes over HTTPS. No setup yet? See Domains and HTTPS. - Obsidian on your computer.
1. Server
On the server, set your address and run this. It downloads kvist, puts your address in the settings, and starts it:
DOMAIN=garden.example.com # your address
mkdir -p ~/kvist && cd ~/kvist
curl -fsSLO https://raw.githubusercontent.com/klppl/kvist/main/deploy/docker-compose.yml
curl -fsSLO https://raw.githubusercontent.com/klppl/kvist/main/deploy/kvist.toml
sed -i "s/garden.example.com/$DOMAIN/g" kvist.toml
docker compose up -d
kvist now listens on 127.0.0.1:8080. Check it from your own computer, through your HTTPS address. It should answer with {"protocol":…}:
curl https://garden.example.com/api/v1/info
Create a token for the plugin. Copy it now: it is shown only once.
docker compose exec kvist kvist token create
2. Obsidian plugin
On your computer, unzip the plugin into your vault (replace the path with your vault's):
VAULT=~/Documents/MyVault
mkdir -p "$VAULT/.obsidian/plugins"
curl -L -o /tmp/kvist-plugin.zip https://github.com/klppl/kvist/releases/latest/download/kvist-plugin.zip
unzip -o /tmp/kvist-plugin.zip -d "$VAULT/.obsidian/plugins"
Or download kvist-plugin.zip and unzip it into <vault>/.obsidian/plugins/ by hand.
In Obsidian: Settings → Community plugins, turn off Restricted mode, reload, and switch on kvist. Then in Settings → kvist:
| Setting | Value |
|---|---|
| Server URL | https://garden.example.com |
| Site | garden |
| Token | The token you copied |
Press Test. You should see connected to “garden”.
3. Publish
- Create a folder called
Kvistin your vault and put a note in it. Everything inKvistis public; everything else stays private unless tagged#public. - Run kvist: Publish now from the command palette (Cmd/Ctrl+P).
- Open your domain in a browser. Done.
To set the site's title, home page and colors, run kvist: Open site settings note, fill it in and publish again.
Next
- Something didn't answer? Troubleshooting.
- Choose what's public: Publishing notes.
- Updates and backups: Running the server. Update with
docker compose pull && docker compose up -d.