Ancient-Backup
A all-in-one backup system for your minecraft server!
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Ancient-Backup
🛡️ Ancient-Backup
The most advanced backup solution for Minecraft servers
---
✨ Features
🚀 High-Performance Compression
- Streaming Mode: 3-5x faster than traditional ZIP with better compression ratios - Streaming Mode: Balance between speed and file size (0-9) - Streaming Mode: Compress and upload simultaneously with zero local disk usage
📤 Multiple Upload Destinations
- Google Drive - Secure FTP with SSH encryption (recommended) - Google Drive - FTP over TLS/SSL - Google Drive - Microsoft Graph API integration - Google Drive - Direct cloud upload support
🔄 Smart Upload Management
- Upload Retry: Upload to multiple destinations simultaneously - Upload Retry: Automatically resume interrupted uploads (SFTP/FTPS) - Upload Retry: Reduces backup speed if server TPS drops to prevent lag - Upload Retry: Manual `/abackup uploadlast` command to retry failed uploads
📊 Real-Time Progress Tracking
- Speed Monitoring: See compression and upload progress every 5 seconds - Speed Monitoring: Beautiful embeds with progress bars and statistics - Speed Monitoring: Real-time MB/s tracking for uploads and compression
🎯 Advanced Features
- Staff Notifications: Skip large folders like dynmap tiles or BlueMap renders using glob patterns - Staff Notifications: Keep only the last N backups on remote servers - Staff Notifications: Run backups every X minutes or at specific times daily - Staff Notifications: Automatically disables auto-save during backups to prevent corruption - Staff Notifications: Automatic RAM cleanup after backups complete - Staff Notifications: In-game notifications for players with permission
🔒 Security & Reliability
- Cancellable Backups: Verify SFTP server fingerprints to prevent MITM attacks - Cancellable Backups: Use private keys instead of passwords - Cancellable Backups: Encrypted connections for FTPS - Cancellable Backups: Stop backups mid-process with `/abackup cancel`
---
📋 Requirements
- Permissions: Paper/Spigot/Bukkit 1.20.6+ - Permissions: 21 or higher - Permissions: `ancientbackup.admin` for commands, `ancientbackup.notify` for notifications
---
🚀 Quick Start
Installation
1. Download the latest version from Modrinth 2. Place the JAR file in your `plugins/` folder 3. Restart your server 4. Configure `plugins/Ancient-Backup/config.yml`
Basic Configuration
```yaml backup: use-zstd: true # Enable ZSTD compression (recommended) zip-level: 1 # 1 = fast, 9 = smallest file
schedule: enabled: true # Enable automatic backups every-minutes: 360 # Backup every 6 hours
upload: sftp: enabled: true host: "your-server.com" port: 22 username: "backup-user" password: "your-password" remote-folder: "/backups/minecraft" ```
First Backup
Run your first backup with: ``` /abackup start ```
Check status with: ``` /abackup status ```
---
📦 Commands
| Command | Permission | Description | |---------|-----------|-------------| | `/abackup start` | `ancientbackup.admin` | Start a new backup | | `/abackup cancel` | `ancientbackup.admin` | Cancel the running backup | | `/abackup status` | `ancientbackup.admin` | Check backup progress | | `/abackup uploadlast` | `ancientbackup.admin` | Retry uploading the last backup | | `/abackup reload` | `ancientbackup.admin` | Reload configuration |
---
🎨 Discord Integration
Get beautiful real-time updates in Discord:
```yaml discord: enabled: true webhook-url: "https://discord.com/api/webhooks/..." notifications: on-backup-start: true on-zip-complete: true on-upload-start: true on-upload-complete: true on-backup-complete: true ```
Features: - 📊 Color-coded embeds for different phases - 📈 Visual progress bars - ⚡ Real-time speed and ETA - 🎯 Step-by-step progress tracking (1/5, 2/5, etc.)
---
⚙️ Advanced Configuration
File Exclusions
Exclude large folders to reduce backup size:
```yaml backup: exclude: - "logs/*.gz" - "logs/*.log.*" - "plugins/dynmap/web/tiles//cache/" - "/cache/" ```
Streaming Mode
Compress and upload simultaneously (no local file):
```yaml upload: streaming-compression: true # Requires SFTP or FTPS ```
Benefits: - ⚡ Faster overall backup time - 💾 No local disk space usage - 🔄 Real-time progress updates
Limitations: - ⚠️ Retention policies not supported in streaming mode - 📍 Requires SFTP or FTPS destination
Performance Tuning
Optimize for your server:
```yaml performance: max-memory-mb: 512 # Maximum RAM usage max-buffer-kb: 8192 # Buffer size for compression gc-after-zip: true # Free memory after compression cleanup-after-backup: true # Full memory cleanup tps-threshold: 18.0 # Slow down if TPS drops below this ```
Retention Policies
Automatically delete old backups:
```yaml retention: enabled: true keep-last: 7 # Keep only the last 7 backups filename-prefix: "backup-" # Filter files by prefix filename-suffix: ".tar.zst" # Filter files by extension ```
---
🔐 SSH Key Authentication
For enhanced security, use SSH keys instead of passwords:
1. Generate an SSH key: ```bash ssh-keygen -t ed25519 -f ~/.ssh/minecraft_backup ```
2. Add the public key to your server: ```bash ssh-copy-id -i ~/.ssh/minecraft_backup.pub [email protected] ```
3. Configure Ancient-Backup: ```yaml sftp: private-key-path: "plugins/Ancient-Backup/minecraft_backup" password: "" # Leave empty when using key auth ```
---
📊 Performance
Benchmark Results
Tested on a 10GB Minecraft server with Paper 1.21.10:
| Method | Time | CPU Usage | Disk I/O | |--------|------|-----------|----------| | ZIP Level 9 | 2m 15s | Low | Minimal | | ZIP Level 9 | 6m 30s | Medium | Medium | | ZIP Level 9 | 12m 45s | High | High |
Streaming Mode: Reduces total backup time by 30-40% compared to traditional mode.
---
🐛 Troubleshooting
No progress output?
- Ensure you're using the latest version - Check that your upload destination is properly configured - Look for error messages in the console
Upload fails?
- Use `/abackup uploadlast` to retry - Check network connectivity and credentials - Enable debug logging in config.yml
Server lags during backup?
- Lower `performance.max-buffer-kb` to reduce memory usage - Reduce `backup.zip-level` to use less CPU - Set `performance.tps-threshold` higher to trigger throttling sooner
Discord notifications not working?
- Verify webhook URL is correct - Test webhook manually using curl or online tools - Check that `discord.enabled: true`
---
🤝 Support
- Documentation: Documentation - Documentation: Join our %%MD1%% - Documentation: %%MD2%%
---
📝 License
This plugin is released under the MIT License. See LICENSE for details.
---
⭐ Support the Project
If you find Ancient-Backup useful, please consider: - ⭐ Starring the project on GitHub - 📢 Sharing it with other server owners - 💬 Leaving a review on Modrinth - ☕ Supporting development
---
Made with ❤️ for the Minecraft community