Instalação
Este guia coloca o servidor no ar. Para os jogadores se conectarem, depois é preciso compilar o cliente apontando para o seu servidor: veja Cliente do jogo.
Requisitos
| Requisito | Mínimo recomendado |
|---|---|
| Sistema | Linux x86_64 (amd64) ou ARM64 |
| RAM | 2 GB |
| CPU | 2 vCPU |
| Docker | 24.0+ |
| Docker Compose | 2.20+ |
As imagens publicadas servem para linux/amd64 e linux/arm64, e a do banco de dados usa MySQL 8.4 LTS.
Em máquinas ARM com 1 GB de RAM ou menos, habilite 2 GB de swap antes de compilar as imagens.
Portas
| Porta | Protocolo | Serviço |
|---|---|---|
44405 |
TCP | ConnectServer (lista de servidores) |
55601 |
UDP | ConnectServer |
55901 |
TCP | GameServer |
8085 |
TCP | Painel web (opcional) |
Com UFW:
ufw allow 44405/tcp
ufw allow 55601/udp
ufw allow 55901/tcp
Instalar com Docker
1. Clonar o repositório
git clone https://github.com/EmanuelCatania/Mu-Linux-0.97k.git
cd Mu-Linux-0.97k
2. Configurar o .env
cp .env.example .env
nano .env
Antes da primeira inicialização, mude pelo menos:
# IP público do VPS: é o que o ConnectServer passa ao cliente
PUBLIC_IP=203.0.113.10
# Senhas do MySQL
MYSQL_ROOT_PASSWORD=senha_segura_root
MYSQL_PASSWORD=senha_segura_user
DB_PASS=senha_segura_user
# Segredo das sessões web (um texto aleatório longo)
SESSION_SECRET=troque-isto-por-um-texto-aleatorio-longo
DB_PASS tem que ser igual a MYSQL_PASSWORD. A referência completa está em Configuração.
3. Subir o stack
Com as imagens publicadas no Docker Hub, sem compilar nada (recomendado):
docker compose -f docker-compose.images.yml up -d
Ou compilando as imagens a partir do código do repositório:
docker compose up -d --build
Isso sobe o MySQL, o servidor (ConnectServer, JoinServer, DataServer e GameServer) e o painel web.
docker compose ps # estado dos containers
docker compose logs -f # logs em tempo real
Ao iniciar, o servidor mostra sua versão e o cliente compatível:
MU Linux server 0.97.30 | Cliente compatible: https://github.com/EmanuelCatania/Mu-97k-Client-Source/releases/tag/0.97.30
Com o compose de imagens, adicione -f docker-compose.images.yml a cada comando docker compose.
4. Entrar no painel web
O painel fica na porta 8085 (http://SEU_IP:8085) ou no domínio do seu proxy reverso. A administração fica em /admin/.
O usuário inicial é admin / 123456, e o primeiro acesso obriga a trocar a senha. Depois, um assistente deixa você escolher o idioma padrão do site (espanhol, inglês ou português) e o visual. Veja Painel Admin.
5. Compilar o cliente
Com o servidor rodando, compile o cliente com o endereço do seu servidor: Cliente do jogo.
Editor de arquivos (opcional)
O editor adiciona backups por arquivo, snapshots completos dos dados do servidor e a recarga automática ao salvar pelo painel:
# No .env
EDITOR_ENABLED=1
EDITOR_API_URL=http://mu-editor:8090
docker compose -f docker-compose.yml -f docker-compose.editor.yml up -d --build
Atualizar
docker compose -f docker-compose.images.yml pull mu-server
docker compose -f docker-compose.images.yml up -d --no-deps mu-server
Para fixar uma versão em vez de latest, mude a imagem do mu-server para emapupi/mu-linux-97k:0.97.30.
Os dados do jogo não são atualizados com a imagem. Eles ficam num volume persistente (/opt/mu/Data dentro do container) para não perder suas mudanças. Cada versão nova indica nas notas do seu Release quais arquivos é preciso integrar manualmente. Por exemplo, para passar à 0.97.30 é preciso adicionar as linhas dos novos comandos GM: veja Comandos GM e recargas.
Atualize o cliente para a mesma versão do servidor.
Pterodactyl
Há eggs para o servidor e o site na pasta Pterodactyl eggs do repositório, e cada Release traz os arquivos que o instalador usa (mu-linux-97k-server-amd64.tar.gz, mu-linux-97k-server-arm64.tar.gz e mu-linux-97k-web.tar.gz).
- Importe os eggs no painel do Pterodactyl.
- No servidor, escolha a versão na variável
MU_RELEASE_TAG(por exemplo0.97.30). - Instale: o instalador baixa do Release o arquivo da sua arquitetura.
Para atualizar uma instalação existente, não reinstale: o instalador também extrai configurações e dados. Com o servidor parado, extraia o arquivo da sua arquitetura numa pasta temporária, substitua os quatro binários e o start.sh, e integre as mudanças de Data indicadas no Release.
Sem Docker
O servidor também pode ser compilado manualmente com CMake, no Linux (x64 e ARM64) e no Windows (x86 e x64). Os passos estão no README do servidor.
A instalação recomendada e com suporte é a de Docker no Linux. O servidor compila no Windows, mas essa instalação não tem suporte.
Recriar o banco de dados
Se você mudar as credenciais do MySQL depois da primeira inicialização, é preciso recriar o volume do banco:
docker compose down -v
docker compose up -d
⚠️ Isso apaga contas e personagens. Faça um backup antes.
Solução de problemas
O servidor não aparece no cliente: confira se PUBLIC_IP é o IP público correto, se as portas estão abertas e se o cliente foi compilado com o endereço do seu servidor.
O cliente conecta mas não entra: o CustomerName, o ServerSerial ou a versão do cliente não coincidem com os do servidor. Veja Cliente do jogo.
O painel web não carrega: espere o MySQL passar no health check e confira docker compose ps.
Erros do GameServer: docker compose logs mu-server.