Published Mar 19, 2025
Updated Jan 19, 2026
Stay up-to-date on Beta releases of Pelican Panel and Wings.
Written by Andrew Flores
Congratulations! You now have Pelican running and hosting all your game servers. But what happens when a new Beta release is published?
Wings and Panel releases have historically been published around the same time, and the latest version of each is recommended for the most stable experience. The available releases can be viewed here: panel, wings.
Getting Started
First, SSH into your server and locate the panel and wings directories that you cloned from GitHub during installation. Mine are in my home directory (~ or /home/aflorzy).
ls ~
# wings# panel# pelicanBuilding the Updated Panel and Wings Images
The update process for Panel and Wings is identical. Switch both cloned repositories to the desired release branch.
cd ~/panelgit fetch # Ensure the list of new is fetched from GitHubgit switch release/v1.0.0-beta30 # Checkout updated branch versiongit pull # Ensure latest code is pulled down from GitHub
cd ~/wingsgit fetchgit switch release/v1.0.0-beta22git pullBuild the docker image for both repositories. Feel free to change the name that you tag the image with if you want to maintain versioned images instead of overwriting the latest image during each build. If you change the image tag, remember to update your ~/pelican/docker-compose.yml to use the service images that you intend.
I always tag my images with :latest so that I don’t need to update my docker-compose.yml to use the new image version after each update.
cd ~/paneldocker build -f Dockerfile.dev -t pelican-dev/panel:latest .
cd ~/wingsdocker build -t pelican-dev/wings:latest .
# Verify that images are presentdocker imagesDeploying the Updated Docker Images
Redeploy the Docker Compose stack to create containers that use the new images that were built.
cd ~/pelicandocker compose downsudo chown -R 82:82 panel/* # Ensure all data files are owned by the proper userdocker compose up -dTroubleshooting
Some releases may introduce “breaking changes” which cause this straightforward update process to not immediately work. These releases will typically specify what configuration changes are required in the release notes on GitHub.
Breaking Changes for Panel v1.0.0-beta17 -> v1.0.0-beta18
After attempting to build the Beta 18 release of Panel, I ran into some errors on the command line.
Since the docker build command executes the code in the Dockerfile, I examined the file’s contents to see if there were any new instructions that a user should follow.
I found this line and made the changes it mentioned.
# For those who want to build this Dockerfile themselves, uncomment lines 6-12 and replace "localhost:5000/base-php:$TARGETARCH" on lines 17 and 67 with "base".After fixing that, I was encountering a new issue where the variables TARGETOS and TARGETARCH were not defined.
Pull Request #993 by user QuentinQVD0 shined some light on what these variables are for and what the possible values for them could be.
TARGETOS=linuxTARGETARCH=amd64orarm64
Declaring these variables at the top of my Dockerfile solved the issue and the build was able to complete
ARG TARGETOS=linuxARG TARGETARCH=amd64Breaking Changes for Panel v1.0.0-beta19 -> v1.0.0-beta21
The environment variables TARGETOS and TARGETARCH no longer need to be manually specified. Instead, there is a new Dockerfile.dev file that we use to build the Docker image locally.
If you made edits to the Dockerfile in a previous version, you may discard them with git restore Dockerfile.
To build the new image using the Dockerfile.dev, run the below command:
docker build -f Dockerfile.dev -t pelican-dev/panel:latest .This will still output a built image with the same tag name as previous versions so your docker-compose.yml will still function as normal.
Breaking Changes for Panel v1.0.0-beta21 -> v1.0.0-beta22
There is a known issue where node ports may get reset back to 8080 after updating between these versions.
This is the announcement made in the Discord server:
To fix this problem, navigate to Nodes -> wings1 (or your Node node name) -> Basic Settings -> update the port from 8080 to 443, or whatever port you set during installation.
Breaking Changes for Panel v1.0.0-beta30 -> v1.0.0-beta31
This error may be printed to the Panel logs when upgrading from a previous version to beta31.
The “/var/www/html/plugins/” directory does not exist.
This issue and solution is discussed in depth in this Discord thread, but I’ve included the condensed version below.
The issue for me was twofold. The ~/pelican/panel/data directory was owned by root:root when it needed to be owned by 82:82, and a code change was missing to create the directory automatically for installations with Docker bind-mounts (like we have). We can easily fix it by changing the directory permissions and creating the folder manually.
cd ~/pelicandocker compose down # Stop the containers
sudo chown -R 82:82 panel/data # Change the permissions of the ~/panel/data directory and childrendocker compose up -dThen, the plugins directory can be manually created and the compose stack restarted:
docker compose exec panel /bin/mkdir /pelican-data/pluginsdocker compose downdocker compose up -dAfter running the above commands, verify the error is no longer printed to the Panel logs with docker logs --follow pelican_panel.