mirror of
https://github.com/pyrohost/pyrodactyl.git
synced 2026-04-05 19:51:59 +02:00
feature: deduplicated backups using elytra + backup storage quota + nullable server limits for unlimited #59
Closed
opened 2026-04-05 19:45:39 +02:00 by MrUnknownDE
·
0 comments
No Branch/Tag Specified
main
redesign-amy
dependabot/composer/composer-a63f04cb24
transfer-queue
releases/v4.5.1
dependabot/npm_and_yarn/eslint-9.38.0
dependabot/npm_and_yarn/hcaptcha/react-hcaptcha-1.14.0
releases/v4.5.0
dependabot/npm_and_yarn/vitejs/plugin-react-swc-4.2.0
dependabot/npm_and_yarn/vite-7.1.12
dependabot/npm_and_yarn/browserslist-4.27.0
releases/v4.4.1
releases/v4.4.0
releases/v4.3.0
releases/v4.2.2
releases/v4.2.1
releases/v4.2.0
async-backups
releases/v4.1.0
releases/v4.0.0
multi-language
dependabot/npm_and_yarn/npm_and_yarn-34180670f1
subdomains
dev-old
dependabot/npm_and_yarn/eslint-plugin-prettier-5.5.4
elytra
startup-command
overhead-memory
amy/pyro-143-ui-redesign
naterfute/fix_unit_tests
v4.5.0
v4.4.0
v4.3.0
v4.2.0
v4.1.0
v4.0.0
4.0.0
v3.0.48-b
v3.0.48-a
v3.0.48
v3.0.47
v3.0.46
v3.0.45
v3.0.44
v3.0.43
v3.0.42
v3.0.41
v3.0.40
v3.0.39
v3.0.38
v3.0.37
v3.0.36
v3.0.35
v3.0.34
v3.0.33
v3.0.32
v3.0.31
v3.0.30
v3.0.29
v3.0.28
v3.0.27
v3.0.26
v3.0.25
v3.0.24
v3.0.23
v3.0.22
v3.0.21
v3.0.20
v3.0.19
v3.0.18
v3.0.17
v3.0.16
v3.0.15
v3.0.14
v3.0.13
v3.0.12
v3.0.11
v3.0.10
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v1.11.9
v1.11.8
v1.11.7
v1.11.6
v1.11.5
v1.11.4
v1.11.3
v1.11.2
v1.11.1
v1.11.0
v1.11.0-rc.2
v1.11.0-rc.1
v1.10.4
v1.10.3
v1.10.2
v1.10.1
v1.10.0
v1.9.2
v1.9.1
v1.9.0
v1.8.1
v1.8.0
v1.7.0
v1.6.6
v1.6.5
v1.6.3
v1.6.2
v1.6.1
v1.6.0
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.3
v1.0.2
v1.0.1
v1.0.0
v1.0.0-rc.7
v0.7.19
v1.0.0-rc.6
v1.0.0-rc.5
v1.0.0-rc.4
v1.0.0-rc.3
v1.0.0-rc.2
v1.0.0-rc.1
v1.0.0-beta.7
v0.7.18
v1.0.0-beta.6
v1.0.0-beta.5
v1.0.0-beta.4
v1.0.0-beta.3
v1.0.0-beta.2
v1.0.0-beta.1
v0.7.17
v0.8.0-alpha.2
v0.7.16
v0.8.0-alpha.1
v0.7.15
v0.7.14
v0.7.13
v0.7.12
v0.7.11
v0.7.10
v0.7.9
v0.7.8
v0.7.8-fixed
v0.7.7
v0.7.6
v0.7.5
v0.7.4-h.1
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.7.0-rc.2
v0.7.0-rc.1
v0.7.0-beta.4
v0.7.0-beta.3
v0.7.0-beta.2
v0.7.0-beta.1
v0.6.4
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.6.0-rc.1
v0.6.0-beta.2.1
v0.6.0-beta.2
v0.6.0-beta.1
v0.6.0-pre.7
v0.6.0-pre.6
v0.6.0-pre.5
v0.6.0-pre.4
v0.6.0-pre.3
v0.6.0-pre.2
v0.6.0-pre.1
v0.5.7
v0.5.6
v0.5.5
v0.5.4
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.5.0-rc.2
v0.5.0-rc.1
v0.5.0-pre.3
v0.5.0-pre.2
v0.5.0-pre.1
v0.4.1-beta
v0.4.0-beta
v0.3.0-beta
v0.2.0-beta
v0.1.2-beta
v0.1.1-beta
v0.1.0-beta
Labels
Clear labels
Feature Request
bug
bug
bug
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
dependencies
enhancement
enhancement
enhancement
enhancement
good first issue
good first issue
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
javascript
php
php
php
php
php
php
php
php
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
MrUnknownDE
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github/pyrodactyl#59
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ChecksumDev on 9/20/2025
This PR marks the beginning of Pyrodactyl’s transition away from relying on Pterodactyl Wings and toward a new future powered by Pyrodactyl Elytra. While this PR does not yet fully break compatibility, it introduces new functionality that is now the default and requires Elytra: deduplicated backups.
Deduplicated Backups
Deduplicated backups are a more efficient way of storing backup data. Instead of saving a complete copy of every file each time a backup is created, the system analyzes the data and only stores what has actually changed since the last backup. Identical files or file segments are saved once and reused across multiple backups.
This approach provides:
Under the hood, this is powered by Rustic, which provides content-addressed storage, snapshot management, and deduplication support.
Importantly, old backups remain 100% compatible. Existing installations will continue to work with traditional backups, while new panel installations will default to deduplicated backups. This behavior requires Elytra and can be customized in the configuration file, giving administrators control over which backup method best suits their needs.
Security and Compression
These new backups are encrypted and compressed by default. Each backup is secured using a key derived from the application key, ensuring backups remain tied to your Pyrodactyl installation and cannot be read without access. Compression further reduces storage usage while maintaining speed and integrity.
Resource Limits
This PR also expands the way limits can be managed. Server limits can now be set to
null, effectively removing restrictions where needed. In addition, you can now apply a storage cap to backups rather than relying solely on a slot cap. This means you can allow unlimited backup slots while still keeping usage under control, since backups are constrained by total storage space.Because storage caps can work together with deduplication, it is now possible to keep far more restore points within the same storage budget, achieving a much better balance between efficiency, flexibility, and reliability.