Two clearly-labeled install methods at the top of the README so users know how to get the plugin without scrolling: - WordPress Admin GUI: 3-step ZIP upload - WP-CLI one-liner with --activate flag Both link directly to the v1.0.0 release ZIP on Gitea.
TigerStyle Life9 - WordPress Backup Plugin
Because cats have 9 lives, but servers don't - so they need backup-restore! 🐱⚡
A purr-fectly modern, secure WordPress backup and restore plugin built with Alpine.js, Astro, and enterprise-grade security practices. Created as a secure replacement for XCloner after identifying critical vulnerabilities. Now with 100% more cat personality! 🐾
📦 Installation
Latest release: v1.0.0 · All releases
Via WordPress Admin (GUI)
- Download tigerstyle-life9-1.0.0.zip
- In WordPress admin: Plugins → Add New → Upload Plugin, pick the ZIP
- Click Activate Plugin — settings appear under TigerStyle Life9 in the sidebar
Via WP-CLI (terminal)
wp plugin install \
https://git.supported.systems/tigerstyle/tigerstyle-life9/releases/download/v1.0.0/tigerstyle-life9-1.0.0.zip \
--activate
Requires: WordPress 5.0+ · PHP 7.4+ · An S3-compatible storage backend for backups
🐾 Why TigerStyle Life9?
Because your website deserves nine lives!
Just like cats always land on their feet, TigerStyle Life9 ensures your website always bounces back from disasters. Our feline-inspired backup system provides:
- 🏠 Territory Mapping: Smart scanning identifies what matters most in your digital domain
- 🛡️ Nine Lives Protection: Multiple restore points for ultimate safety - just like a cat!
- ⚡ Cat Reflexes: Lightning-fast backup and recovery operations with feline speed
- 🔒 Stealth Security: Military-grade encryption keeps your data safe like a cat stalking prey
- 🎯 Hunter Precision: Exactly what you need, when you need it - no wasted movements
✨ Cat-Powered Features
🛡️ Nine Lives Protection System
- Stealth Mode Encryption: Military-grade AES-256-GCM that guards your secrets like a cat in the shadows
- Territory Defense: Prevents path traversal attacks with comprehensive input validation
- Memory Protection: All database queries use prepared statements - no SQL injection can sneak past our cat reflexes
- Hunter's Patience: Rate limiting prevents attacks with the patience of a cat stalking prey
- Pack Leadership: Capability-based permissions with 2FA support for the alpha cats
📦 Life Saver Engine
- Real-time stalking: Live progress updates via Server-Sent Events as we hunt through your files
- Multiple lairs: Store your treasures locally, in Amazon S3 cloud hideouts, or Google Drive dens
- Territory mapping: Smart file scanning with configurable exclude patterns - we know what to ignore
- Efficient packing: Multiple compression levels with archive splitting for easy transport
- Life verification: Checksum validation ensures every saved life is purrfect
🎨 Cat-Friendly Interface
- Lightning reflexes: Alpine.js reactivity with the speed of a pouncing cat
- Modern architecture: Astro-powered pages that are as sleek as a cat's movement
- Adaptive design: Mobile-first, accessibility-compliant - works on any device a cat might walk across
- Instant feedback: Progress bars and status updates with cat personality and emojis
⚙️ Territory Management Features
- Automatic life saving: WordPress cron integration for scheduled backups while you nap
- Multiple formats: ZIP, TAR, SQL exports with configurable compression levels
- Cloud integration: Ready for S3, Google Drive, and custom lair backends
- Communication system: Email alerts and webhook integrations to keep you informed
🚀 Quick Start
Installation
-
Clone or download the plugin to your WordPress plugins directory:
cd /path/to/wordpress/wp-content/plugins/ git clone https://github.com/tigerstyle/life9.git tigerstyle-life9 -
Install dependencies (optional - fallbacks included):
cd tigerstyle-life9 npm install npm run build -
Activate the plugin in WordPress admin under Plugins → Installed Plugins
-
Access the interface via the new "TigerStyle Life9" menu in WordPress admin
Your First Life Save
- Navigate to TigerStyle Life9 → 💾 Save a Life
- Choose your territory protection (Territory Files, Digital Memories, Treasure Collection)
- Enable Nine Lives Protection with stealth mode encryption (highly recommended!)
- Select your backup lair (Home Territory, Cloud Hideout, or Google Den)
- Click 🐾 Pounce! Save This Life and watch the cat-powered progress tracking
📋 System Requirements
WordPress
- WordPress: 5.0 or higher
- PHP: 7.4 or higher
- MySQL: 5.6 or higher
PHP Extensions
openssl- For encryption functionalityzip- For archive creationjson- For data serializationmysqli- For database operationscurl- For remote storage APIs (optional)
Server Requirements
- Memory: 512MB minimum (1GB recommended)
- Disk Space: Varies by backup size
- Execution Time: Configurable (default: 300 seconds)
🏗️ Architecture
Core Components
tigerstyle-life9/
├── tigerstyle-life9.php # Main plugin file
├── includes/ # Core PHP classes
│ ├── class-security.php # Security management
│ ├── class-backup-engine.php # Backup orchestration
│ ├── class-storage-manager.php # Storage abstraction
│ ├── class-admin.php # WordPress admin integration
│ └── storage/ # Storage backends
├── src/astro/ # Frontend components
│ ├── pages/ # Admin interface pages
│ ├── components/ # Reusable components
│ └── layouts/ # Page layouts
├── admin/assets/ # Compiled assets
└── build-tools/ # Development scripts
Security Architecture
graph TD
A[User Request] --> B[Security Layer]
B --> C{Authentication}
C -->|Valid| D[Input Validation]
C -->|Invalid| E[Access Denied]
D --> F{Sanitization}
F -->|Clean| G[Business Logic]
F -->|Unsafe| H[Request Rejected]
G --> I[Encryption Layer]
I --> J[Storage Backend]
Data Flow
sequenceDiagram
participant U as User
participant A as Admin Interface
participant B as Backup Engine
participant S as Storage Backend
participant E as Encryption
U->>A: Start Backup
A->>B: Create Backup Job
B->>E: Encrypt Files
E->>S: Store Encrypted Data
S-->>B: Progress Updates
B-->>A: SSE Progress Events
A-->>U: Real-time Updates
🔧 Configuration
Basic Settings
Access TigerStyle Life9 → Settings to configure:
- Security: Encryption algorithms, access controls, rate limits
- Storage: Default backends, retention policies, cleanup rules
- Scheduling: Automatic backup frequency and retention
- Notifications: Email alerts, webhook integrations
Environment Variables
Create a .env file for advanced configuration:
# Security
TIGERSTYLE_ENCRYPTION_KEY=your-master-key-here
TIGERSTYLE_RATE_LIMIT_REQUESTS=100
TIGERSTYLE_RATE_LIMIT_PERIOD=3600
# Storage
TIGERSTYLE_DEFAULT_STORAGE=local
TIGERSTYLE_S3_BUCKET=your-bucket-name
TIGERSTYLE_S3_REGION=us-east-1
# Performance
TIGERSTYLE_MEMORY_LIMIT=1024M
TIGERSTYLE_TIME_LIMIT=600
TIGERSTYLE_CHUNK_SIZE=8192
Advanced Configuration
Custom Storage Backend
class Custom_Storage_Backend extends TigerStyle_Life9_Storage_Backend {
public function store($file_path, $config = []) {
// Implement custom storage logic
return [
'url' => $remote_url,
'remote_path' => $remote_path,
'storage_id' => $storage_id
];
}
public function retrieve($remote_path, $local_path, $config = []) {
// Implement retrieval logic
return true;
}
}
// Register the backend
add_filter('tigerstyle_life9_storage_backends', function($backends) {
$backends['custom'] = new Custom_Storage_Backend();
return $backends;
});
Custom Exclude Patterns
add_filter('tigerstyle_life9_default_excludes', function($patterns) {
$patterns[] = 'custom-cache/*';
$patterns[] = '*.tmp';
$patterns[] = 'node_modules/*';
return $patterns;
});
🔌 API Reference
REST API Endpoints
All endpoints require authentication and proper capabilities.
Create Backup
POST /wp-json/tigerstyle-life9/v1/backup
Content-Type: application/json
{
"include_files": true,
"include_database": true,
"encryption": {
"enabled": true,
"password": "secure-password"
},
"storage": {
"type": "local"
}
}
Get Backup Status
GET /wp-json/tigerstyle-life9/v1/backup/{backup_id}/status
List Backups
GET /wp-json/tigerstyle-life9/v1/backups?limit=10&offset=0
WordPress Hooks
Actions
// Before backup starts
do_action('tigerstyle_life9_backup_started', $backup_id, $config);
// After backup completes
do_action('tigerstyle_life9_backup_completed', $backup_id, $result);
// Before restore starts
do_action('tigerstyle_life9_restore_started', $restore_id, $backup_id);
// After restore completes
do_action('tigerstyle_life9_restore_completed', $restore_id, $result);
Filters
// Modify backup configuration
$config = apply_filters('tigerstyle_life9_backup_config', $config, $backup_id);
// Add storage backends
$backends = apply_filters('tigerstyle_life9_storage_backends', $backends);
// Modify exclude patterns
$patterns = apply_filters('tigerstyle_life9_exclude_patterns', $patterns);
🧪 Testing
Running Tests
# Install test dependencies
composer install --dev
# Run PHP unit tests
vendor/bin/phpunit
# Run integration tests
vendor/bin/phpunit --testsuite=integration
# Run security tests
npm run test:security
Manual Testing
- Create test backups with different configurations
- Test restore functionality on a staging site
- Verify encryption by examining backup files
- Test storage backends with actual cloud services
- Load test with large sites and files
🔒 Security Considerations
Best Practices
- Use strong encryption passwords (12+ characters, mixed case, symbols)
- Store backups off-site for disaster recovery
- Test restore procedures regularly
- Monitor backup logs for suspicious activity
- Keep the plugin updated for security patches
Security Features
- Input validation on all user inputs
- Output escaping for XSS prevention
- Nonce verification for CSRF protection
- Capability checks for authorization
- Secure file handling with path validation
- Encrypted storage of sensitive settings
🚨 Troubleshooting
Common Issues
"Permission Denied" Errors
# Check WordPress file permissions
sudo chown -R www-data:www-data /path/to/wordpress/
sudo chmod -R 755 /path/to/wordpress/wp-content/uploads/
"Memory Limit" Errors
// In wp-config.php
ini_set('memory_limit', '1024M');
set_time_limit(600);
"Backup Failed" Errors
- Check PHP error logs
- Verify disk space availability
- Test file permissions
- Review exclude patterns
Debug Mode
Enable debug mode for detailed logging:
// In wp-config.php
define('TIGERSTYLE_LIFE9_DEBUG', true);
define('WP_DEBUG_LOG', true);
Check logs at: wp-content/debug.log
🤝 Contributing
Development Setup
-
Clone the repository:
git clone https://github.com/tigerstyle/life9.git cd life9 -
Install dependencies:
npm install composer install -
Set up development environment:
npm run dev # Start Astro dev server
Code Standards
- PHP: Follow WordPress Coding Standards
- JavaScript: ESLint with Airbnb config
- CSS: BEM methodology with CSS custom properties
- Documentation: PHPDoc for all methods
Pull Request Process
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Update documentation
- Submit a pull request
📄 License
GPL v2 or later - see LICENSE file.
🙏 Acknowledgments
- WordPress Community for the excellent platform
- Astro Team for the modern build system
- Alpine.js Community for the reactive framework
- Security Researchers who identified XCloner vulnerabilities
📞 Support
- Documentation: https://docs.tigerstyle.com/life9
- Issues: GitHub Issues
- Community: WordPress.org Support Forum
- Enterprise: enterprise@tigerstyle.com
Built with ❤️ by TigerStyle Development
Remember: Cats have 9 lives, but servers don't - backup responsibly! 🐱💾