Tutoriais de VPS
Montar um painel de servidores de jogos Pterodactyl em uma VPS (2026): tutorial completo de Panel, Wings, Docker, HTTPS e backups
Implante o Pterodactyl Panel e o Wings em uma VPS: cobre configuração do servidor, nós Docker, HTTPS com domínio, Eggs, alocação de portas, criação de servidores de jogos, backups, reforço de segurança e solução de problemas comuns.

Montar um painel de servidores de jogos Pterodactyl em uma VPS (2026): tutorial completo de Panel, Wings, Docker, HTTPS e backups
Se você quer gerenciar vários servidores de jogos como Minecraft, Rust, Palworld e CS2 a partir de uma única VPS, o Pterodactyl é uma solução de código aberto com alto volume de buscas e adoção real. Ele não "ganha desempenho automaticamente depois que o painel é instalado"; na verdade, ele unifica usuários, instâncias de jogo, limites de recursos, arquivos, consoles e backups. O que realmente executa os processos do jogo continua sendo sua CPU, memória, disco e rede.
Este artigo segue o fluxo oficial do Pterodactyl 1.x para explicar a divisão de tarefas entre Panel e Wings, como escolher uma VPS, como configurar domínios e HTTPS, e o que verificar quando um nó fica offline, as portas não respondem ou os backups não podem ser restaurados.
O Pterodactyl é composto por duas partes:
- Panel: painel administrativo web em Laravel que armazena usuários, servidores, Eggs, nós e dados de permissões.
- Wings: serviço em Go instalado nos nós de jogo que inicia e para contêineres de jogo via Docker.
Um Node no Panel corresponde a um servidor que executa o Wings; uma Allocation é uma combinação de IP e porta atribuída a um servidor de jogo; um Egg define a imagem do jogo, o comando de inicialização, as variáveis e o script de instalação.
Panel e Wings podem ser instalados na mesma VPS KVM, o que atende servidores pessoais e testes em pequena escala. Quando você precisa hospedar vários usuários ou vários nós, é melhor separar o Panel, o banco de dados e os nós de jogo, para que um servidor de jogo saturando a CPU não deixe o painel administrativo inacessível.
O Panel em si não é pesado; os servidores de jogo é que consomem recursos. Antes de comprar, estime com base no jogo, no número de jogadores, nos plugins e no tamanho do mapa.
| Cenário | Configuração inicial sugerida | Observações |
|---|---|---|
| Apenas o Panel | 2 núcleos 2GB, 30GB SSD | Panel, MariaDB, Redis, Nginx |
| Servidor Minecraft pequeno | 4 núcleos 8GB, 80GB NVMe | Adequado para poucos jogadores e plugins leves |
| Várias instâncias de jogo | 6–8 núcleos, 16GB+, 160GB NVMe | É preciso reservar recursos para cada instância |
| Jogos pesados como Rust, Palworld | CPU de alta frequência, 16GB+, NVMe | Priorize desempenho por núcleo, disco e proteção DDoS |
A documentação oficial indica claramente: o Wings precisa de Linux capaz de executar Docker corretamente. KVM funciona de forma confiável; OpenVZ, Virtuozzo e alguns ambientes LXC costumam não ter os recursos necessários. Antes de comprar, você pode executar:
systemd-detect-virt
Se o resultado for openvz ou lxc, confirme primeiro com o provedor o suporte a Docker e contêineres aninhados. Para recomendações mais completas de escolha para jogos, consulte Recomendações de VPS para servidores de jogos.
A documentação oficial atual oferece suporte a Ubuntu 22.04/24.04, Debian 11/12/13, além de RHEL, Rocky Linux e AlmaLinux 8/9. O exemplo abaixo usa Ubuntu 24.04.
Recomenda-se preparar dois domínios:
panel.example.com: painel administrativo;node.example.com: nó Wings.
As portas públicas comuns incluem:
- 80/443: web do Panel e HTTPS;
- 8080 ou 8443: API HTTP/HTTPS do Wings;
- 2022: SFTP do Wings;
- Portas de jogo: por exemplo, o Minecraft costuma usar 25565, mas o Egg e a Allocation real devem prevalecer.
Verifique primeiro se há conflitos:
sudo ss -lntup | grep -E ':(80|443|8080|8443|2022)\b' || true
Se encontrar uma porta em uso, não pare um processo desconhecido sem mais nem menos; primeiro confirme a qual serviço ele pertence com o Guia de solução de portas ocupadas em VPS.
O Pterodactyl Panel atualmente exige PHP 8.2 ou 8.3, MySQL 5.7.22+ ou MariaDB 10.2+, Redis, um servidor web, Composer 2, além de Git, curl, tar e unzip. No Ubuntu 24.04 você pode instalar o PHP 8.3:
sudo apt update
sudo apt install -y \
php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \
mariadb-server nginx redis-server tar unzip git curl
curl -sS https://getcomposer.org/installer \
| sudo php -- --install-dir=/usr/local/bin --filename=composer
Crie o banco de dados e um usuário dedicado; a senha deve ser substituída por uma senha forte aleatória:
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY '替换为强密码';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
EXIT;
sudo mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
sudo curl -Lo panel.tar.gz \
https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
sudo tar -xzvf panel.tar.gz
sudo chmod -R 755 storage/* bootstrap/cache/
sudo cp .env.example .env
sudo COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
sudo php artisan key:generate --force
O APP_KEY é usado para descriptografar dados sensíveis, como API Keys. Se você fizer backup apenas do banco de dados e perder o .env, ainda poderá aparecer Invalid MAC após a restauração, então salve esta linha imediatamente em um gerenciador de senhas ou em um backup criptografado separado:
grep APP_KEY /var/www/pterodactyl/.env
Continue configurando o ambiente, o banco de dados e o e-mail:
sudo php artisan p:environment:setup
sudo php artisan p:environment:database
sudo php artisan p:environment:mail
sudo php artisan migrate --seed --force
sudo php artisan p:user:make
sudo chown -R www-data:www-data /var/www/pterodactyl/*
Para e-mail, recomenda-se SMTP. Não interrompa o migrate --seed --force durante a inicialização; ele cria as tabelas de dados e grava os Nests e Eggs.
A configuração do Nginx do Panel deve seguir o modelo oficial de Webserver Configuration compatível com o seu sistema, e a raiz do site deve apontar para:
/var/www/pterodactyl/public
Primeiro aponte o panel.example.com para a VPS e depois solicite um certificado Let's Encrypt. Depois que o Panel usar HTTPS, o Wings também deverá usar HTTPS compatível com o FQDN do Node; caso contrário, o navegador e o Panel bloquearão conexões inseguras.
Adicione uma tarefa agendada que seja executada a cada minuto:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
O comando de inicialização principal do worker de filas é:
/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
Coloque o pteroq.service oficial em /etc/systemd/system/ e ative-o:
sudo systemctl enable --now redis-server
sudo systemctl enable --now pteroq.service
Se as tarefas agendadas não forem executadas, verifique em ordem o systemctl status pteroq, o journalctl -xeu pteroq, a versão do PHP e o fuso horário do sistema.
O Wings depende oficialmente apenas de curl e Docker. Em produção, recomenda-se instalar a partir do repositório oficial do Docker; para uma verificação rápida, você pode usar:
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
sudo systemctl enable --now docker
sudo mkdir -p /etc/pterodactyl
sudo curl -L -o /usr/local/bin/wings \
"https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
No painel administrativo, acesse Admin → Nodes → Create New para criar um nó e depois abra a Configuration desse nó e salve a configuração em:
/etc/pterodactyl/config.yml
Primeiro inicie em modo de depuração:
sudo wings --debug
Depois de confirmar que não há erros, crie o serviço systemd seguindo o wings.service oficial e ative-o:
sudo systemctl enable --now wings
sudo systemctl status wings
Acesse Nodes → 节点 → Allocation e preencha o IP real da interface de rede do servidor e o intervalo de portas de jogo. A documentação oficial exige explicitamente não usar 127.0.0.1 como Allocation. Você pode ver os endereços com o seguinte comando:
hostname -I | awk '{print $1}'
Depois:
- No Admin, selecione Servers e crie um servidor;
- Selecione o Node, a Allocation, o Nest e o Egg;
- Defina memória, disco, CPU e quantidade de backups;
- Confirme a imagem Docker e as variáveis de inicialização;
- Após criar, acompanhe a saída da instalação no console.
Não aloque toda a memória do nó. O sistema hospedeiro, o Docker, o Wings, o Panel e o banco de dados precisam de folga. Ao oferecer hospedagem pública, você também deve limitar CPU, disco e quantidade de processos para evitar que um usuário derrube a máquina inteira.
Abra apenas as portas realmente necessárias:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 8080/tcp
sudo ufw allow 2022/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
Se o Wings usar 8443, não abra também a 8080 sem uso. As portas de jogo devem ser abertas com precisão conforme as Allocations; não abra todas as portas por conveniência.
Quando um nó mostrar coração vermelho ou "Cannot connect to server", verifique em ordem:
sudo systemctl status wings
sudo journalctl -u wings -n 100 --no-pager
sudo wings --debug
dig +short node.example.com
curl -vk https://node.example.com:8443
Pontos principais a conferir:
- Se a Node Configuration no Panel corresponde ao
/etc/pterodactyl/config.yml; - Se o Wings também usa um certificado válido quando o Panel usa HTTPS;
- Se 8080/8443 e 2022 estão bloqueadas por firewall, security group ou NAT;
- Se o FQDN do Node resolve para o IP correto;
- Se o proxy da Cloudflare altera portas ou o modo SSL.
A Cloudflare não consegue ocultar o IP do nó para o tráfego de jogo. Mesmo que o Wings passe por um proxy, os jogadores continuam se conectando diretamente às portas de jogo; a proteção DDoS real deve vir do data center, da mitigação do provedor ou de um proxy dedicado.
Faça backup de pelo menos quatro partes:
- O banco de dados MariaDB/MySQL do Panel;
/var/www/pterodactyl/.env, especialmenteAPP_KEY;/etc/pterodactyl/config.yml;- Os dados de jogo e o diretório de backups do Wings.
Por padrão, os backups locais são armazenados via Wings, mas mantê-los no mesmo disco da VPS que os dados de jogo não protege contra falha da máquina inteira. Em produção, você pode usar backups compatíveis com S3 no Panel .env:
APP_BACKUP_DRIVER=s3
AWS_DEFAULT_REGION=auto
AWS_ACCESS_KEY_ID=替换为访问密钥
AWS_SECRET_ACCESS_KEY=替换为秘密密钥
AWS_BACKUPS_BUCKET=替换为存储桶
AWS_ENDPOINT=https://你的S3兼容端点
Depois de configurar os backups, é obrigatório fazer um simulado de restauração para confirmar que o banco de dados, o APP_KEY, a configuração dos Eggs e os saves do jogo podem ser restaurados juntos. Você pode combinar com o Guia de simulado de backup e restauração em VPS.
| Solução | Vantagens | Mais adequada para |
|---|---|---|
| Pterodactyl | Ecossistema maduro, Eggs abundantes, multinó e permissões completas | Vários jogos, vários usuários, cenários de hospedagem |
| Pelican | Continua uma arquitetura semelhante, projeto mais recente | Usuários dispostos a avaliar um novo ecossistema |
| PufferPanel | Implantação e uso relativamente diretos | Servidores domésticos, autohospedagem em pequena escala |
| Painéis de provedor | Menor esforço operacional | Quem não quer gerenciar Linux e Docker |
Se o Pterodactyl já funciona de forma estável, não migre às pressas apenas por mudanças de interface. Backups, monitoramento, proteção DDoS e capacidade dos nós costumam ser mais importantes do que trocar de painel.
Não é obrigatório. Servidores pessoais podem ser implantados na mesma máquina; para multinó ou hospedagem comercial, é melhor separar, para que a carga de jogo não afete o painel administrativo.
Na maioria dos casos, não é confiável. A documentação oficial indica que OpenVZ, Virtuozzo e alguns LXC podem não executar os recursos necessários do Docker; prefira KVM.
Normalmente porque o Wings não está em execução, as configurações não coincidem, há erro de DNS, o certificado é inválido ou 8080/8443 está bloqueada pelo firewall.
Não. Ele gerencia contêineres de jogo; não substitui a mitigação em nível de data center, a proteção Anycast ou proxies de tráfego de jogo.
Porque os dados criptografados também dependem do APP_KEY original. O banco de dados, o .env do Panel, a configuração do Wings e os dados de jogo devem ser copiados em conjunto.
A dificuldade do Pterodactyl não está em baixar o Panel, mas em conectar web, banco de dados, Redis, filas, Wings, Docker, DNS, certificados e portas de jogo em uma cadeia confiável. Implantações pequenas podem começar com uma única VPS KVM de 4 núcleos e 8GB; ao se preparar para hospedar vários jogadores ou jogos pesados, priorize CPUs de alta frequência, NVMe, memória suficiente e linhas com proteção DDoS real.
Antes de entrar no ar, faça três coisas finais: salve o APP_KEY, verifique se os backups em S3 ou em outra máquina podem ser restaurados e teste da rede externa o Panel, o SFTP do Wings e cada porta de Allocation de jogo.