Migrating Blueprint

Good morning. I have a client with a development machine where they have setup a panel with blueprint installed. We are trying to migrate this panel to the production machine, but the extension data isn't transferring. Is there a guide or has anyone completed a transfer before?
30 Replies
Emma
Emma7mo ago
I'd advise moving over the entire Pterodactyl database, then reinstalling the extensions on the other panel. Migrate Pterodactyl and it's database first, then reinstall Blueprint and it's extensions on the new panel afterwards.
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
Is extension data stored in the database?
Emma
Emma7mo ago
Yup!
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
Alrighty, I'll have to find a way to migrate the dev DB to the prod DB without disrupting their clients. Thank you!
Emma
Emma7mo ago
No problem!
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
Getting a ton of routes issues. This was after attempting to run blueprint -rerun-install Similar to this:
ERROR in resources/scripts/blueprint/extends/routers/ServerRouter.tsx:132:23
TS7031: Binding element 'path' implicitly has an 'any' type.
130 | : extensionEggs[route.identifier].find((id) => id === serverEgg?.toString())
131 | )
> 132 | .map(({ path, permission, component: Component }) => (
| ^^^^
133 | <PermissionRoute key={path} permission={permission} path={to(path)} exact>
134 | <Spinner.Suspense>
135 | <Component />

ERROR in resources/scripts/blueprint/extends/routers/ServerRouter.tsx:132:29
TS7031: Binding element 'permission' implicitly has an 'any' type.
130 | : extensionEggs[route.identifier].find((id) => id === serverEgg?.toString())
131 | )
> 132 | .map(({ path, permission, component: Component }) => (
| ^^^^^^^^^^
133 | <PermissionRoute key={path} permission={permission} path={to(path)} exact>
134 | <Spinner.Suspense>
135 | <Component />

ERROR in resources/scripts/blueprint/extends/routers/ServerRouter.tsx:132:52
TS7031: Binding element 'Component' implicitly has an 'any' type.
130 | : extensionEggs[route.identifier].find((id) => id === serverEgg?.toString())
131 | )
> 132 | .map(({ path, permission, component: Component }) => (
| ^^^^^^^^^
133 | <PermissionRoute key={path} permission={permission} path={to(path)} exact>
134 | <Spinner.Suspense>
135 | <Component />
error Command failed with exit code 2.
ERROR in resources/scripts/blueprint/extends/routers/ServerRouter.tsx:132:23
TS7031: Binding element 'path' implicitly has an 'any' type.
130 | : extensionEggs[route.identifier].find((id) => id === serverEgg?.toString())
131 | )
> 132 | .map(({ path, permission, component: Component }) => (
| ^^^^
133 | <PermissionRoute key={path} permission={permission} path={to(path)} exact>
134 | <Spinner.Suspense>
135 | <Component />

ERROR in resources/scripts/blueprint/extends/routers/ServerRouter.tsx:132:29
TS7031: Binding element 'permission' implicitly has an 'any' type.
130 | : extensionEggs[route.identifier].find((id) => id === serverEgg?.toString())
131 | )
> 132 | .map(({ path, permission, component: Component }) => (
| ^^^^^^^^^^
133 | <PermissionRoute key={path} permission={permission} path={to(path)} exact>
134 | <Spinner.Suspense>
135 | <Component />

ERROR in resources/scripts/blueprint/extends/routers/ServerRouter.tsx:132:52
TS7031: Binding element 'Component' implicitly has an 'any' type.
130 | : extensionEggs[route.identifier].find((id) => id === serverEgg?.toString())
131 | )
> 132 | .map(({ path, permission, component: Component }) => (
| ^^^^^^^^^
133 | <PermissionRoute key={path} permission={permission} path={to(path)} exact>
134 | <Spinner.Suspense>
135 | <Component />
error Command failed with exit code 2.
Emma
Emma7mo ago
I'm 99% certain that could be related to the client having mixed Blueprint together with non-Blueprint modifications. Which modifications (including extensions) does the client have installed?
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
This is during the install on a fresh panel trying to install: * Announcements * Loader * Database-Import-Export * File Search * FiveM Utils * Nebula * Player Listing * Social Login
Emma
Emma7mo ago
That's weird, could you go through the steps sent below?
Blueprint
Blueprint7mo ago
1. Remove certain files and directories with rm -r resources public node_modules. 2. Go through the Pterodactyl update documentation. 3. Install dependencies by running the yarn command. 4. Repair Blueprint with blueprint -upgrade. 5. Get some Blueprint extensions (if you haven't already) and install them onto your panel.
byte snippet-upgrade
Emma
Emma7mo ago
Basically a couple debugging steps that can help fix issues like these. If it still occurs afterwards, please let me know, and I'll dive deeper!
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
Happened again when installing Social Login Order of Installs: Announcements Player Listing Loader Database Import Export Social Login I did notice some of the extensions (like Announcements) relies on a hardcoded /var/www/pterodactyl path. Is this the case for all of them? Our panel is in /var/www/devpanel/
Emma
Emma7mo ago
Announcements is not supposed to do that, which version is installed on the panel?
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
The zip that was provided me is named announcements-v13.zip
Emma
Emma7mo ago
I'll compare that against my info give me a second
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
This was the error from the announcements installation chown: cannot access '/var/www/pterodactyl/.blueprint/*': No such file or directory
Emma
Emma7mo ago
Seems to be the latest version, huh, weird Do you have any file called .blueprintrc in your Pterodactyl directory, and if not, could you double check the variables defined at the top of the blueprint.sh file?
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
# Learn more @ blueprint.zip
# Source code available at github.com/blueprintframework/framework

# Variable for telling Blueprint which folder Pterodactyl lives in.
FOLDER=$(realpath "$(dirname "$0")")

# This stores the webserver ownership user which Blueprint uses when applying webserver permissions.
OWNERSHIP="www-data:www-data" #;

# This stores options for permissions related to running install scripts the webserver user.
WEBUSER="www-data" #;
USERSHELL="/bin/bash" #;

# Defines the version Blueprint will display as the active one.
VERSION="beta-2024-12"
BLUEPRINT_ENGINE="solstice"

# Default GitHub repository to use when upgrading Blueprint.
REPOSITORY="BlueprintFramework/framework"



# Set environment variables.
export BLUEPRINT__FOLDER=$FOLDER
export BLUEPRINT__VERSION=$VERSION
export BLUEPRINT__DEBUG="$FOLDER"/.blueprint/extensions/blueprint/private/debug/logs.txt
export NODE_OPTIONS=--openssl-legacy-provider
# Learn more @ blueprint.zip
# Source code available at github.com/blueprintframework/framework

# Variable for telling Blueprint which folder Pterodactyl lives in.
FOLDER=$(realpath "$(dirname "$0")")

# This stores the webserver ownership user which Blueprint uses when applying webserver permissions.
OWNERSHIP="www-data:www-data" #;

# This stores options for permissions related to running install scripts the webserver user.
WEBUSER="www-data" #;
USERSHELL="/bin/bash" #;

# Defines the version Blueprint will display as the active one.
VERSION="beta-2024-12"
BLUEPRINT_ENGINE="solstice"

# Default GitHub repository to use when upgrading Blueprint.
REPOSITORY="BlueprintFramework/framework"



# Set environment variables.
export BLUEPRINT__FOLDER=$FOLDER
export BLUEPRINT__VERSION=$VERSION
export BLUEPRINT__DEBUG="$FOLDER"/.blueprint/extensions/blueprint/private/debug/logs.txt
export NODE_OPTIONS=--openssl-legacy-provider
No .blueprintrc in the prod ptero dir
Emma
Emma7mo ago
Oh that's generally fine. Announcements was last updated a while ago and in that meantime this error got introduced, doesn't cause any issues though. (Related with updated improvements on which permissions are provided to custom extension scripts)
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
Anything on these route issues though? I noticed the file isn't in utf-8 which would be why it's calling out improper characters
Emma
Emma7mo ago
Blueprint is kinda messy with multiple panels running on the same machine/filesystem, especially if multiple are running Blueprint at the same time. Try running bash blueprint.sh in your dev panel's directory, then even if it causes an error it should claim the blueprint command.
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
This is the only one running blueprint. I'll run that real quick 12:20:43 FATAL: Installation process has already been finished before, consider using the 'blueprint' command.
Emma
Emma7mo ago
Let me double check some stuff real quick Not sure whats going wrong here exactly.
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
They were on node 16 when they became my client, I removed everything (nodejs, npm) and everything referencing those. I've installed node 20 and everything from nodesource.
Emma
Emma7mo ago
Seems right, huh weird I'm currently available, mind looking at this together in a call?
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
I just wanted to make sure I'm not going crazy yeah haha Call whenever, or I can hop in VC
Emma
Emma7mo ago
I'll probably do a dm call
Emma
Emma7mo ago
GitHub
ISO-8859-6 locale generate unexpected characters for route variable...
Issue discovered by @InfraCharm Current Behavior When the system's locale is set to a ISO-8859-6 locale and an extension utilizing the Components.yml routes API is installed, build errors will ...
Kustys
Kustys7mo ago
Just now realised that I had the same issue a while back on a different VPS, most likely had no idea I had that locale on. I believe the thread got deleted but unsure.
Jared | InfraCharm
Jared | InfraCharmOP7mo ago
Yeah, we were in VC and talking and I brought up locales and tested it. Was 100% the issue. Glad we could figure it out to help others.

Did you find this page helpful?