Website Setup Documentation
The Potato Society Digital Garden Architecture
This document explains the complete setup of Muhammed Taufiq’s personal portfolio and digital garden hosted at potatosociety.uk.
🏗️ Architecture Overview
Symlink-Based Content System
` Obsidian Vault: C:\VAULT\proxmox-vault\20 Projects\ProjectHome ├── Index.md ├── Hacking.md ├── AI_Engineering.md ├── Satellite_Operations.md ├── System_Architecture.md └── Website_Setup.md (this file)
Quartz Installation: C:\quartz-portfolio ├── quartz.config.yaml ├── package.json ├── node_modules/ └── content → [SYMLINK TO VAULT] `
The content folder in the Quartz installation is a directory junction (Windows symlink) pointing directly to your Obsidian vault. This means:
- ✅ Your Obsidian vault remains untouched and clean
- ✅ Quartz sees all your markdown files as if they were in its content folder
- ✅ Changes made in Obsidian immediately reflect on the website
- ✅ No duplication of files or manual copying required
⚙️ Technical Components
1. Quartz Static Site Generator
- Framework: Quartz v5 (https://quartz.jzhao.xyz)
- Hosting: Cloudflare Pages
- Domain: potatosociety.uk
- Build Command: px quartz build —no-serve
- Output Directory: public/
2. Configuration File
- Location: C:\quartz-portfolio\quartz.config.yaml
- Format: YAML (required for Quartz v5)
- Key Settings:
- pageTitle: “The Potato Society”
- aseUrl: “potatosociety.uk”
- ignorePatterns: [“private”, “templates”, “.obsidian”]
- Black-and-white minimalist theme configuration
3. Synchronization System
- Local Script: sync.ps1 in Quartz directory
- Workflow:
- git pull (get latest changes)
- git add . (stage all modifications)
- git commit -m “Sync: timestamp”
- git push (push to GitHub)
- Automation: Cloudflare Pages auto-deploys on GitHub pushes
📁 File Structure
C:\quartz-portfolio\ ├─ quartz.config.yaml ← **Critical: YAML format required** ├─ sync.ps1 ← Synchronization script ├─ package.json └─ content/ ← SYMLINK to Obsidian vault ├─ Index.md ← Main hub ├─ Hacking.md ← Cybersecurity MOC ├─ AI_Engineering.md ← AI & automation MOC ├─ Satellite_Operations.md ← Satellite comms MOC ├─ System_Architecture.md ← Technical documentation └─ Website_Setup.md ← This document
🔄 Sync & Deployment Process
Method A: Local Updates (Recommended)
- Edit files in your Obsidian vault
- Run the sync script: cd C:\quartz-portfolio && .\sync.ps1
- The script handles:
- Pulling latest changes from GitHub
- Staging all file modifications
- Committing with timestamp
- Pushing to GitHub
- Cloudflare Pages automatically detects the push and rebuilds the site
Method B: Remote Updates via GitHub Web UI
- Go to: https://github.com/[your-username]/[repo-name]
- Navigate to the file you want to edit
- Click the pencil icon to edit
- Make your changes
- Scroll down and click “Commit changes”
- Add a commit message and confirm
- Cloudflare Pages automatically detects the push and rebuilds the site
🌐 Cloudflare Pages Configuration
Build Settings (Critical!)
- Framework: None (Static site)
- Build command: px quartz build —no-serve
- Build output directory: public
- Root directory: Leave completely BLANK/empty ⚠️
Custom Domain Setup
- In Cloudflare Pages dashboard → Settings → Custom domains
- Add potatosociety.uk (and optionally www.potatosociety.uk)
- Since domain is already on Cloudflare DNS:
- Automatic DNS configuration
- Automatic SSL certificate provisioning
- Enable:
- “Always use HTTPS”
- “Automatic HTTPS Rewrites”
- “Deploy on every push to main branch”
🛠️ Maintenance & Troubleshooting
Regular Maintenance
- Run .\sync.ps1 periodically to keep GitHub updated
- Monitor Cloudflare Pages build logs for errors
- Update Quartz version occasionally: pm update @jackyzha0/quartz
Common Issues & Solutions
”Site shows 404 or wrong content”
- Verify Cloudflare Pages build completed successfully
- Check build logs for Quartz errors
- Ensure quartz.config.yaml is valid YAML
- Confirm symlink is intact: dir C:\quartz-portfolio\content
”Changes not appearing on site”
- Run .\sync.ps1 to push local changes to GitHub
- Check GitHub repository for latest commit
- Verify Cloudflare Pages triggered a rebuild
- Clear browser cache (Ctrl+F5 / Cmd+Shift+R)
“Build fails in Cloudflare Pages”
- Test locally first: cd C:\quartz-portfolio && npx quartz build —no-serve
- Check for YAML syntax errors in quartz.config.yaml
- Verify all required plugins are present
- Ensure Node.js version is compatible (v18+ recommended)
🔗 Related Documentation
- Main Hub - Navigation to all sections
- Technical Architecture - Deeper technical details
- Cybersecurity MOC - Security knowledge base
- AI Engineering MOC - AI & automation knowledge
- Satellite Operations MOC - Comms & project management
📱 Access & Usage
- Primary URL: https://potatosociety.uk
- Local Preview: cd C:\quartz-portfolio && npx quartz watch
- Source: GitHub repository at github.com/[your-username]/[repo-name]
- Updates: Automatic via GitHub push → Cloudflare Pages rebuild
Last updated: 2026-09-04 Part of The Potato Society digital garden *Built with Quartz v5 • Hosted on Cloudflare Pages • Synced via GitHub