
🛡️ Ancient-Backup
The most advanced backup solution for Minecraft servers
✨ Features
🚀 High-Performance Compression
- ZSTD Compression: 3-5x faster than traditional ZIP with better compression ratios
- Adjustable Levels: Balance between speed and file size (0-9)
- Streaming Mode: Compress and upload simultaneously with zero local disk usage
📤 Multiple Upload Destinations
- SFTP - Secure FTP with SSH encryption (recommended)
- FTPS - FTP over TLS/SSL
- OneDrive/SharePoint - Microsoft Graph API integration
- Google Drive - Direct cloud upload support
🔄 Smart Upload Management
- Parallel Uploads: Upload to multiple destinations simultaneously
- Resume Support: Automatically resume interrupted uploads (SFTP/FTPS)
- Adaptive Throttling: Reduces backup speed if server TPS drops to prevent lag
- Upload Retry: Manual
/abackup uploadlastcommand to retry failed uploads
📊 Real-Time Progress Tracking
- Live Console Output: See compression and upload progress every 5 seconds
- Discord Webhooks: Beautiful embeds with progress bars and statistics
- Speed Monitoring: Real-time MB/s tracking for uploads and compression
🎯 Advanced Features
- File Exclusions: Skip large folders like dynmap tiles or BlueMap renders using glob patterns
- Automatic Retention: Keep only the last N backups on remote servers
- Flexible Scheduling: Run backups every X minutes or at specific times daily
- World Save Safety: Automatically disables auto-save during backups to prevent corruption
- Memory Management: Automatic RAM cleanup after backups complete
- Staff Notifications: In-game notifications for players with permission
🔒 Security & Reliability
- Strict Host Key Checking: Verify SFTP server fingerprints to prevent MITM attacks
- SSH Key Authentication: Use private keys instead of passwords
- TLS/SSL Support: Encrypted connections for FTPS
- Cancellable Backups: Stop backups mid-process with
/abackup cancel
📋 Requirements
- Server Software: Paper/Spigot/Bukkit 1.20.6+
- Java: 21 or higher
- Permissions:
ancientbackup.adminfor commands,ancientbackup.notifyfor notifications
🚀 Quick Start
Installation
- Download the latest version from Modrinth
- Place the JAR file in your
plugins/folder - Restart your server
- Configure
plugins/Ancient-Backup/config.yml
Basic Configuration
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:
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:
backup:
exclude:
- "logs/*.gz"
- "logs/*.log.*"
- "plugins/dynmap/web/tiles/**"
- "plugins/BlueMap/web/**"
- "**/cache/**"
Streaming Mode
Compress and upload simultaneously (no local file):
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:
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:
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:
Generate an SSH key:
ssh-keygen -t ed25519 -f ~/.ssh/minecraft_backupAdd the public key to your server:
ssh-copy-id -i ~/.ssh/minecraft_backup.pub [email protected]Configure Ancient-Backup:
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 |
|---|---|---|---|
| ZSTD Level 1 | 2m 15s | Low | Minimal |
| ZIP Level 1 | 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 uploadlastto retry - Check network connectivity and credentials
- Enable debug logging in config.yml
Server lags during backup?
- Lower
performance.max-buffer-kbto reduce memory usage - Reduce
backup.zip-levelto use less CPU - Set
performance.tps-thresholdhigher 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
- Issues: GitHub Issues
- Discord: Join our Discord Server
- Documentation: Wiki
📝 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
Ченджлог
2.0.0Релиз1.21.9, 1.21.10, 1.21.11 · 4 января 2026 г.
📜 Changelog
All notable changes to Ancient-Backup will be documented in this file.
[2.0.0] - 2026-01-04
🎉 Added
- Real-time Progress Output: Console and Discord updates every 5 seconds during compression and upload
- Streaming Mode Support: Compress and upload simultaneously without creating local files
- Visual Progress Bars: Beautiful progress bars in Discord embeds using Unicode block characters
- Improved Memory Cleanup: Enhanced garbage collection with detailed logging
- Step-by-Step Progress Tracking: Clear 1/5, 2/5 style progress indicators
- Upload Status Messages: See "In Progress" with elapsed time for streaming uploads
🔧 Changed
- Progress Display: Traditional mode shows percentage + speed, streaming mode shows elapsed time
- Discord Embeds: Restructured with multiple fields for better readability
- Memory Reporting: Shows before/after memory usage and freed MB
- Ticker Initialization: Progress trackers now log when they start
🐛 Fixed
- Progress Ticker: Fixed issue where upload progress wasn't displayed in streaming mode
- Speed Calculation: Removed broken speed display from streaming mode
- Memory Cleanup: Added proper GC timing with
runFinalization()call - Emoji Corruption: Removed problematic Unicode emoji characters from code
🗑️ Removed
- Duplicate Discord Notifications: Cleaned up redundant webhook calls
[1.4.0] - 2025-12-15
🎉 Added
- ZSTD Compression: 3-5x faster than DEFLATE with better compression ratios
- File/Folder Exclusions: Skip specific files or folders using glob patterns
- Upload Resume Support: Automatically resume interrupted uploads (SFTP/FTPS)
- Compression Streaming: Upload while compressing for faster backups
- Strict Host Key Checking: SFTP fingerprint verification for security
- World Save Safety: Auto-save disabled during backups to prevent corruption
- Adaptive Throttling: Automatically slow down if server TPS drops
- Memory Budget System: Smart memory management to prevent out-of-memory errors
🔧 Changed
- Archive Format: ZSTD uses TAR format (.tar.zst) instead of ZIP
- Configuration: New options for all features added
- Performance: Optimized buffer sizes and memory usage
🐛 Fixed
- World Corruption: Fixed rare issue where backups could corrupt world files
- Memory Leaks: Improved cleanup of compression buffers
- SFTP Timeouts: Better connection timeout handling
[1.3.0] - 2025-10-20
🎉 Added
- Google Drive Support: Direct upload to Google Drive using service accounts
- OneDrive/SharePoint Support: Upload to Microsoft cloud via Graph API
- Parallel Uploads: Upload to multiple destinations simultaneously
- Progress Notifications: In-game notifications for staff members
- Retention Policies: Automatically delete old backups on remote servers
🔧 Changed
- Discord Webhooks: Enhanced embed design with color coding
- Configuration: Reorganized for better clarity
- Performance: Improved upload speed calculation
🐛 Fixed
- FTPS Compatibility: Fixed issues with some FTPS servers
- Thread Safety: Resolved race conditions in parallel uploads
[1.2.0] - 2025-08-10
🎉 Added
- Discord Integration: Real-time backup notifications via webhooks
- Schedule System: Run backups at specific times or intervals
- Upload Last Command: Retry failed uploads without re-creating the backup
- Configurable Timeouts: Customize connection and upload timeouts
🔧 Changed
- Command Structure: Simplified command syntax
- Error Messages: More descriptive error reporting
- Logging: Enhanced debug information
🐛 Fixed
- Scheduler Issues: Fixed bugs with daily at-time scheduling
- SFTP Paths: Better handling of remote folder creation
[1.1.0] - 2025-06-05
🎉 Added
- FTPS Support: Upload backups via FTP over TLS/SSL
- Compression Levels: Choose ZIP compression level (0-9)
- Status Command: Check backup progress with
/abackup status - Cancel Command: Stop running backups with
/abackup cancel
🔧 Changed
- SFTP Implementation: Switched to JSch library for better compatibility
- File Naming: Added timestamp format configuration
🐛 Fixed
- Permission Issues: Fixed remote folder creation permissions
- Upload Progress: Corrected progress percentage calculation
[1.0.0] - 2025-04-01
🎉 Initial Release
- Basic Backup Functionality: Create ZIP archives of server files
- SFTP Upload: Upload backups to remote SFTP servers
- Automatic Scheduling: Run backups on a timer
- Configuration System: YAML-based configuration
- Command Interface: Basic admin commands
- Permission System:
ancientbackup.adminpermission
Legend
- 🎉 Added for new features
- 🔧 Changed for changes in existing functionality
- 🐛 Fixed for bug fixes
- 🗑️ Removed for removed features
- 🔒 Security for security fixes
- ⚠️ Deprecated for soon-to-be removed features
Upgrade Notes
Upgrading to 2.0.x
- ZSTD Compression: Set
backup.use-zstd: trueto enable (recommended) - Streaming Mode: Enable with
upload.streaming-compression: true(optional) - Exclusions: Add folders to exclude in
backup.excludelist - Memory Settings: Review
performance.cleanup-after-backupsetting
Upgrading to 1.3.x
- Cloud Providers: New configuration sections for Google Drive and OneDrive
- Parallel Uploads: Enabled by default, disable with
upload.parallel: false - Retention: Configure in
retentionsection if desired
Upgrading to 1.2.x
- Discord: Add
discordsection to config for webhook notifications - Scheduler: Old scheduler format still compatible but deprecated
For detailed documentation, visit our Wiki
1.4.3Релиз1.21.9, 1.21.10, 1.21.11 · 14 декабря 2025 г.
📦 Ancient-Backup — v1.4.3
🚀 Overview
Ancient-Backup v1.4.3 is a fully asynchronous, performance-aware backup solution for Minecraft 1.20+ servers, designed to create complete server backups while remaining lag-free, memory-safe, and highly configurable.
This release focuses heavily on memory control, stability, and production-readiness, while offering advanced upload destinations and detailed monitoring.
🧠 Performance & Memory Management
- Added a soft memory budget system to prevent excessive RAM usage.
- ZIP and upload buffers dynamically scale based on available memory.
- Automatic best-effort garbage collection after ZIP creation when memory pressure is detected.
- Memory is also cleaned up after uploads finish.
- Prevents memory from continuously growing during large backups.
- Designed to respect server load and avoid TPS drops.
New performance config options:
max-memory-mbmax-buffer-kbmin-buffer-kbmax-chunk-mbcleanup-after-backupgc-after-zip
⚠️ Note: Java plugins cannot hard-limit JVM memory per plugin. Ancient-Backup enforces soft limits by reducing buffers, chunk sizes, and parallelism.
☁️ Backup Destinations
Supports secure, encrypted uploads to:
- SFTP
- FTPS (Explicit & Implicit TLS)
- Microsoft Graph
- OneDrive
- SharePoint
- Google Drive
Upload Features
- Parallel uploads (configurable).
- Automatic remote folder creation.
- Upload speed tracking (MB/s).
- Destination-side retention policy (old backups are removed remotely).
- Ability to retry uploading the last local backup if a previous upload failed.
- Local backup is automatically deleted after a successful upload.
📊 Monitoring & Feedback
/abackup statusshows:- ZIP progress (%)
- Upload progress (%)
- Current upload speed (MB/s)
- Live upload speed updates in the server console (updated continuously).
- No in-game spam.
- Permission-based notifications for staff/admins.
⏱ Scheduling & Automation
- Fully automatic scheduled backups.
- Manual backup start and cancel commands.
- Graceful cancellation during ZIP or upload phases.
- Automatically adapts resource usage based on server load.
🔔 Notifications
- Discord Webhook support
- Backup start
- ZIP completed
- Upload start
- Upload completed
- Failure
- Cancellation
- Fully configurable per event.
- Custom username and avatar support.
🛠 Fixes & Stability Improvements
- Fixed multiple compilation issues from earlier builds.
- Fixed duplicated memory tracking methods.
- Fixed GraphUploader initialization bugs.
- Improved internal memory accounting accuracy.
- Improved config reload reliability.
- Ensured all upload options are disabled by default.
🧩 Compatibility
- Minecraft 1.20+
- Java 21
- Paper / Spigot compatible
- Gradle-based build
🔒 Design Philosophy
Ancient-Backup is built to:
- Never block the main server thread.
- Avoid lag at all costs.
- Prefer slightly slower backups over server instability.
- Clean up all resources after each run.
- Be safe for large, long-running production servers.
📌 Recommended Configuration (Example)
performance:
max-memory-mb: 512
max-buffer-kb: 8192
min-buffer-kb: 256
max-chunk-mb: 16
cleanup-after-backup: true
gc-after-zip: true
Комментарии
Загружаем…