Перейти к содержимому
Mineforgian

Ancient-Backup

A all-in-one backup system for your minecraft server!

Загрузки
140
Подписчики
2
Обновлён
4 января 2026 г.
Лицензия
MIT

Опубликован 13 декабря 2025 г.

🛡️ Ancient-Backup

The most advanced backup solution for Minecraft servers

Modrinth Downloads Version License


✨ 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 uploadlast command 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.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

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:

  1. Generate an SSH key:

    ssh-keygen -t ed25519 -f ~/.ssh/minecraft_backup
    
  2. Add the public key to your server:

    ssh-copy-id -i ~/.ssh/minecraft_backup.pub [email protected]
    
  3. 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 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


📝 License

This plugin is released under the MIT License. See LICENSE for details.


⭐ Support the Project

If you find Ancient-Backup useful, please consider:


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.admin permission

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: true to enable (recommended)
  • Streaming Mode: Enable with upload.streaming-compression: true (optional)
  • Exclusions: Add folders to exclude in backup.exclude list
  • Memory Settings: Review performance.cleanup-after-backup setting

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 retention section if desired

Upgrading to 1.2.x

  • Discord: Add discord section 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-mb
  • max-buffer-kb
  • min-buffer-kb
  • max-chunk-mb
  • cleanup-after-backup
  • gc-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 status shows:
    • 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

Комментарии

Загружаем…