Deploy
Overview
Automate Quartz static site deployment with integrated Eagle image pre-processing.
This skill uses bundled scripts to:
- •Prepare deployment staging with transformed Eagle images
- •Sync prepared content to Quartz
- •Build and deploy to GitHub Pages
Important: Original notes in 40. Digital Garden/ preserve Eagle file:/// paths. Only staging copies are transformed for deployment.
Prerequisites
Before using this skill, configure your environment:
- •
Create
.envfile in vault root:bashcp .claude/skills/deploy/.env.example .env
- •
Edit
.envand set required variables:- •
EAGLE_LIBRARY_PATH: Path to your Eagle library (e.g.,/Users/username/Documents/Ataraxia.library) - •
QUARTZ_REPO_PATH: Path to your Quartz repository - •
DEPLOY_SITE_URL: Your site URL (e.g.,https://yourdomain.com)
- •
- •
Verify the script can find your configuration:
bash.claude/skills/deploy/scripts/deploy.sh
If missing variables, the script will show clear error messages.
See Configuration for all available options.
Workflow
Run Deployment Script
Execute the bundled deployment script:
.claude/skills/deploy/scripts/deploy.sh
The script automates:
0. Prepare Staging: Creates .deploy-staging/ with Eagle images transformed to /_attachments/ references
- •Content Sync: Syncs transformed content from staging to Quartz
content/ - •Build: Runs
npx quartz buildto generate static site - •Commit Analysis: Analyzes changes with
git diff --stat - •Auto-commit: Generates appropriate commit message and pushes to
v4branch
The script will output:
- •Progress indicators for each step
- •Eagle image processing results
- •Final commit message
- •Deployment confirmation
Source Preservation:
- •Original notes in
40. Digital Garden/keep Eaglefile:///paths - •Staging directory
.deploy-staging/is automatically cleaned up after deployment - •Eagle app continues to work with original notes
On Success: Report to user:
- •Commit hash and message
- •"배포 완료!" confirmation
- •Site URL:
${DEPLOY_SITE_URL}
On Failure (if rollback needed):
cd "${QUARTZ_REPO_PATH}" && git revert HEAD --no-edit && git push "${DEPLOY_GIT_REMOTE}" "${DEPLOY_GIT_BRANCH}"
Configuration
All configuration is managed through environment variables in .env at vault root.
Required Variables
| Variable | Description | Example |
|---|---|---|
EAGLE_LIBRARY_PATH | Path to Eagle library | /Users/username/Documents/Ataraxia.library |
QUARTZ_REPO_PATH | Path to Quartz repository | /Users/username/Documents/Obsidian/Quartz |
DEPLOY_SITE_URL | Deployed site URL | https://yourdomain.com |
Optional Variables
| Variable | Description | Default |
|---|---|---|
DEPLOY_GIT_BRANCH | Target deployment branch | v4 |
DEPLOY_GIT_REMOTE | Git remote name | origin |
Setup
- •
Copy the example configuration:
bashcp .claude/skills/deploy/.env.example .env
- •
Edit
.envin vault root and configure:- •
EAGLE_LIBRARY_PATH: Absolute path to your Eagle library (e.g.,/Users/username/Documents/Ataraxia.library) - •
QUARTZ_REPO_PATH: Absolute path to your Quartz repository - •
DEPLOY_SITE_URL: Your deployed site URL
- •
- •
Optional: Customise git branch/remote if your setup differs
- •
Verify configuration:
bashsource .env && echo "Quartz: $QUARTZ_REPO_PATH" && echo "Site: $DEPLOY_SITE_URL"
Bundled Resources
Scripts
scripts/deploy.sh
- •Main deployment orchestration script
- •Calls
prepare-staging.shto create staging area - •Coordinates sync, build, and git operations
- •Generates appropriate commit messages based on changes
- •Provides clear progress indicators and next steps
scripts/prepare-staging.sh
- •Creates deployment staging area at
40. Digital Garden/.deploy-staging/ - •Copies content from Digital Garden to staging
- •Orchestrates Eagle image processing via
process-eagle-images.mjs - •Validates Eagle library path from environment
scripts/process-eagle-images.mjs
- •Scans staging for Eagle
file:///image references - •Copies images from Eagle library to staging
_attachments/ - •Transforms markdown to use relative
/_attachments/paths - •Generates descriptive filenames from alt text or Eagle ID
Trigger Conditions
This skill activates when the user:
- •Says "배포", "배포해줘", "deploy", "publish"
- •Invokes "/deploy"
- •Requests to "push to production" or "update the site"