Obsidianator
FinishedObsidianator
Turn an Obsidian vault into a self-contained static website, or serve it directly in the browser without writing anything to disk.
History & Vision
I wanted an easy way to render my Obsidian notes into some kind of HTML output that can either be published on my own website or be used for private viewing with advanced search functionalities.
There is of course Obsidian Publish but I wanted to have a small challenge in creating my own tool.
How it works
There are two modes you can either export your vault as a vite build or serve it directly as a site.
When running the obsidianator it will scan the files and folders in the provided path, takes the content of the markdown files to parse them and then write everything into a vault-data.json file, which will then be loaded by the vite build.
Installation
Currently you can either download the pre-compiled binaries from the latest release or you can build it from source:
Bash
Requirements: Go 1.21+, Node 18+, pnpm.
Usage
Serve a vault in memory (no disk output)
Bash
Export to a static site:
Bash
Filter to specific folders or files:
Bash
Other options
Bash
Important: The serve options primary purpose is for checking how the output looks and not for serving the site publicly! While some steps to secure the serve option were taken it is by far not ready to be used for public hosting. Instead you should do an export and host that using a real webserver.
Architecture
The Go binary embeds the compiled frontend (web/ → ./static) via //go:embed. In serve mode nothing touches disk - vault data is served as JSON from memory and attachments are proxied directly from the vault directory.