DocumentaçãoInstalação▾

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).

  1. Importe os eggs no painel do Pterodactyl.
  2. No servidor, escolha a versão na variável MU_RELEASE_TAG (por exemplo 0.97.30).
  3. 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.