Blueprint's extension ecosystem you know and love, in 🐳 Docker.
Extensions must be placed/dragged into the extensions
folder.
By default, you can only interact with Blueprint by going through the Docker command line, i.e.
docker compose exec panel blueprint (arguments)
# Set alias for current session
alias blueprint="docker compose -f /srv/pterodactyl/docker-compose.yml exec panel blueprint"
# Append to the end of your .bashrc file to make it persistent
echo 'alias blueprint="docker compose -f /srv/pterodactyl/docker-compose.yml exec panel blueprint"' >> ~/.bashrc
Here's a quick example showcasing how you would go about installing extensions on the Docker version of Blueprint. Note that your experience can differ for every extension.
.blueprint
file extension.example.blueprint
file over/onto to your extensions folder, i.e. by default /srv/pterodactyl/extensions
. docker compose exec panel blueprint -i example
Alternatively, if you have applied the alias we suggested above:
blueprint -i example
pterodactyl_app
volume, so you'll want to start backing that volume up regularly.Why Restic? Compression, de-duplication, and incremental backups. Save on space compared to simply archiving the directory each time.
The package name is usually restic , i.e. |
Operating System | Command |
---|---|---|
Ubuntu / Debian / Linux Mint | sudo apt -y install restic |
|
Fedora | sudo dnf -y install restic |
|
Rocky Linux / AlmaLinux / CentOS | sudo dnf -y install epel-release && sudo dnf -y install restic |
|
Arch Linux | sudo pacman -S --noconfirm restic |
|
openSUSE | sudo zypper install -n restic |
|
Gentoo | sudo emerge --ask=n app-backup/restic |
mkdir -p /srv/backups/pterodactyl
restic init --repo /srv/backups/pterodactyl
cat <<'EOF' > /srv/backups/backup.sh
#!/bin/bash
docker compose -f /srv/pterodactyl/docker-compose.yml down
restic backup /var/lib/docker/volumes/pterodactyl_app/_data --repo /srv/backups/pterodactyl
docker compose -f /srv/pterodactyl/docker-compose.yml up -d
EOF
chmod +x /srv/backups/backup.sh
(crontab -l 2>/dev/null; echo "59 23 * * * /srv/backups/backup.sh") | crontab -
You can list snapshots with restic snapshots --repo /srv/backups/pterodactyl
You're looking for a value for ID that looks something like 46adb587
. Time will be right next to each ID, so you can see what day your backups are from.
docker compose -f /srv/pterodactyl/docker-compose.yml down
# Clear the directory so the restoration will be clean
rm -rf /var/lib/docker/volumes/pterodactyl_app/_data
# Remember to replace "46adb587" with your actual ID of the snapshot you want to restore
restic restore 46adb587 --repo /srv/backups/pterodactyl --target /var/lib/docker/volumes/pterodactyl_app/_data
docker compose -f /srv/pterodactyl/docker-compose.yml up -d
blueprint -upgrade
docker compose -f /srv/pterodactyl/docker-compose.yml exec panel blueprint -upgrade
docker compose down -v
ghcr.io/blueprintframework/blueprint:v1.11.5
to ghcr.io/blueprintframework/blueprint:v1.11.7
.docker compose pull
docker compose up -d
blueprint -i extension1 extension2 extension3
. Documentation here will be updated when that comes out, but for now you'll have to install each extension again every update. Feel free to automate this with a simple bash script:
cd /srv/pterodactyl && echo -e '#!/bin/bash\n\nfor extension in "$@"\ndo\n docker compose exec panel blueprint -i "$extension"\ndone' > bulk-install.sh && chmod +x bulk-install.sh
/srv/pterodactyl
. You can use it while in that folder with as many extensions as you want with:./bulk-install.sh extension1 extension2 extension3``
$\color{#4b4950}{\textsf{© 2024 Emma (prpl.wtf) and Loki}}$