#!/bin/bash # Wiki.js Backup Script # Creates backups of your wiki database and uploaded assets set -e BACKUP_DIR="backups" DATE=$(date +%Y%m%d_%H%M%S) echo "๐Ÿ”„ Starting Wiki.js backup..." # Create backup directory if it doesn't exist mkdir -p "$BACKUP_DIR" # Check if services are running if ! docker-compose ps | grep -q "Up"; then echo "โŒ Wiki.js services are not running. Please start them first with: docker-compose up -d" exit 1 fi echo "๐Ÿ’พ Backing up database..." # Backup PostgreSQL database docker-compose exec -T db pg_dump -U wikijs wiki > "$BACKUP_DIR/wiki_db_$DATE.sql" echo "๐Ÿ“ Backing up assets and data..." # Backup uploaded assets and wiki data tar -czf "$BACKUP_DIR/wiki_assets_$DATE.tar.gz" -C data assets wiki 2>/dev/null || true # Backup configuration files echo "โš™๏ธ Backing up configuration..." tar -czf "$BACKUP_DIR/wiki_config_$DATE.tar.gz" docker-compose.yml .env README.md 2>/dev/null || true echo "โœ… Backup completed successfully!" echo "๐Ÿ“‚ Backup files created:" echo " - Database: $BACKUP_DIR/wiki_db_$DATE.sql" echo " - Assets: $BACKUP_DIR/wiki_assets_$DATE.tar.gz" echo " - Config: $BACKUP_DIR/wiki_config_$DATE.tar.gz" # Clean up old backups (keep last 7 days) echo "๐Ÿงน Cleaning up old backups (keeping last 7 days)..." find "$BACKUP_DIR" -name "wiki_*" -type f -mtime +7 -delete 2>/dev/null || true echo "๐ŸŽ‰ Backup process complete!"