GenDash: Obsidian to Hugo Automated Publishing Guide

This guide outlines the infrastructure and configuration required to sync an Obsidian vault across multiple devices and automate the publishing process to a Hugo website via Cloudflare Pages.


1. Multi-Device Sync (The Writing Layer)#

To ensure notes are mirrored across Mac Studio, MacBook Air, and iPad without using Git for the writing layer.

  • Backend: Self-hosted CouchDB (10.1.2.230) at obsidian-sync.mmmo.app.
  • Plugin: Self-hosted LiveSync.
  • Strategy: Only pages are live synced.
  • Transfer settings and plugins: Copy the .obisidan folder

Warning: Obsidian should not be running on source and destination

rsync -avzhI --delete --progress /Users/marc/Obsidian/GenDash/.obsidian/ marc@10.1.2.5:/Users/marc/Obsidian/GenDash/.obsidian

Copy the full vault

Warning: Obsidian should not be running on source and destination

rsync -avzh --progress /Users/marc/Obsidian/GenDash/ marc@10.1.2.5:/Users/marc/Obsidian/GenDash/

2. The Content Bridge (Mac to Linux)#

1. Mac OS Script#

This script “beams” your notes from your Mac Studio to the Proxmox Hugo VM.

Location: /Users/marc/Scripts/sync-obsidian-gendash-hugo.sh

note: A copy of the script is also at /Volumes/Software/Software/Scripts/MacOS/

#run manually vian the command push or: 
bash /Users/marc/Scripts/sync-obsidian-gendash-hugo.sh
cat /Users/marc/Scripts/sync-obsidian-gendash-hugo.log
# Create a push alias
echo "alias pushgen='bash /Users/marc/Scripts/sync-obsidian-gendash-hugo.sh'" >> ~/.zshrc
source ~/.**zshrc**

Mac Studio Schedule#

# Mac Studio Schedule
crontab -e
10 12 * * * bash /Volumes/Software/Software/Scripts/MacOS/sync-obsidian-gendash-hugo.sh > /dev/null 2>&1
10 20 * * * bash /Volumes/Software/Software/Scripts/MacOS/sync-obsidian-gendash-hugo.sh > /dev/null 2>&1

3. The Git Publisher (Linux to Web)#

HP1Docker hosts the files, a script pushes the received notes from the VM to GitHub to trigger Cloudflare.

Location: /mnt/Software/Software/Scripts/Linux/

# Run script manually from 10.1.2.202 (HP1Proxmox)
bash /mnt/Software/Software/Scripts/Linux/publish-hugo-gendash.sh
tail -f /home/marc/hugo/homelab/logs/publish-hugo-gendash.log
# Create a push alias
echo "alias push='bash /mnt/Software/Software/Scripts/Linux/publish-hugo-homelab.sh && tail -f /home/marc/hugo/homelab/logs/publish-hugo-homelab.log'" >> ~/.bashrc

Proxmox VM Schedule#

# HP1Docker cron job
crontab -e
15 12 * * * bash /mnt/Software/Software/Scripts/Linux/publish-hugo-gendash.sh
15 20 * * * bash /mnt/Software/Software/Scripts/Linux/publish-hugo-gendash.sh

Warning: You need to close the terminal session and reopen a new one for the alias to take effect