this configuration is used for running in docker and only uses one machine.
i have used these docker-compose file for references:
- https://github.com/pterodactyl/wings/blob/develop/docker-compose.example.yml
- https://github.com/pterodactyl/panel/blob/1.0-develop/docker-compose.example.yml
Note
- in this setup, you will need domains/subdomains, you can use
duckdnsif you don't have one. - you need domains/subdomains for SSL certificates since the webui connects to the wings too so it might encounter security related errors and can't establish websocket connection.
- clone the repository
git clone https://github.com/rinkomizu/pterodactyl_docker- clone the .env.example file to
.env
cp .env.example .env- generate the
base64for pterodactyl panel and then COPY it (don't exclude thebase64:prefix).
echo "base64:$(openssl rand -base64 32)"- READ ALL COMMENTS in the
.envfile CAREFULLY, and follow the instructions inside the file. - edit the Caddyfile, change the
panel.example.comandwings.example.comto the domain or subdomains that you own. - edit the docker-compose.yml file.
Note
- READ ALL COMMENTS inside the file carefully.
- on line
53, you can edit thepanel's environment variables.
- after finish all of the configuration above, start all containers inside this directory.
sudo docker compose up -d- finalize the database setup for pterodactyl panel.
sudo docker compose exec panel php artisan migrate --seed --force- create an ADMINISTRATOR user on the pterodactyl (create an ADMINISTRATOR account is required at first).
sudo docker compose exec panel php artisan p:user:makeNote
- you can only follow this section if you have finished the #setup section above.\
- for the uploading limit to the panel, you should use
1024M by default.
- open a browser and go to
https://panel.example.com(wherepanel.example.comis the subdomain/domain that you own) - log into the ADMINISTRATOR account from step 9 from #setup section.
- On the top, there's a bar, find the button when you hover on, it will popup the word
Admin, and then click on it. Management>Locations, and click onCreate newand create a new location.Management>Nodes, click onCreate new, and follow the instructions:
name: the name of server/node you want.description: you can leave it blank or add description about the server/node.location: the location created in step 4.Node Visibility: this one is up to you.FQDN: usehttps://wings.example.com(where thewings.example.comis the subdomain/domain you used for the wings from first section)Communication over SSL: just keep SSL by default, unless you make the setup usehttp://then you will need to use to checkUse HTTP connectioninstead.Behind Proxy: useNot behind proxyby default unless you use Cloudflare with orange cloud in the DNS settings
Note
the orange cloud will proxy request to cloudflare server before the traffic reaches your server.
daemon server file directory: ignore it, just leave it to the pterodactyl decide.daemon port: ignore it, just leave it to the pterodactyl decide.daemon sftp: ignore it, just leave it to the pterodactyl decide.
Management>Nodes>Configuration, copy all the configuration file content, it should look like this:
debug: false
uuid: the_long_uuid_that_is_automatically_generated_by_pterodactyl
token_id: the_long_string_that_is_automatically_generated_by_pterodactyl
token: the_long_token_that_is_automatically_generated_by_pterodactyl
api:
host: 0.0.0.0
port: 8080
ssl:
enabled: false
cert: /etc/letsencrypt/live/wings/fullchain.pem
key:/etc/letsencrypt/live/wings/privkey.pem
upload_limit: 100
system:
data: /var/lib/pterodactyl/volumes
sftp:
bind_port: 2022
allowed_mounts: []
remote: 'https://panel.example.com'- and then use a text editor and change the configuration a bit, make sure to double check and know what you are doing, and then paste it into ./data/wings/config.yml file.
- you should change the
upload_limitfrom100to1024M.
- and then go back to your terminal, restart all containers in this directory:
sudo docker compose down
sudo docker compose up -d- go back to your browser,
Management>Servers, click onCreate newand few in the blanks. - you should be able to do the rest if you have gone this far, i need to stop here because the rest is up to you, some names and RAM configuration is already on the web, you can read it and setup it.
if the pterodactyl panel setup has error, you should debug by checking docker logs:
sudo docker compose logs -f- most errors are in the ./data/wings/config.yml.