Pterodactyl on Docker compose installing blueprint extension error.

Im trying to install a theme on my ptero panel using blueprint, specifically the nebula theme. and when running blueprint -install nebula I have an error
george@AthenaServer:~/mypterodactyl$ blueprint -install nebula
10:17:34 INFO: Searching and validating framework dependencies..
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
10:17:34 FATAL: Extension configuration file not found or detected.
george@AthenaServer:~/mypterodactyl$ blueprint -install nebula
10:17:34 INFO: Searching and validating framework dependencies..
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
10:17:34 FATAL: Extension configuration file not found or detected.
62 Replies
Venco
Venco2y ago
Context : docker, but not the blueprint docker image
George'
George'OP2y ago
it is isnt it?
Venco
Venco2y ago
?? like what docker image do you use
George'
George'OP2y ago
ohh
panel:
image: ghcr.io/blueprintframework/blueprint:v1.11.5
panel:
image: ghcr.io/blueprintframework/blueprint:v1.11.5
Venco
Venco2y ago
oh so it is the blueprint docker image okay you made the alias ?
George'
George'OP2y ago
yep
alias blueprint="sudo docker compose -f /home/george/mypterodactyl/docker-compose.yml exec panel blueprint"

george@AthenaServer:~$ echo 'alias blueprint="sudo docker compose -f /home/george/mypterodactyl/docker-compose.yml exec panel blueprint"' >> ~/.bashrc
alias blueprint="sudo docker compose -f /home/george/mypterodactyl/docker-compose.yml exec panel blueprint"

george@AthenaServer:~$ echo 'alias blueprint="sudo docker compose -f /home/george/mypterodactyl/docker-compose.yml exec panel blueprint"' >> ~/.bashrc
Venco
Venco2y ago
followed the example ??
Venco
Venco2y ago
No description
George'
George'OP2y ago
i did that but the path to my extension folder is slightly different
Venco
Venco2y ago
what is it
George'
George'OP2y ago
/home/george/mypterodactyl/extensions/
Venco
Venco2y ago
so you changed it ? welp idk i never used blueprint docker i'm letting @Loki or @Emma HHelp you
George'
George'OP2y ago
in the docker-compose file? ahahaha thanks anyway mate
Loki
Loki2y ago
I was told extensions would always end in .blueprint. The image wasn't made to handle zip files. Try extracting the zip file and putting the contents in extensions. I'm assuming every file in the zip will have blueprint somewhere in the name.
George'
George'OP2y ago
There is no zip file ahahahah Idk why it’s saying that The extension in the folder is nebula.blueprint When I run the command to install the extension it starts talking about a zip file that I don’t think exists 😭
Loki
Loki2y ago
@Emma What actually happens when the .blueprint file is being installed? At this point in the container, the nebula.blueprint file is inside of /app and blueprint -install is run on it. The /app directory is persistent. I did test with the recolor extension, but maybe more complex extensions do other things I haven't accounted for. @George' Can you show the contents of your extensions folder btw? And run docker compose exec panel ls -a /blueprint_extensions && echo "\n" && ls -a /app and post the results here?
Emma
Emma2y ago
extensions use zip compression and are unarchived upon installation. they are all exported the same way, so if one works, the rest generally should as well
Loki
Loki2y ago
So blueprint downloads the .zip file to the current directory? Still /app? Then it just unzips? Would any of the files have blueprint in the name? Currently, the sync puts any files in extensions that have .blueprint anywhere in the name into /app, as well as deletes any files that have that in the name that are no longer in extensions (with the exception of /app/.blueprint). The reason it's *.blueprint* for the sync is because recolor put a second file in extensions with .blueprint in the name that has :ZoneIdentifier after the .blueprint; I assumed that would need to go in app too. But if there are going to be more files in /app with .blueprint somewhere in the name, I need to modify the logic.
George'
George'OP2y ago
Yep give me two minutes @Loki
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel ls -a /blueprint_extensions && echo "\n" && ls -a /app
[sudo] password for george:
. .. nebula.blueprint
\n
ls: cannot access '/app': No such file or directory
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel ls -a /blueprint_extensions && echo "\n" && ls -a /app
[sudo] password for george:
. .. nebula.blueprint
\n
ls: cannot access '/app': No such file or directory
Loki
Loki2y ago
Put quotes around it. docker compose exec panel "ls -a /blueprint_extensions && echo "\n" && ls -a /app"
George'
George'OP2y ago
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel "ls -a /blueprint_extensions && echo "\n" && ls -a /app"
OCI runtime exec failed: exec failed: unable to start container process: exec: "ls -a /blueprint_extensions && echo n && ls -a /app": stat ls -a /blueprint_extensions && echo n && ls -a /app: no such file or directory: unknown
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel "ls -a /blueprint_extensions && echo "\n" && ls -a /app"
OCI runtime exec failed: exec failed: unable to start container process: exec: "ls -a /blueprint_extensions && echo n && ls -a /app": stat ls -a /blueprint_extensions && echo n && ls -a /app: no such file or directory: unknown
Loki
Loki2y ago
If it doesn't like it starting with quotes, docker compose exec panel sh -c 'ls -a /blueprint_extensions && echo "\n" && ls -a /app'
George'
George'OP2y ago
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel sh -c "ls -a /blueprint_extensions && echo "\n" && ls -a /app"
. .. nebula.blueprint
n
. .gitignore README.md docker-compose.example.yml routes
.. .php-cs-fixer.dist.php SECURITY.md flake.lock shell.nix
.blueprint .prettierrc.json app flake.nix storage
.editorconfig .shellcheckrc artisan jest.config.js tailwind.config.js
.env BUILDING.md babel.config.js nebula.blueprint tests
.env.ci CHANGELOG.md blueprint.sh node_modules tsconfig.json
.env.example CODE_OF_CONDUCT.md bootstrap package.json var
.eslintignore CONTRIBUTING.md composer.json phpunit.xml vendor
.eslintrc.js Dockerfile composer.lock postcss.config.js webpack.config.js
.git LICENSE config public yarn.lock
.github LICENSE.md database resources
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel sh -c "ls -a /blueprint_extensions && echo "\n" && ls -a /app"
. .. nebula.blueprint
n
. .gitignore README.md docker-compose.example.yml routes
.. .php-cs-fixer.dist.php SECURITY.md flake.lock shell.nix
.blueprint .prettierrc.json app flake.nix storage
.editorconfig .shellcheckrc artisan jest.config.js tailwind.config.js
.env BUILDING.md babel.config.js nebula.blueprint tests
.env.ci CHANGELOG.md blueprint.sh node_modules tsconfig.json
.env.example CODE_OF_CONDUCT.md bootstrap package.json var
.eslintignore CONTRIBUTING.md composer.json phpunit.xml vendor
.eslintrc.js Dockerfile composer.lock postcss.config.js webpack.config.js
.git LICENSE config public yarn.lock
.github LICENSE.md database resources
Loki
Loki2y ago
Everything looks good... maybe it's an issue with the nebula extension. Have you tried it on a non-docker instance?
George'
George'OP2y ago
Nah I don’t have a non docker instance of pterodactyl
Loki
Loki2y ago
Try starting over. Take the stack down, delete the volume for it, then spin the stack back up and try again.
George'
George'OP2y ago
what am i deleting?
Loki
Loki2y ago
docker compose down
docker volume ls
docker volume rm (whatever the app volume is named)
docker compose up -d
blueprint -install nebula
docker compose down
docker volume ls
docker volume rm (whatever the app volume is named)
docker compose up -d
blueprint -install nebula
George'
George'OP2y ago
i dont thinking there is an app volume
George'
George'OP2y ago
No description
Loki
Loki2y ago
docker volume ls
George'
George'OP2y ago
ohh
george@AthenaServer:~/mypterodactyl$ sudo docker compose up -d
[+] Running 4/4
✔ Network mypterodactyl_default Created 0.1s
✔ Container mypterodactyl-cache-1 Started 0.5s
✔ Container mypterodactyl-database-1 Started 0.5s
✔ Container mypterodactyl-panel-1 Started 0.6s
george@AthenaServer:~/mypterodactyl$ blueprint -install nebula
05:05:41 INFO: Searching and validating framework dependencies..
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
05:05:41 FATAL: Extension configuration file not found or detected.
george@AthenaServer:~/mypterodactyl$ sudo docker compose up -d
[+] Running 4/4
✔ Network mypterodactyl_default Created 0.1s
✔ Container mypterodactyl-cache-1 Started 0.5s
✔ Container mypterodactyl-database-1 Started 0.5s
✔ Container mypterodactyl-panel-1 Started 0.6s
george@AthenaServer:~/mypterodactyl$ blueprint -install nebula
05:05:41 INFO: Searching and validating framework dependencies..
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
[nebula.zip]
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of nebula.zip or
nebula.zip.zip, and cannot find nebula.zip.ZIP, period.
05:05:41 FATAL: Extension configuration file not found or detected.
Loki
Loki2y ago
Did you wait a minute after starting the stack before you used blueprunt -install? The panel should still be doing a lot of setup at first. When docker compose logs panel shows something about an http server, it's done.
George'
George'OP2y ago
No description
Loki
Loki2y ago
Have you put any data on the panel yet? If not, start over.
docker compose down
rm -rf database
docker volume rm (whatever your app volume is named)
docker compose up -d
# Wait a minute
docker compose logs panel
docker compose down
rm -rf database
docker volume rm (whatever your app volume is named)
docker compose up -d
# Wait a minute
docker compose logs panel
George'
George'OP2y ago
okay its all set up 2024-04-22 05:12:24,567 CRIT Server 'unix_http_server' running without any HTTP authentication checking ohhhh its workingggg okay now i need to remember how to make a user @Loki how do i use the p:user:make command in docker compose?
Loki
Loki2y ago
docker compose exec panel php artisan p:user:make So nebula installed fine?
George'
George'OP2y ago
well it installed fine but the theme isnt like working do i have to restart docker to get it working?
Loki
Loki2y ago
I'm not sure. The recolor theme worked instantly; I just refreshed the page.
George'
George'OP2y ago
george@AthenaServer:~/mypterodactyl$ blueprint -install nebula
05:26:33 INFO: Searching and validating framework dependencies..
05:26:33 INFO: Reading and assigning extension flags..
05:26:33 INFO: Writing extension placeholders..
05:26:35 INFO: Cloning and linking views directory..
05:26:35 INFO: Cloning and linking public directory..
05:26:35 INFO: Cloning and linking private directory..
05:26:35 INFO: Linking and writing assets directory..
05:26:35 INFO: Cloning admin view..
05:26:35 INFO: Cloning admin controller..
05:26:35 INFO: Editing admin routes..
05:26:35 INFO: Cloning and linking dashboard wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
05:26:35 INFO: Cloning and linking admin wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
george@AthenaServer:~/mypterodactyl$ blueprint -install nebula
05:26:33 INFO: Searching and validating framework dependencies..
05:26:33 INFO: Reading and assigning extension flags..
05:26:33 INFO: Writing extension placeholders..
05:26:35 INFO: Cloning and linking views directory..
05:26:35 INFO: Cloning and linking public directory..
05:26:35 INFO: Cloning and linking private directory..
05:26:35 INFO: Linking and writing assets directory..
05:26:35 INFO: Cloning admin view..
05:26:35 INFO: Cloning admin controller..
05:26:35 INFO: Editing admin routes..
05:26:35 INFO: Cloning and linking dashboard wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
05:26:35 INFO: Cloning and linking admin wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
05:26:35 INFO: Creating and linking extension filesystem..
05:26:35 INFO: Cleaning up build files..
05:26:35 INFO: Linking filesystems..
05:26:36 INFO: Flushing view, config and route cache..
05:26:36 INFO: Changing Pterodactyl file ownership to 'nginx:nginx'..
05:26:36 WARNING: Extension uses a custom installation script, proceed with caution.

Thank you for purchasing Nebula.

,d88b.d88b,
88888888888
`Y8888888Y'
`Y888Y'
`Y'


Nebula is not free software!
Redistributing or downloading Nebula for free without written consent is considered piracy and is illegal in most states and countries.

(press enter to continue)


Questions need answers!
Feel free to contact me when you experience problems, have any concerns or need help. Find my contact information on prpl.wtf

(press enter to continue)

05:26:59 INFO: Adding 'nebula' to active extensions list..
05:26:59 SUCCESS: nebula has been installed.
05:26:35 INFO: Creating and linking extension filesystem..
05:26:35 INFO: Cleaning up build files..
05:26:35 INFO: Linking filesystems..
05:26:36 INFO: Flushing view, config and route cache..
05:26:36 INFO: Changing Pterodactyl file ownership to 'nginx:nginx'..
05:26:36 WARNING: Extension uses a custom installation script, proceed with caution.

Thank you for purchasing Nebula.

,d88b.d88b,
88888888888
`Y8888888Y'
`Y888Y'
`Y'


Nebula is not free software!
Redistributing or downloading Nebula for free without written consent is considered piracy and is illegal in most states and countries.

(press enter to continue)


Questions need answers!
Feel free to contact me when you experience problems, have any concerns or need help. Find my contact information on prpl.wtf

(press enter to continue)

05:26:59 INFO: Adding 'nebula' to active extensions list..
05:26:59 SUCCESS: nebula has been installed.
George'
George'OP2y ago
No description
George'
George'OP2y ago
looks very applied ahahahaha
Loki
Loki2y ago
Looks like Alpine by default doesn't have the right version of ln, 1 sec @George' blueprint -uninstall nebula and wait a minute for the new image to finish building.
George'
George'OP2y ago
i dont have an alias for that command
Loki
Loki2y ago
Then docker compose exec panel blueprint -uninstall nebula or set the alias. Then docker compose down, wait until I let you know the new image finished building and pushing, and docker compose pull @George' It's done building, you can pull it now Let me know if the theme installs this time
George'
George'OP2y ago
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel blueprint -uninstall nebula
05:50:17 FATAL: '-uninstall' is not a valid command or argument. Use argument '-help' for a list of commands.
george@AthenaServer:~/mypterodactyl$ sudo docker compose exec panel blueprint -uninstall nebula
05:50:17 FATAL: '-uninstall' is not a valid command or argument. Use argument '-help' for a list of commands.
Loki
Loki2y ago
idk what the command is them, maybe remove Or you could delete the volume again
George'
George'OP2y ago
05:53:26 INFO: Searching and validating framework dependencies..
05:53:26 INFO: Reading and assigning extension flags..
05:53:26 INFO: Writing extension placeholders..
05:53:29 INFO: Cloning and linking views directory..
05:53:29 INFO: Cloning and linking public directory..
05:53:29 INFO: Cloning and linking private directory..
05:53:29 INFO: Linking and writing assets directory..
05:53:29 INFO: Cloning admin view..
05:53:29 INFO: Cloning admin controller..
05:53:29 INFO: Editing admin routes..
05:53:29 INFO: Cloning and linking dashboard wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
05:53:29 INFO: Cloning and linking admin wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)
05:53:26 INFO: Searching and validating framework dependencies..
05:53:26 INFO: Reading and assigning extension flags..
05:53:26 INFO: Writing extension placeholders..
05:53:29 INFO: Cloning and linking views directory..
05:53:29 INFO: Cloning and linking public directory..
05:53:29 INFO: Cloning and linking private directory..
05:53:29 INFO: Linking and writing assets directory..
05:53:29 INFO: Cloning admin view..
05:53:29 INFO: Cloning admin controller..
05:53:29 INFO: Editing admin routes..
05:53:29 INFO: Cloning and linking dashboard wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)

-s Make symlinks instead of hardlinks
-f Remove existing destinations
-n Don't dereference symlinks - treat like normal file
-b Make a backup of the target (if exists) before link operation
-S SUF Use suffix instead of ~ when making backup files
-T Treat LINK as a file, not DIR
-v Verbose
05:53:29 INFO: Cloning and linking admin wrapper..
ln: unrecognized option: r
BusyBox v1.36.1 (2023-07-27 17:12:24 UTC) multi-call binary.

Usage: ln [-sfnbtv] [-S SUF] TARGET... LINK|DIR

Create a link LINK or DIR/TARGET to the specified TARGET(s)
same thing again
Loki
Loki2y ago
Huh
Emma
Emma2y ago
-remove was the command just woke up haha if you need me to explain anything feel free to ping me
Loki
Loki2y ago
I just tested. -r definitely works now that I've install coreutils. Try taking the stack down again and pulling the image. Once you've installed it successfully, check out this section.
George'
George'OP2y ago
here we gooooo no errors so far wooohoooooo
George'
George'OP2y ago
No description
Loki
Loki2y ago
Nice. When you're done configuring it, do this step. If it's already past 11:59PM for you, just run the script manually after you do that. It does assume your compose file is in /srv/pterodactyl/docker-compose.yml, so if it's in another place, adjust the commands accordingly.
George'
George'OP2y ago
Yep sweet as I’ll do that now
RockoF73
RockoF7317mo ago
Hello, sorry to bother you, i need some help. When i try to run the command "blueprint -install nebula", i get the error "stat /srv/pterodactyl/docker-compose.yml: no such file or directory". I tried to install pteroblueprint both with docker compose only and with portainer stacks. Where i can find the docker compose file i need to run the alias command?
Emma
Emma17mo ago
CC @Loki - Could this be related to the repository rename?
RockoF73
RockoF7317mo ago
Just if you need more information, the directory exists, only the docker compose file is missing for some reason. Sorry for the poor informations but i'm new to asking help. If you need some more infos, just ask me
Emma
Emma17mo ago
Alright, might be good to open another forum post.
RockoF73
RockoF7317mo ago
Done! Thank you Solved by changing the alias to "echo 'alias blueprint="sudo docker exec mypanel-panel-1 blueprint"' >> ~/.zshrc"
Loki
Loki17mo ago
Portainer uses different names. The tutorial was for the default compose file. If you don't know where Portainer keeps the compose file, executing it directly from the container works fine too.
RockoF73
RockoF7317mo ago
Ok, thank you very much. I didn't know that portainer uses different names. I tried to search for the compose file but i didn't found it. But now it's working this way 🙂

Did you find this page helpful?