Skip to content
 
 

Repository files navigation

Dockerized Quartz

Note: This is a fork of the original dockerized-quartz repository. This fork has been created to add support for multi-platform Docker images (linux/amd64, linux/arm64).

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: vasujain275/dockerized-quartz # Multi platform image
        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! 🚀

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages