Como configurar um servidor dedicado de Valheim na VPS com backups automáticos e gerenciamento de mods
Servidores de jogos · Por Kevin Marcondes · Publicado em · Atualizado em · 8 min de leitura
Quer hospedar seu próprio servidor de Valheim na VPS com segurança, backups automáticos e suporte a mods? Neste guia, você aprende como configurar um servidor dedicado de Valheim na VPS, preparar o firewall, automatizar backups e instalar mods via BepInEx, tudo passo a passo e com comandos prontos para copiar e colar.
1. Pré-requisitos e planejamento da VPS
Você precisa de uma VPS Linux atualizada (Ubuntu ou Debian) e um usuário com privilégios de sudo. As etapas exigem acesso root/sudo. Planeje diretórios de dados, retenção de backups e horários de tarefas.
:
Recomendações úteis:
- Escolha um tamanho de VPS proporcional a jogadores e mods. Veja critérios em como escolher o tamanho certo de VPS.
- Tenha o sistema base pronto. Se necessário, siga como instalar o Ubuntu Server.
- Anote nome do mundo, nome do servidor, porta e senha. A senha deve ser forte.
- Abra as portas somente necessárias. Se usar UFW, veja como configurar firewall no Ubuntu com UFW.
- Sistema: Ubuntu/Debian atualizados com sudo
- Portas UDP 2456–2458 liberadas no firewall e na VPS
- Espaço em disco para mundos e backups
- Nome do mundo, porta e senha do servidor definidos
2. Instalar dependências e SteamCMD no Linux
Instale SteamCMD e utilitários. Em algumas distros, é necessário habilitar arquitetura i386. Crie um usuário dedicado para isolar o serviço e o diretório do servidor.
sudo apt update
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1 unzip
# Usuário dedicado e diretório do servidor
sudo useradd -r -m -d /home/steam -s /bin/bash steam || true
sudo mkdir -p /opt/valheim
sudo chown -R steam:steam /opt/valheim
3. Baixar e organizar o servidor dedicado de Valheim
Use o SteamCMD para baixar o servidor dedicado. Em seguida, crie um script de inicialização com as opções do Valheim e aponte o diretório de saves para um caminho separado (facilita backups). Altere a senha no script antes de iniciar.
| Caminho | Descrição |
|---|---|
| /opt/valheim | Binários do servidor Valheim |
| /opt/valheim/data | Mundos e saves (definidos por -savedir) |
| /opt/valheim/BepInEx | Pasta de mods e configurações (após instalar BepInEx) |
| /opt/valheim/backups | Arquivos .tgz de backup |
| /etc/systemd/system/valheim.service | Serviço systemd do servidor |
# Baixar/atualizar servidor dedicado (AppID 896660)
sudo -u steam /usr/games/steamcmd +login anonymous \
+force_install_dir /opt/valheim \
+app_update 896660 validate +quit
# Script de inicialização
sudo -u steam bash -lc 'cat > /opt/valheim/start.sh <<"EOF"
#!/bin/bash
set -euo pipefail
export LD_LIBRARY_PATH=/opt/valheim/linux64:$LD_LIBRARY_PATH
export SteamAppId=892970
NAME="Servidor Valheim"
WORLD="mundo1"
PASSWORD="TroqueEstaSenha"
PORT=2456
SAVEDIR="/opt/valheim/data"
mkdir -p "$SAVEDIR"
cd /opt/valheim
./valheim_server.x86_64 -name "$NAME" -port $PORT -world "$WORLD" -password "$PASSWORD" -savedir "$SAVEDIR" -public 1
EOF'
sudo chmod +x /opt/valheim/start.sh
sudo chown steam:steam /opt/valheim/start.sh
4. Criar serviço systemd para iniciar automaticamente
Crie um serviço systemd para iniciar o servidor ao boot, reiniciar em falhas e facilitar o gerenciamento. Guarde o nome do serviço para consultar logs.
sudo bash -c 'cat > /etc/systemd/system/valheim.service <<"EOF"
[Unit]
Description=Valheim Dedicated Server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
Group=steam
WorkingDirectory=/opt/valheim
ExecStart=/opt/valheim/start.sh
Restart=on-failure
RestartSec=15
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
EOF'
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
sudo systemctl status --no-pager valheim || true
5. Abrir firewall e testar conectividade
Libere as portas padrão do Valheim (UDP 2456–2458). Depois, verifique se a porta está escutando e os logs do serviço. Se a VPS estiver atrás de NAT, ajuste o redirecionamento no provedor.
Como confirmar que funcionou: abra o Valheim no cliente e conecte pelo IP público da VPS e porta 2456. Se não aparecer, tente "Conectar a IP" manualmente.
- Se usar outro firewall além do UFW, replique as regras.
- Portas devem ser UDP. TCP não é necessário nas portas 2456–2458.
- Verifique se a senha atende aos requisitos do jogo.
# UFW (Ubuntu)
sudo ufw allow 2456:2458/udp
sudo ufw reload
# Checar porta e logs
sudo ss -lunp | grep 2456 || true
sudo journalctl -u valheim -n 50 --no-pager
6. Backups automáticos com rotação (local e opcional nuvem)
Vamos criar um script que compacta os mundos e remove backups antigos. Em seguida, um timer systemd executa o backup periodicamente. Testar a restauração é parte essencial do backup. Para cópia externa, adicione ao script uma etapa com ferramenta de nuvem (ex.: AWS CLI) conforme sua conta.
- Defina a retenção conforme a frequência de jogo.
- Armazene backups em disco separado quando possível.
- Para offsite, adicione sincronização cifrada para um bucket.
# Pastas e script
sudo install -d -o steam -g steam /opt/valheim/scripts /opt/valheim/backups
sudo tee /opt/valheim/scripts/backup.sh >/dev/null <<'EOF'
#!/bin/bash
set -euo pipefail
SAVEDIR="/opt/valheim/data"
DEST="/opt/valheim/backups"
RETENTION_DAYS=7
TS=$(date +%F-%H%M)
mkdir -p "$DEST"
# Arquiva somente os dados do mundo
tar -czf "$DEST/world-$TS.tgz" -C "$SAVEDIR" .
# Remove backups antigos conforme retenção
find "$DEST" -type f -name "world-*.tgz" -mtime +$RETENTION_DAYS -delete
EOF
sudo chmod +x /opt/valheim/scripts/backup.sh
# Unidade e timer do systemd
sudo tee /etc/systemd/system/valheim-backup.service >/dev/null <<'EOF'
[Unit]
Description=Backup Valheim worlds
[Service]
Type=oneshot
User=steam
Group=steam
ExecStart=/opt/valheim/scripts/backup.sh
EOF
sudo tee /etc/systemd/system/valheim-backup.timer >/dev/null <<'EOF'
[Unit]
Description=Schedule Valheim backups
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now valheim-backup.timer
sudo systemctl list-timers --all | grep valheim-backup || true
7. Gerenciamento de mods com BepInEx (servidor)
Para rodar mods, instale o BepInEx Pack para Valheim no servidor. Baixe o pacote em sua máquina, envie o .zip para a VPS e extraia na pasta do servidor. Pare o serviço antes de alterar mods. Após o primeiro start com BepInEx, a pasta de plugins será criada.
Instalação geral:
- Envie o arquivo ZIP do BepInEx para /tmp da VPS.
- Extraia no diretório do servidor.
- Inicie o servidor uma vez para gerar pastas.
- Coloque os mods em BepInEx/plugins. Clientes precisam dos mesmos mods.
# Supondo o pacote em /tmp/BepInExPack_Valheim_x64.zip
sudo systemctl stop valheim
sudo -u steam unzip -o /tmp/BepInExPack_Valheim_x64.zip -d /opt/valheim
# Inicie uma vez para gerar BepInEx/ e configs
sudo systemctl start valheim
sleep 10
sudo systemctl stop valheim
# Exemplo: instalar um mod (ZIP contendo pastas do BepInEx)
sudo -u steam unzip -o /tmp/AlgumMod.zip -d /opt/valheim
sudo systemctl start valheim
8. Atualizações, logs e solução de problemas
Mantenha o servidor atualizado pelo SteamCMD. Veja logs no journalctl e em BepInEx. Se algo falhar, reverta com um backup recente. Atualizações de jogo e mods devem ser coordenadas para evitar incompatibilidades.
Dicas rápidas de diagnóstico:
- Porta não aparece: confirme UFW, regras no provedor e porta 2456/UDP em escuta.
- Quedas: revise recursos da VPS e mods recentes.
- Mismatch de versão: alinhe versão do cliente, servidor e mods.
- Senha inválida: use uma senha forte sem caracteres estranhos.
# Atualizar servidor dedicado
sudo -u steam /usr/games/steamcmd +login anonymous \
+force_install_dir /opt/valheim \
+app_update 896660 validate +quit
# Reiniciar e acompanhar logs
sudo systemctl restart valheim
sudo journalctl -u valheim -f
Perguntas frequentes
Quais portas preciso liberar para o servidor de Valheim?
O servidor usa, por padrão, as portas UDP 2456 a 2458. Libere essas portas no firewall da VPS e, se houver, no painel do provedor. Se alterar a porta no script, ajuste o intervalo correspondente. Use ferramentas como ss ou netstat para confirmar que a porta está em escuta.
Onde ficam os arquivos do mundo e como restaurar um backup?
No exemplo do guia, os saves ficam em /opt/valheim/data (definido por -savedir). Para restaurar, pare o serviço, descompacte o .tgz do backup nessa pasta e reinicie. É recomendável testar a restauração regularmente em um ambiente de teste para garantir a integridade dos dados.
Como atualizar o servidor sem perder progresso?
Pare o servidor, rode o SteamCMD para atualizar, e inicie novamente. Faça um backup antes de qualquer atualização. Se usar mods, verifique se há versões compatíveis com a atualização do jogo. Em caso de problemas, restaure o backup mais recente e teste os mods individualmente.
Posso usar mods? Os jogadores precisam instalar também?
Sim. Instale o BepInEx no servidor e coloque os mods em BepInEx/plugins. Na maioria dos casos, os jogadores precisam ter os mesmos mods e versões compatíveis no cliente. Mantenha uma lista clara de mods e versões para o seu grupo, e atualize de forma coordenada.
Como mover o servidor para outra VPS?
Copie a pasta de instalação (/opt/valheim) e, principalmente, o diretório de dados (-savedir) para a nova VPS. Recrie o serviço systemd, libere as portas e teste. Se você já usa backups versionados, a migração se resume a restaurar o backup e ajustar o DNS, quando aplicável.
Precisa de ajuda para manter seu servidor estável?
Posso auxiliar na automação de backups, monitoramento e manutenção contínua do seu servidor Valheim na VPS.
Falar sobre automação e manutençãoVeja também
- tutorial: implementar Canary releases com Traefik em Docker Compose usando headers e weight routing para deploys graduais de aplicações PHP
- Tutorial: configurar HAProxy com Let's Encrypt e healthchecks para balanceamento de tráfego entre containers Docker em VPS (passo a passo)
- Tutorial prático: implementar mTLS entre Nginx e microserviços usando smallstep CA em Docker Compose
- Tutorial: configurar cgroup v2 e systemd ResourceControl para limitar CPU, memória e I/O de containers Docker no Debian