# Pterodactyl panel Docker container > Docker Compose configuration for the [Pterodactyl Panel](https://github.com/Pterodactyl/Panel). Pterodactyl is an open-source control panel used for hosting numerous game-related services, such as Minecraft and Teamspeak servers. Setting it up, however, takes quite a few steps according to the [documentation](https://docs.pterodactyl.io/docs). This Docker Compose configuration is aimed at removing a majority of the steps so that the installation process is *almost* as simple as cloning this build script and running `docker-compose up`. There are other Docker Compose setups available, including the [one](https://github.com/parkervcp/pterodactyl-panel-Dockerfile) created by one of the project's primary developers, parkervcp. This differs from those setups in various ways for a couple of different reasons: 1. This setup splits the HTTP and PHP services into two different containers. Doing so allows for separation of concerns (a central Docker principle) and easier management of containers and Dockerfiles. 2. This setup uses Nginx instead of Caddy. Various [benchmarks](https://community.centminmod.com/threads/caddy-http-2-server-benchmarks.5170/#post-34367) [indicate](https://hackernoon.com/caddy-a-modern-web-server-vs-nginx-e9e4abc443e) that Nginx performs better than Caddy in handling requests. In addition to this, Nginx, while having a more complicated configuration file, doesn't enforce HTTPS, a feature of Caddy which only complicates the setup of the HTTP Docker container. ## Usage The instructions are fairly self explanatory: clone the repository and launch the project. Instructions on how to launch the project are listed below. All commands should be run from the repository directory. In your favorite text editor, open docker-compose.yml change the port that you want the panel binded to. See below for more details. Once that's done, build and start the project. ``` docker-compose -p pull docker-compose -p build docker-compose -p up ``` The panel is now online. If this is your first time booting the panel, you'll also need to run the install script, which will run all of the necessary configuration scripts and database migrations for you. ``` docker exec -it _php_1 install # Restart the panel to load changes. The install script will remind you to do so. docker restart _php_1 ``` The panel should now be ready, and you can connect to it via localhost at the port you specified in the Docker Compose file. ## API To set the port for the HTTP server, adjust the setting under services, http, and ports: ``` :80 ``` Two scripts are provided in order to aid with installation and upgrades. ``` # Use these scripts with the following command: docker exec -it _php_1