Sanitized mirror from private repository - 2026-03-21 11:39:16 UTC
This commit is contained in:
165
scripts/upload-to-dokuwiki.sh
Executable file
165
scripts/upload-to-dokuwiki.sh
Executable file
@@ -0,0 +1,165 @@
|
||||
#!/bin/bash
|
||||
# Upload documentation to DokuWiki
|
||||
# Usage: ./upload-to-dokuwiki.sh
|
||||
|
||||
DOKUWIKI_BASE="http://atlantis.vish.local:8399"
|
||||
REPO_ROOT="/home/homelab/organized/repos/homelab"
|
||||
|
||||
echo "🚀 Starting DokuWiki documentation upload..."
|
||||
|
||||
# Function to convert basic Markdown to DokuWiki syntax
|
||||
convert_md_to_dokuwiki() {
|
||||
local input_file="$1"
|
||||
local temp_file=$(mktemp)
|
||||
|
||||
# Basic conversions
|
||||
sed -e 's/^# \(.*\)/====== \1 ======/g' \
|
||||
-e 's/^## \(.*\)/===== \1 =====/g' \
|
||||
-e 's/^### \(.*\)/==== \1 ====/g' \
|
||||
-e 's/^#### \(.*\)/=== \1 ===/g' \
|
||||
-e 's/^##### \(.*\)/== \1 ==/g' \
|
||||
-e 's/\*\*\([^*]*\)\*\*/\*\*\1\*\*/g' \
|
||||
-e 's/\*\([^*]*\)\*/\/\/\1\/\//g' \
|
||||
-e 's/`\([^`]*\)`/%%\1%%/g' \
|
||||
-e 's/^- \(.*\)/ \* \1/g' \
|
||||
-e 's/^\([0-9]\+\)\. \(.*\)/ - \2/g' \
|
||||
-e 's/- \[x\] \(.*\)/ \* ✅ \1/g' \
|
||||
-e 's/- \[ \] \(.*\)/ \* ☐ \1/g' \
|
||||
"$input_file" > "$temp_file"
|
||||
|
||||
echo "$temp_file"
|
||||
}
|
||||
|
||||
# Function to create DokuWiki page
|
||||
create_dokuwiki_page() {
|
||||
local page_id="$1"
|
||||
local content_file="$2"
|
||||
local summary="$3"
|
||||
|
||||
echo "📄 Creating page: $page_id"
|
||||
|
||||
# Try to create the page using curl
|
||||
curl -s -X POST "$DOKUWIKI_BASE/doku.php" \
|
||||
-d "id=$page_id" \
|
||||
-d "do=save" \
|
||||
-d "summary=$summary" \
|
||||
-d "minor=1" \
|
||||
--data-urlencode "wikitext@$content_file" \
|
||||
> /dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ Successfully created: $page_id"
|
||||
echo "🌐 View at: $DOKUWIKI_BASE/doku.php?id=$page_id"
|
||||
return 0
|
||||
else
|
||||
echo "❌ Failed to create: $page_id"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Create main index page
|
||||
echo ""
|
||||
echo "📋 Creating main homelab index page..."
|
||||
cat > /tmp/homelab_index.txt << 'EOF'
|
||||
====== Homelab Documentation ======
|
||||
|
||||
//This documentation is automatically mirrored from the homelab Git repository//
|
||||
|
||||
===== Quick Navigation =====
|
||||
|
||||
* [[homelab:readme|Main README]] - Repository overview and quick start
|
||||
* [[homelab:docs:index|Documentation Index]] - Complete navigation guide
|
||||
* [[homelab:docs:admin:gitops_comprehensive_guide|GitOps Deployment Guide]] - Complete deployment procedures
|
||||
* [[homelab:documentation_audit_report|Documentation Audit Report]] - Recent improvements
|
||||
* [[homelab:operational_status|Operational Status]] - Current system status
|
||||
* [[homelab:monitoring_architecture|Monitoring Architecture]] - Monitoring setup
|
||||
|
||||
===== Infrastructure =====
|
||||
|
||||
* [[homelab:docs:infrastructure:health_report|Infrastructure Health Report]] - System health status
|
||||
* [[homelab:gitops_deployment_guide|GitOps Deployment Guide]] - Deployment procedures
|
||||
|
||||
===== Operations =====
|
||||
|
||||
* [[homelab:docs:runbooks:add_new_service|Add New Service]] - Service deployment runbook
|
||||
|
||||
===== About =====
|
||||
|
||||
This DokuWiki instance mirrors the documentation from the homelab Git repository at https://git.vish.gg/Vish/homelab
|
||||
|
||||
**Last Updated:** $(date)
|
||||
**Source Repository:** https://git.vish.gg/Vish/homelab
|
||||
**GitOps Status:** ✅ 18 active stacks, 50+ containers
|
||||
EOF
|
||||
|
||||
create_dokuwiki_page "homelab:start" "/tmp/homelab_index.txt" "Created homelab documentation index"
|
||||
|
||||
# Convert and upload key documentation files
|
||||
declare -A docs_map=(
|
||||
["$REPO_ROOT/README.md"]="homelab:readme"
|
||||
["$REPO_ROOT/docs/INDEX.md"]="homelab:docs:index"
|
||||
["$REPO_ROOT/docs/admin/GITOPS_COMPREHENSIVE_GUIDE.md"]="homelab:docs:admin:gitops_comprehensive_guide"
|
||||
["$REPO_ROOT/DOCUMENTATION_AUDIT_REPORT.md"]="homelab:documentation_audit_report"
|
||||
["$REPO_ROOT/docs/infrastructure/INFRASTRUCTURE_HEALTH_REPORT.md"]="homelab:docs:infrastructure:health_report"
|
||||
["$REPO_ROOT/docs/runbooks/add-new-service.md"]="homelab:docs:runbooks:add_new_service"
|
||||
["$REPO_ROOT/GITOPS_DEPLOYMENT_GUIDE.md"]="homelab:gitops_deployment_guide"
|
||||
["$REPO_ROOT/OPERATIONAL_STATUS.md"]="homelab:operational_status"
|
||||
["$REPO_ROOT/MONITORING_ARCHITECTURE.md"]="homelab:monitoring_architecture"
|
||||
)
|
||||
|
||||
successful=0
|
||||
total=0
|
||||
|
||||
for file_path in "${!docs_map[@]}"; do
|
||||
page_id="${docs_map[$file_path]}"
|
||||
total=$((total + 1))
|
||||
|
||||
if [ -f "$file_path" ]; then
|
||||
echo ""
|
||||
echo "📄 Converting: $(basename "$file_path")"
|
||||
|
||||
# Convert Markdown to DokuWiki
|
||||
converted_file=$(convert_md_to_dokuwiki "$file_path")
|
||||
|
||||
# Add header with source info
|
||||
temp_with_header=$(mktemp)
|
||||
cat > "$temp_with_header" << EOF
|
||||
====== $(basename "$file_path") ======
|
||||
|
||||
//This page is automatically mirrored from the homelab Git repository//
|
||||
//Last updated: $(date)//
|
||||
//Source: $file_path//
|
||||
|
||||
EOF
|
||||
cat "$converted_file" >> "$temp_with_header"
|
||||
|
||||
# Upload to DokuWiki
|
||||
if create_dokuwiki_page "$page_id" "$temp_with_header" "Updated from repository"; then
|
||||
successful=$((successful + 1))
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -f "$converted_file" "$temp_with_header"
|
||||
else
|
||||
echo "⚠️ File not found: $file_path"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "🎯 Upload Summary:"
|
||||
echo "✅ Successful: $successful/$total"
|
||||
echo "❌ Failed: $((total - successful))/$total"
|
||||
|
||||
if [ $successful -gt 0 ]; then
|
||||
echo ""
|
||||
echo "🌐 DokuWiki documentation available at:"
|
||||
echo " $DOKUWIKI_BASE/doku.php?id=homelab:start"
|
||||
echo " $DOKUWIKI_BASE/doku.php?id=homelab:readme"
|
||||
echo " $DOKUWIKI_BASE/doku.php?id=homelab:docs:index"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -f /tmp/homelab_index.txt
|
||||
|
||||
echo ""
|
||||
echo "✅ DokuWiki upload completed!"
|
||||
Reference in New Issue
Block a user