Skip to content

Blueprint's extension ecosystem you know and love, in Docker. Install, manage and develop Pterodactyl modifications like never before.

License

Notifications You must be signed in to change notification settings

BlueprintFramework/docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blueprint Docker

Blueprint's extension ecosystem you know and love, in 🐳 Docker.


🐳 Blueprint in Docker

Uploading extensions

Extensions must be placed/dragged into the extensions folder.

Interacting with Blueprint

By default, you can only interact with Blueprint by going through the Docker command line, i.e.

docker compose exec panel blueprint (arguments)

We recommend setting an alias so you can interact with Blueprint the same way you would in the non-Docker version (If you have your compose file in a different place, adjust accordingly:

# 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

Example of installing an extension

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.

  1. Find an extension you would like to install and look for a file with the .blueprint file extension.
  2. Drag/upload the example.blueprint file over/onto to your extensions folder, i.e. by default /srv/pterodactyl/extensions.
  3. Install the extension through the Blueprint command line tool:
    docker compose exec panel blueprint -install example
    Alternatively, if you have applied the alias we suggested above:
    blueprint -install example

So, you installed your first extension. Congratulations! Blueprint is now keeping persistent data inside the pterodactyl_app volume, so you'll want to start backing that volume up regularly.

First, we'll install Restic to handle backups

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. sudo apt install restic (Ubuntu / Debian / Linux Mint) sudo dnf install restic (Fedora) sudo dnf install epel-release && sudo dnf install restic (Rocky Linux / AlmaLinux / CentOS) sudo pacman -S restic (Arch Linux) sudo zypper install restic (openSUSE)

Make a directory and script for backups

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

Set a crontab to back up your panel (choose a time when it will be least likely to be being used)

(crontab -l 2>/dev/null; echo "59 23 * * * /srv/backups/backup.sh") | crontab -

Well, great. I have daily backups now, and they're set to keep at most 30 backups at a time. How can I restore from one of them?

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.

Once you've determined which snapshot you want to restore, stop your compose stack, restore your data, and start your stack again

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



$\color{#4b4950}{\textsf{© 2024 Ivy (prpl.wtf) and Loki}}$