I tried to re-install Portainer per the release notes to update to the HTTPS port change:
August 2025 (version 9.16):
DietPi-Software | Portainer Fresh installs and reinstalls will now enable HTTPS access on port 9442. Plain HTTP access via port 9002 remains possible for now, but will be probably disabled in the future. Let us know if you face any issues accessing Portainer via HTTPS, aside of the fact that you need to accept the self-signed certificate in browsers once.
Results of Recommendation
I followed the release notes to do a reinstall as instructed via dietpi-software reinstall.
So I need to delete the container and run a dietpi-software reinstall, right? Is there an easier way to change the port without rebuilding everything? I know this isn’t a DietPi issue after going through this with you, but any help would be appreciated. Thanks!
A few years back I moved to the EE version because it was free for individual users. When I tried reinstalling it through DietPi, everything seemed OK. No errors came up. But I could not reach the Portainer page in my browser. After checking the logs, I found out that Portainer flagged it as the wrong version. It said I would need to downgrade to CE if I wanted to keep using that version.
Do you recall the exact error message?
Portainer has an issue with latest docker version as docker raised the min API version. This seems to impact CE but not EE. However there are workaround.
I would expect, if you manually install Portainer EE, that you also know how to update it and expose another port on the host? I mean you did not install Portainer via dietpi-software in the first place then, or did you do that, and then manually replaced the portainer-ce container + image with the portainer-ee one?
Probably we should rename our software option to Portainer CE, to make clear what it is, and what it is not. So when installing Portainer EE (manually), you are on your own to maintain it. I do not know Portainer EE, cannot test it without paying money, hence cannot guarantee it works as expected our end.
To allow installing both concurrently, we could rename our container to --name='portainer-ce' as well.
Not sure whether you can use the Portainer EE volumes (data/config) on Portainer CE without issues.
EDIT: So it is “BE” not “EE”. Was it renamed from “Enterprise Edition” to “Business Edition” or so? The container image is still called portainer-ee but named “Portainer BE”, weird.
I first installed Portainer through the DietPi installer, long before I knew the Business edition did more than unlock extra features. When I heard you could get the Business version for free, I grabbed a license key, assuming it would simply enable the extra features. Instead, it swapped to its own image and changed the database behind the scenes. Had no idea it did any of this until I created this forum post. If I’d known it would turn into this much trouble, I wouldn’t have bothered. Since my whole setup came from the DietPi installer, that’s why I reached out for help.
I know this isn’t on you. It’s just frustrating that changing this port ended up being far more complicated than it should be.
Ah so, when adding a BE license key, Portainer upgrades itself? Then a dedicated container name wouldn’t prevent such, and caused even more confusion .
Hmm, then looks like, to be failsafe we would really need to detect BE vs CE and and install the variant previously used .
@salieri if there is no other reason to switch to CE, you can update the BE version with HTTPS port exposed like this:
# Check for existing Portainer container
local container=$(docker container ls -a | mawk '/portainer\/portainer(-ce|-ee)?( |$)/{print $1;exit}')
[[ $container ]] && G_EXEC docker container rm -f "$container"
local image=$(docker image ls -a | mawk '/portainer\/portainer(-ce|-ee)?( |$)/{print $3;exit}')
[[ $image ]] && G_EXEC docker image rm "$image"
docker volume ls -q | grep -xq 'portainer_data' || G_EXEC docker volume create portainer_data
# Deploy the Portainer container
G_DIETPI-NOTIFY 2 'Portainer will be deployed now. This could take a while...'
G_EXEC_OUTPUT=1 G_EXEC docker run -d -p '9002:9000' -p '9442:9443' --name=portainer --restart=always -v '/run/docker.sock:/var/run/docker.sock' -v '/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro' -v 'portainer_data:/data' 'portainer/portainer-ee'
@Joulinar do you remember why we check for /portainer/portainer as well as /portainer/portainer-ce? Was this to support the combined Portainer image before they split it into CE and BE?