Sync your Obsidian vault on a machine you own

Docker image, Caddy and automatic HTTPS in one compose file. SQLite and a folder of blobs — that folder is your entire backup. No fee, no seat count, no licence key, and an export that turns your data back into plain Markdown whenever you want out.

Download the bundle Deployment guide

An Obsidian vault open in a web browser through the self-hosted web app, file tree on the left

Obsidian stores your notes as Markdown on disk, which is most of what makes it worth using. Getting those files onto a second machine is where people end up paying a subscription, or stacking Syncthing on top of iCloud and hoping the two never disagree.

This is the third option: a small server you run yourself.

# 1. get the bundle
curl -LO https://inventtasks.solidinvent.pl/download/inventtasks-server.zip
unzip inventtasks-server.zip && cd inventtasks-server

# 2. set the first account and your domain
cp .env.example .env && $EDITOR .env

# 3. run it
docker compose up -d

That brings up the server and Caddy, which obtains a Let's Encrypt certificate for the domain you named and reverse-proxies to it. If something already owns ports 80 and 443 — Nginx Proxy Manager, Traefik, a control panel — use docker-compose.behind-proxy.yml instead and point your existing proxy at port 8480.

The image comes from GHCR and is multi-architecture, so the same command works on an x86 VPS, a Raspberry Pi and a Synology NAS. Nothing is compiled on the host.

What it actually is#

The whole vault, or just part of it#

Two kinds of workspace, and the difference matters on a phone:

Kind What syncs
vault the entire vault — notes, attachments, images, anything
tasks one folder subtree, so a phone can carry a fraction of a large vault

Vault sync has its own ignore patterns and a per-file size cap, both configured per device — so the laptop can take everything while the phone takes what fits.

The browser app nobody expects#

The same container serves a web app on the same origin. Sign in and the vault opens in a browser: file tree, Markdown rendering with working wiki links and embeds, images, audio, video and PDFs, editing, upload and download, and version history with restore.

Which means your notes on a locked-down work laptop or a borrowed machine, with no Obsidian and no plugin installed there — served from your own box, passing through nobody else.

When two devices disagree#

The newer modification time wins, and the version that lost is kept in server history rather than discarded, so "the wrong one won" is a restore rather than a loss. The client can also drop the losing copy next to the file locally.

If a pull would delete an unusual number of files — the classic shape of a sync gone wrong — the server stops and asks, offering to restore, accept, or decide later. It does not quietly empty your vault and report success.

What it costs#

Nothing. No fee now or later, no seat count, no storage plan, no licence key, and company use is included. The terms are written down rather than implied — see the licence, which also says plainly that the source is not public, because you should not have to guess at that.

What it does cost is a machine, which for most people is a Pi, a NAS or a €4 VPS, and about ten minutes.

What you need#

The deployment guide covers reverse proxies, backups, retention, the mass-deletion guard and the REST API.