From Plesk to Containers: Pterodactyl on Docker

Back in the day, Plesk was the go-to platform for many developers and administrators who wanted to manage their web services in an intuitive manner.

Today with the advent of container technology, I have completely transitioned from Plesk to a container-centric setup. In sync with this evolution, Pterodactyl now offers a docker-compose file (here), rendering my previous tutorial outdated.

Installing Pterodactyl has become straightforward:

  1. Grab the compose or initiate a Stack in Portainer
    https://github.com/pterodactyl/panel/blob/develop/docker-compose.example.yml
  2. Tweak the compose to your preference
    1. Simply generate and insert a random passwords for MySQL
    2. Adapt the URL, your E-Mail and E-Mail Settings
  3. Position a reverse proxy, like traefik, upfront.

As for the reverse-proxy, I employ traefik. Its strength lies in auto-routing to containers. Set up as a compose stack inside Portainer with network mode host, it functions perfectly with Pterodactyl.
Utilizing wildcard certificates, I was able to effortlessly append the label, activating the game panel:

  panel:
    image: ghcr.io/pterodactyl/panel:latest
    restart: always
    labels:
      - traefik.enable=true  
      - traefik.http.routers.ptero.rule=Host(`gamepanel.example.com`)
  ...

One cannot overlook another significant merit: the simplicity of updates. A mere repull of the image, followed by a container recreation (or executing docker compose up -d), facilitates automatic database updates and other internal tasks.

Conclusion

Provisioning services has become much easier, provided they have appropriate container support!