Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
Platforms
Links
Tags
Creators
Details
Licensed Apache-2.0
Published 2 days ago
Updated 2 months ago
ASPbackup
Advanced Backup System for Minecraft Spigot Servers
ASPbackup is a comprehensive backup plugin for Spigot/Paper Minecraft servers (1.20.6+) featuring distributed multi-node transfer, checkpoint/resume, integrity verification, and flexible scheduling.
Features
π Backup Management
- Auto-backup on server start and shutdown (configurable)
- Manual backup via in-game commands or console
- Full and incremental backup modes
- Custom source paths with per-source include/exclude filtering
- Multiple target types: Local, NAS, and Remote (distributed)
β‘ Advanced Capabilities
- Interrupt & Resume: Safely stop backups mid-operation and resume from checkpoints
- Integrity Verification: SHA-256 checksums with manifest generation
- Retention Management: Auto-cleanup of old backups
- Disk Space Monitoring: Pre-backup space checks and warnings
π Distributed Transfer
- Multi-node parallel transfer for faster backups
- Load balancing: Round-robin and least-loaded strategies
- Chunked transfer: Large files split into configurable chunks
- Connection pooling: Reusable TCP connections to reduce overhead
- Custom binary protocol: Magic bytes + CRC32 framing for reliability
π Management
- 9 subcommands:
start,stop,status,resume,list,nodes,verify,reload,help - Tab completion for all commands
- Permission-based access control
- Bukkit events for plugin interoperability
π‘οΈ Reliability
- Daily log files with configurable retention
- Error isolation: Backup failures don't crash the server
- Network retry: Automatic retry for failed chunk transfers
- Graceful shutdown: Checkpoints saved on plugin disable
Requirements
- Java 21 or higher
- Spigot/Paper 1.20.6+ (API version 1.20)
- Maven 3.8+ (for building from source)
Quick Start
Plugin Installation
- Download
ASPbackup-1.0.0-SNAPSHOT.jarfrom Releases - Place it in your server's
plugins/folder - Start (or restart) your server
- Edit
plugins/ASPbackup/config.ymlto configure your backup sources and targets - Run
/aspbackup reloadto apply configuration changes
Basic Usage
# Start a manual backup
/aspbackup start --target local
# Check backup status
/aspbackup status
# View backup history
/aspbackup list --all
# Reload configuration
/aspbackup reload
# Show all commands
/aspbackup help
Receiver Setup (Distributed Transfer)
- Download
ASPbackup-receiver-1.0.0-SNAPSHOT.jar - Run on each node:
java -jar ASPbackup-receiver-1.0.0-SNAPSHOT.jar --port 9876 --dir /backups --token your-secure-token - Configure nodes in
plugins/ASPbackup/config.yml:transfer: nodes: - id: "node-1" host: "192.168.1.101" port: 9876 auth-token: "your-secure-token" enabled: true weight: 1
Configuration
The main configuration file is plugins/ASPbackup/config.yml. Key sections:
| Section | Purpose |
|---|---|
backup |
Auto-backup settings, compression, sources, targets, file filters |
schedule |
Periodic backup scheduling with quiet hours |
transfer |
Chunk size, threads, timeouts, retry, load balancing, node list |
checkpoint |
Resume support and checkpoint cleanup |
logging |
Log level, directory, retention, console output |
disk-space |
Free space monitoring thresholds |
Command Reference
| Command | Permission | Description |
|---|---|---|
/aspbackup start [--full|--incremental] [--target <id>] |
aspbackup.start |
Start a manual backup |
/aspbackup stop <task-id> |
aspbackup.stop |
Stop an active backup |
/aspbackup status [task-id] |
aspbackup.status |
View backup status |
/aspbackup resume <task-id> |
aspbackup.resume |
Resume a paused backup |
/aspbackup list [--active|--completed|--failed] |
aspbackup.list |
List backup history |
/aspbackup nodes <list|status> |
aspbackup.nodes |
Manage transfer nodes |
/aspbackup verify <task-id> |
aspbackup.verify |
Verify backup integrity |
/aspbackup reload |
aspbackup.reload |
Reload configuration |
/aspbackup help [command] |
aspbackup.command |
Show help |
Building from Source
# Clone the repository
git clone https://github.com/HDB-Studio/ASPbackup.git
cd ASPbackup
# Build the plugin
mvn clean package
# Build the receiver
cd receiver
mvn clean package
Output files:
target/ASPbackup-1.0.0-SNAPSHOT.jarβ Spigot pluginreceiver/target/ASPbackup-receiver-1.0.0-SNAPSHOT.jarβ Standalone receiver
Architecture
ASPbackup/
βββ src/main/java/com/aspbackup/ # Spigot Plugin
β βββ ASPBackup.java # Plugin main class
β βββ core/
β β βββ backup/ # Backup engine (sources, targets, compression)
β β βββ transfer/ # Distributed transfer (protocol, chunks, load balancing)
β β βββ config/ # Configuration management
β β βββ schedule/ # Auto-backup scheduling
β β βββ resume/ # Checkpoint & resume
β βββ command/ # Command system (9 subcommands)
β βββ event/ # Bukkit custom events
β βββ logging/ # Backup log system
β βββ model/ # Data models
β βββ util/ # Utilities
βββ receiver/ # Standalone Receiver Application
βββ src/main/java/com/aspbackup/receiver/
βββ BackupReceiver.java # Main entry point
βββ server/ # Netty TCP server
βββ assembly/ # Chunk assembly
βββ verification/ # Integrity checking
Network Protocol
The distributed transfer uses a custom binary protocol:
ββββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ¬βββββββββββ
β Magic(2B)βType(1B) βLength(4B)βPayload(NB)βCRC32(4B) β
ββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββββββ
Packet types: Handshake (0x01), ChunkData (0x03), Ack (0x04), ResumeRequest (0x07), Status (0x09)
License
This project is licensed under the Apache License 2.0 β see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue on the GitHub repository.


