name: Deploy Documentation to GitHub Pages on: push: branches: - main # Deploy docs when pushing to main paths: - 'docs/**' # Only run if docs folder changes - 'README.md' # Or if README changes - '.github/workflows/docs.yml' # Or if this workflow changes workflow_dispatch: # Allow manual trigger # Sets permissions to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment concurrency: group: "pages" cancel-in-progress: false env: NODE_VERSION: '24.12.0' jobs: build: name: Build Documentation runs-on: ubuntu-latest timeout-minutes: 10 steps: # Step 1: Get the code - name: 📥 Checkout code uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 # Step 2: Set up Node.js (for building any JS-based doc tools) - name: 🔧 Set up Node.js uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version: ${{ env.NODE_VERSION }} # Step 3: Create a beautiful docs site structure - name: 📝 Build documentation site run: | # Create output directory mkdir -p _site # Copy all markdown files cp README.md _site/ cp -r docs _site/ # Create a simple HTML index that looks nice cat > _site/index.html << 'EOF' Charon - Documentation

🚀 Charon

Make your websites easy to reach - No coding required!

👋 Welcome!

This documentation will help you get started with Charon. Whether you're a complete beginner or an experienced developer, we've got you covered!

📚 Getting Started

🏠 Getting Started Guide Start Here

Your first setup in just 5 minutes! We'll walk you through everything step by step.

Read the Guide →

📖 README Essential

Learn what the app does, how to install it, and see examples of what you can build.

Read More →

📥 Import Guide

Already using Caddy? Learn how to bring your existing configuration into the app.

Import Your Configs →

🔧 Developer Documentation

🔌 API Reference Advanced

Complete REST API documentation with examples in JavaScript and Python.

View API Docs →

💾 Database Schema Advanced

Understand how data is stored, relationships, and backup strategies.

View Schema →

✨ Contributing Guide

Want to help make this better? Learn how to contribute code, docs, or ideas.

Start Contributing →

📋 All Documentation

📚 Documentation Index

Browse all available documentation organized by topic and skill level.

View Full Index →

🆘 Need Help?

Get Support

Stuck? Have questions? We're here to help!

💬 Ask a Question 🐛 Report a Bug ⭐ View on GitHub
EOF # Convert markdown files to HTML using a simple converter npm install -g marked # Convert each markdown file for file in _site/docs/*.md; do if [ -f "$file" ]; then filename=$(basename "$file" .md) marked "$file" -o "_site/docs/${filename}.html" --gfm fi done # Convert README and CONTRIBUTING marked _site/README.md -o _site/README.html --gfm if [ -f "CONTRIBUTING.md" ]; then cp CONTRIBUTING.md _site/ marked _site/CONTRIBUTING.md -o _site/CONTRIBUTING.html --gfm fi # Add simple styling to all HTML files for html_file in _site/*.html _site/docs/*.html; do if [ -f "$html_file" ] && [ "$html_file" != "_site/index.html" ]; then # Add a header with navigation to each page temp_file="${html_file}.tmp" cat > "$temp_file" << 'HEADER' Caddy Proxy Manager Plus - Documentation
HEADER # Append original content cat "$html_file" >> "$temp_file" # Add footer cat >> "$temp_file" << 'FOOTER'
FOOTER mv "$temp_file" "$html_file" fi done echo "✅ Documentation site built successfully!" # Step 4: Upload the built site - name: 📤 Upload artifact uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4 with: path: '_site' deploy: name: Deploy to GitHub Pages environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest timeout-minutes: 5 needs: build steps: # Deploy to GitHub Pages - name: 🚀 Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 # Create a summary - name: 📋 Create deployment summary run: | echo "## 🎉 Documentation Deployed!" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "Your documentation is now live at:" >> $GITHUB_STEP_SUMMARY echo "🔗 ${{ steps.deployment.outputs.page_url }}" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "### 📚 What's Included" >> $GITHUB_STEP_SUMMARY echo "- Getting Started Guide" >> $GITHUB_STEP_SUMMARY echo "- Complete README" >> $GITHUB_STEP_SUMMARY echo "- API Documentation" >> $GITHUB_STEP_SUMMARY echo "- Database Schema" >> $GITHUB_STEP_SUMMARY echo "- Import Guide" >> $GITHUB_STEP_SUMMARY echo "- Contributing Guidelines" >> $GITHUB_STEP_SUMMARY