Some notes of my own experience publishing my Obsidian Vault with Quartz and Fyra.
Context
[!info]
- Quartz is a static-site generator by Jacky Zhao similar to Hugo/Eleventy.
- Fyra is a simple zero-config CLI-based static site deployment platform tool.
This guide will guide you through the process of publishing your Obisidian Vault onto the Internet within a couple of minutes.
Prerequisite
- Node.js (v18.14 or newer)
- Git to download the Quartz starter template
- An Obsidian Vault ready to be shared
Step 1: Scaffold your Quartz Project
Quartz transforms your Obsidian Markdown files into a static website. Instead of installing it as a package, you clone the framework and add your content to it.
Open your terminal and run:
$ git clone https://github.com/jackyzha0/quartz.git my-quartz-site
$ cd my-quartz-site
$ npm i
Next, move your existing Obsidian vault files into the content/ directory of your new Quartz project.
# Example: Copying your vault into the Quartz content folder
$ cp -r /path/to/your/obsidian-vault/* ./content/
Technical Note: Quartz natively understands Obsidian-flavored Markdown. It automatically handles
[[wikilinks]], block references, and frontmatter. You do not need to convert your links to standard Markdown.
Step 2: Configure and Build
Before publishing, you’ll want to tweak your site’s behavior and ensure it builds correctly. Quartz uses quartz.config.ts for configuration. Open it in a text editor to set your site’s URL, title, and enable/disable plugins (like the backlinks feature or graph view).
Once configured, build your site locally to verify everything looks right:
npx quartz build --serve
Open http://localhost:8080 in your browser. If you see your notes rendered as a website, you’re ready to deploy!
Technical Note: The
quartz buildcommand generates static HTML, CSS, and JS assets into apublic/directory. This is the folder we will deploy to the web.
Step 3: Deploy with Fyra
Disclaimer: I am the solo developer of fyra.sh. I’m just sharing how I deploy my Obsidian-Quartz digital gardens onto the Internet using the tool I’ve built.
This is where the magic happens. Fyra eliminates the need for complex CI/CD pipelines, Dockerfiles, or manual server configuration. It automatically detects your static site and deploys it to a global edge network from your working directory without configuration.
It has a generous free-tier that allows you to deploy your Obisidian Vaults or any static site for free using its subdomains.
For digital gardens, I do recommend using the garden.fyra.sh subdomain. Lets build a community around this!
From the root of your Quartz project, run Fyra’s 3-step deployment command:
# 1. Download the Fyra CLI. This will ask for sudo access to install this onto your path. Source: https://github.com/fyrash/fyra-cli
$ curl -fsSL https://fyra.sh/install.sh | sh
# !IMPORTANT - cd to the public/ directory where the generated HTML files are
$ cd public/
# 2. Register and Login
$ fyra register
Email: you@example.com
Password: ········
Confirm password: ········
Account created. Check your email to verify your address.
$ fyra login
Email: you@example.com
Password: ········
Logged in successfully.
# 3. Deploy!
$ fyra create
Choose a subdomain
By continuing, you agree to the Terms of Service: https://fyra.sh/tos.html
1. *.apps.fyra.sh
2. *.garden.fyra.sh
3. *.resume.fyra.sh
4. *.htmlparty.net
5. *.kaopeh.com
6. *.hackerdrinks.social
> 2
Choose an appname
Domain.garden.fyra.sh
> my-site
Created app: my-site.garden.fyra.sh
Run 'fyra push' to deploy this directory.
$ fyra push
Scanning my-site...
Packing 24 files (840.0 KB)
Uploading... 840.0 KB sent
Deploying on server...
Done: https://my-site.garden.fyra.sh
Keeping Your Site Updated
Going forward, the workflow to update your live site is frictionless. Whenever you write new notes or edit existing ones in Obsidian:
- Copy the updated files into the
content/folder or even better set content/ as your Obsidian Vault path. - Run
npx build quartzto regenerate the site after you make any changes to your content. - Go to
public/and do afyra pushin your terminal.
[!info] You may need to perform an additional step due to Quartz forcing a full replacement of the public/ directory.
See my written guide at https://david.garden.fyra.sh/#how-i-deploy-this-garden-to-fyrash
Fyra handles the deployment automatically, ensuring your public knowledge base is always in sync with your local vault. Happy publishing!