Skip to content

Latest commit

 

History

History
89 lines (66 loc) · 3.65 KB

Readme.md

File metadata and controls

89 lines (66 loc) · 3.65 KB

Dockerized Quartz

Quartz (v4) is a lightweight static site generator that helps you host your digital garden with minimal setup. This project provides an automated, Dockerized solution to build and serve Quartz sites effortlessly. Simply mount your Obsidian Vault as a Docker volume, and Quartz will handle the rest!

Features

  • 🚀 Minimal Configuration: Simply plug in your existing Obsidian Vault as a Docker bind volume.

  • 🔄 Automated Builds: Rebuilds automatically after a set delay when notes in your Docker volume change.

  • 🔗 Webhook Trigger: Trigger builds by sending a POST request to a secret URL.

  • 📢 Notifications: Get notified on build start, success, or failure.

  • 📦 Default or Custom Quartz Repository: If none present, container will clone the Quartz repo on startup or you can provide your own customized Quartz.

  • 🔒 Support for Private Repositories: Keep your Quartz config private.

  • 🌐 NGINX Web Server: Served with NGINX, with basic configuration that can be extended.

Quick Start

To quickly get started with Quartz in Docker create docker-compose.yml file:

  1. Edit compose file:
    version: '3.8'
    services:
        quartz:
            image: shommey/dockerized-quartz
            container_name: quartz-notes
            environment:
            # Use your custom Quartz repo or leave blank for the default Quartz repo
            # GIT_REPO: "https://github.com/yourusername/your-quartz-site.git"
            
            # Optional: specify a branch to checkout
            # GIT_BRANCH: "v4"
            
            # Optional: Update delay after which quartz build will trigger, default 300 seconds
            BUILD_UPDATE_DELAY: 120
    
            # Optional: Auto rebuild Quartz after change in Obsidian Vault 
            AUTO_REBUILD: true
            volumes:
            # Mount your Obsidian vault for Quartz to read and build the site from
            # If not set it will mount docs
            # - /path/on/host:/vault:ro
            #
            # Optional: Mount existing Quartz repo
            # - /path/on/host:/usr/src/app/quartz
            #
            # Optional: Persist nginx logs if needed
            # - /path/to/nginx/logs:/var/log/nginx
            #
            # Optional: Mount nginx conf
            # - /path/on/host:/etc/nginx
            ports:
            # Map any port on the host to port 80 in the container for web access
            - "80:80"
            restart: unless-stopped
  2. Run it:
    docker compose up -d in the directory.
    Access your Quartz site on http://<YOUR_MACHINE_IP>:<PORT>

For more detailed setups see docs.

Documentation

  1. Overview
  2. Providing Quartz
  3. Importing Obsidian Vault
  4. Enabling Basic Auth
  5. Building From Source
  6. Trigger Rebuild With Webhook
  7. Cron Job Trigger
  8. Notifications Setup

Attribution

This project builds upon and integrates several open-source projects:

  • Quartz v4 – The core static site generator that powers this project.
  • Apprise – Handles notifications for build status updates.
  • NGINX – Serves the generated Quartz site with a configurable web server.

A huge thanks to the maintainers of these projects for their amazing work! 🚀