{"id":26495117,"url":"https://github.com/edythecow/docker-pterodactyl","last_synced_at":"2025-05-16T15:02:36.667Z","repository":{"id":41531866,"uuid":"200720998","full_name":"EdyTheCow/docker-pterodactyl","owner":"EdyTheCow","description":"Running Pterodactyl Panel inside docker containers behind Traefik reverse proxy","archived":false,"fork":false,"pushed_at":"2025-01-07T14:45:26.000Z","size":51,"stargazers_count":318,"open_issues_count":11,"forks_count":64,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-16T15:01:49.559Z","etag":null,"topics":["docker","docker-compose","pterodactyl","traefik"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EdyTheCow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-08-05T20:04:02.000Z","updated_at":"2025-05-10T13:44:33.000Z","dependencies_parsed_at":"2025-03-20T10:46:26.304Z","dependency_job_id":null,"html_url":"https://github.com/EdyTheCow/docker-pterodactyl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdyTheCow%2Fdocker-pterodactyl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdyTheCow%2Fdocker-pterodactyl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdyTheCow%2Fdocker-pterodactyl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EdyTheCow%2Fdocker-pterodactyl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EdyTheCow","download_url":"https://codeload.github.com/EdyTheCow/docker-pterodactyl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254553936,"owners_count":22090415,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","pterodactyl","traefik"],"created_at":"2025-03-20T10:36:05.806Z","updated_at":"2025-05-16T15:02:36.622Z","avatar_url":"https://github.com/EdyTheCow.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"500\" src=\"https://raw.githubusercontent.com/BeefBytes/Assets/master/Other/container_illustration/v2/dockerized_pterodactyl.png\"\u003e\n\u003c/p\u003e\n\n# 📚 About\nThere’s a lack of information about setting up and running Pterodactyl Panel inside docker using Traefik as a reverse proxy. This guide focuses on the fastest and easiest way to do that! This setup has been tested and is currently running in a production environment. All of images used in this setup are from official sources and even uses official compose files provided by Pterodactyl with addition of Traefik.\n\n# 🧰 Getting Started\nThis guide assumes you have at least two servers, one for panel and one for wings. You're fine by using a cheap VPS for the panel, while wings may require a higher spec server depending on the game servers you're planning to run.\n\n### Requirements\n- Domain\n- Two or more servers\n- [Docker](https://docs.docker.com/engine/install/ubuntu/)\n- [Docker Compose](https://docs.docker.com/compose/install/)\n\n### DNS\nCreate `A record` pointing to panel's server IP, if you're using Cloudflare you can proxy this record through Cloudflare.\n\nCreate second `A record` pointing to wings server IP. If you're using Cloudflare, do not proxy this record! There's no advantages for proxying wings server. If it is proxied the server SFTP details in the panel will point to Cloudflare's IP rather than wings.\n\n# 🏗️ Installation\n\n### Preparations / Setting up Traefik\n\u003cb\u003eClone repository\u003c/b\u003e\u003cbr /\u003e\n```\ngit clone https://github.com/EdyTheCow/pterodactyl-docker.git\n```\n\n\u003cb\u003eSet correct acme.json permissions\u003c/b\u003e\u003cbr /\u003e\n\nNavigate to `_base/data/traefik/` and run\n```\nsudo chmod 600 acme.json\n```\n\n\u003cb\u003eStart docker compose\u003c/b\u003e\u003cbr /\u003e\nInside of `_base/compose` run\n ```\ndocker-compose up -d\n ```\n\n### Setting up Panel\n\n\u003cb\u003eConfigure variables\u003c/b\u003e\u003cbr /\u003e\nNavigate to `panel/compose/.env` and set `PANEL_DOMAIN` to the domain you pointed to panel's server earlier.\n\nNavigate to `panel/compose/docker-compose.yml` and set these variables\n\n\n| Variable | Example | Description |\n|-|:-:|-|\n| MYSQL_ROOT_PASSWORD | - | Use a password generator to create a strong password |\n| MYSQL_PASSWORD | - | Don't reuse your root's password for this, generate a new one |\n| APP_URL | https://panel.example.com | Same as `PANEL_DOMAIN` but with `https://` included|\n\nRest of the variables can be set as desired, these three are required for panel's basic functionality.\n\n\u003cb\u003eStart docker compose\u003c/b\u003e\u003cbr /\u003e\nInside of `panel/compose` run\n ```\ndocker-compose up -d\n ```\nNavigate to the domain you've set for `PANEL_DOMAIN` earlier and make sure panel is up and running.\n\n\u003cb\u003eCreate a new user\u003c/b\u003e\u003cbr /\u003e\nInside of `panel/compose` run\n ```\ndocker-compose run --rm panel php artisan p:user:make\n ```\nLogin into the panel using newly created user.\n\n\u003cb\u003eCreate a new node\u003c/b\u003e\u003cbr /\u003e\nNavigate to the admin control panel and add a new `Location`. Then navigate to `Nodes` and create a node.\n\n| Setting | Set to | Description |\n|-|:-:|-|\n| FQDN | Wings domain | Domain you pointed to wings server|\n| Behind Proxy | Behind Proxy | Set this to `Behind Proxy` for Traefik to work properly|\n| Daemon Port | 443 | Change the default port |\n\nRest of the settings can be set as you desire. You can leave `Daemon Server File Directory` as is unless you want to store servers data in a specific location. In that case make sure to read instruction in `wings/compose/.env`. Otherwise proceed with the guide.\n\n### Setting up Wings\nThe guide assumes you're setting this up on a different server than the panel is running on!\nGo back to the `Preparations / Setting up Traefik` section and follow the same instruction for setting up Traefik.\n\n\u003cb\u003eConfigure variables\u003c/b\u003e\u003cbr /\u003e\nNavigate to `wings/compose/.env` and set `WINGS_DOMAIN` to the domain you pointed to wings server earlier.\n\n\u003cb\u003eCopying daemon's config\u003c/b\u003e\u003cbr /\u003e\nNavigate to the panel in your web browser and find the node you created earlier. Click on `Configuration` tab and copy the contents into `wings/data/wings/etc/config.yml`.\n\n\u003cb\u003eStart docker compose\u003c/b\u003e\u003cbr /\u003e\n ```\ndocker-compose up -d\n ```\n\n# 🐛 Known issues\n- None\n\n# 📜 Credits\n- Logo created by Wob - [Dribbble.com/wob](https://dribbble.com/wob)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedythecow%2Fdocker-pterodactyl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedythecow%2Fdocker-pterodactyl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedythecow%2Fdocker-pterodactyl/lists"}