{"owner":"pterodactyl","repo":"panel","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.example.yml","servicesCount":3,"services":[{"name":"database","image":"mariadb:11","restart":"always","command":"--default-authentication-plugin=mysql_native_password","environment":["MYSQL_PASSWORD=CHANGE_ME","MYSQL_ROOT_PASSWORD=CHANGE_ME_TOO","MYSQL_DATABASE=panel","MYSQL_USER=pterodactyl"],"volumes":["/srv/pterodactyl/database:/var/lib/mysql"]},{"name":"cache","image":"redis:alpine","restart":"always"},{"name":"panel","image":"ghcr.io/pterodactyl/panel:latest","restart":"always","ports":["80:80","443:443"],"environment":["APP_URL=http://example.com","APP_TIMEZONE=UTC","APP_SERVICE_AUTHOR=noreply@example.com","MAIL_FROM=noreply@example.com","MAIL_DRIVER=smtp","MAIL_HOST=mail","MAIL_PORT=1025","MAIL_USERNAME=","MAIL_PASSWORD=","MAIL_ENCRYPTION=true","DB_PASSWORD=CHANGE_ME","APP_ENV=production","APP_ENVIRONMENT_ONLY=false","CACHE_DRIVER=redis","SESSION_DRIVER=redis","QUEUE_DRIVER=redis","REDIS_HOST=cache","DB_HOST=database","DB_PORT=3306","HASHIDS_LENGTH=8"],"volumes":["/srv/pterodactyl/var/:/app/var/","/srv/pterodactyl/nginx/:/etc/nginx/http.d/","/srv/pterodactyl/certs/:/etc/letsencrypt/","/srv/pterodactyl/logs/:/app/storage/logs"]}],"exposedPorts":["80","443"],"dockerRunCommand":"docker run -d --name panel -p 80:80 --restart always ghcr.io/pterodactyl/panel:latest","podmanRunCommand":"podman run -d --name panel -p 80:80 --restart always ghcr.io/pterodactyl/panel:latest","skopeoInspectCommand":"skopeo inspect docker://ghcr.io/pterodactyl/panel:latest","orasPullCommand":"oras pull ghcr.io/pterodactyl/panel:latest","registryMeta":{"provider":"ghcr","image":"ghcr.io/pterodactyl/panel","canonicalImage":"ghcr.io/pterodactyl/panel:latest","latestTag":"latest","multiArch":["linux/amd64","linux/arm64"],"lastUpdated":"2026-10-22T22:01:38.721Z","cliCommands":{"dockerRun":"docker run -d --name panel -p 80:80 --restart always ghcr.io/pterodactyl/panel:latest","dockerPull":"docker pull ghcr.io/pterodactyl/panel:latest","podmanRun":"podman run -d --name panel -p 80:80 --restart always ghcr.io/pterodactyl/panel:latest","skopeoInspect":"skopeo inspect docker://ghcr.io/pterodactyl/panel:latest","orasPull":"oras pull ghcr.io/pterodactyl/panel:latest","composeYaml":"services:\n  panel:\n    image: ghcr.io/pterodactyl/panel:latest\n    restart: unless-stopped\n    ports:\n      - \"80:80\""}}}