DocumentaciónInstalación▾

Instalación

Esta guía levanta el servidor. Para que los jugadores se conecten, después hay que compilar el cliente apuntando a tu servidor: ver Cliente del juego.

Requisitos

Requisito Mínimo recomendado
Sistema Linux x86_64 (amd64) o ARM64
RAM 2 GB
CPU 2 vCPU
Docker 24.0+
Docker Compose 2.20+

Las imágenes publicadas sirven para linux/amd64 y linux/arm64, y la de la base de datos usa MySQL 8.4 LTS.

En equipos ARM con 1 GB de RAM o menos, habilitá 2 GB de swap antes de compilar las imágenes.

Puertos

Puerto Protocolo Servicio
44405 TCP ConnectServer (lista de servidores)
55601 UDP ConnectServer
55901 TCP GameServer
8085 TCP Panel web (opcional)

Con UFW:

ufw allow 44405/tcp
ufw allow 55601/udp
ufw allow 55901/tcp

Instalar con Docker

1. Clonar el repositorio

git clone https://github.com/EmanuelCatania/Mu-Linux-0.97k.git
cd Mu-Linux-0.97k

2. Configurar el .env

cp .env.example .env
nano .env

Antes del primer arranque cambiá como mínimo:

# IP pública del VPS: es la que el ConnectServer le pasa al cliente
PUBLIC_IP=203.0.113.10

# Contraseñas de MySQL
MYSQL_ROOT_PASSWORD=contraseña_segura_root
MYSQL_PASSWORD=contraseña_segura_user
DB_PASS=contraseña_segura_user

# Secreto de las sesiones web (un texto aleatorio largo)
SESSION_SECRET=cambia-esto-por-un-texto-aleatorio-largo

DB_PASS tiene que ser igual a MYSQL_PASSWORD. La referencia completa está en Configuración.

3. Levantar el stack

Con las imágenes publicadas en Docker Hub, sin compilar nada (recomendado):

docker compose -f docker-compose.images.yml up -d

O compilando las imágenes desde el código del repositorio:

docker compose up -d --build

Se levantan MySQL, el servidor (ConnectServer, JoinServer, DataServer y GameServer) y el panel web.

docker compose ps        # estado de los contenedores
docker compose logs -f   # logs en tiempo real

Al arrancar, el servidor muestra su versión y el cliente compatible:

MU Linux server 0.97.30 | Cliente compatible: https://github.com/EmanuelCatania/Mu-97k-Client-Source/releases/tag/0.97.30

Con el compose de imágenes, agregá -f docker-compose.images.yml a cada comando docker compose.

4. Entrar al panel web

El panel queda en el puerto 8085 (http://TU_IP:8085) o en el dominio de tu proxy inverso. El administrador está en /admin/.

El usuario inicial es admin / 123456, y el primer ingreso obliga a cambiar la contraseña. Después, un asistente te deja elegir el idioma por defecto del sitio (español, inglés o portugués) y el diseño. Ver Panel Admin.

5. Compilar el cliente

Con el servidor andando, compilá el cliente con la dirección de tu servidor: Cliente del juego.

Editor de archivos (opcional)

El editor agrega backups por archivo, snapshots completos de los datos del servidor y la recarga automática al guardar desde el panel:

# En el .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

Actualizar

docker compose -f docker-compose.images.yml pull mu-server
docker compose -f docker-compose.images.yml up -d --no-deps mu-server

Para fijar una versión en vez de latest, cambiá la imagen de mu-server a emapupi/mu-linux-97k:0.97.30.

Los datos del juego no se actualizan con la imagen. Viven en un volumen persistente (/opt/mu/Data dentro del contenedor) para que no se pierdan tus cambios. Cada versión nueva indica en las notas de su Release qué archivos hay que integrar a mano. Por ejemplo, para pasar a 0.97.30 hay que agregar las filas de los comandos GM nuevos: ver Comandos GM y recargas.

Actualizá el cliente a la misma versión que el servidor.

Pterodactyl

Hay eggs para el servidor y la web en la carpeta Pterodactyl eggs del repositorio, y cada Release trae los archivos que usa el instalador (mu-linux-97k-server-amd64.tar.gz, mu-linux-97k-server-arm64.tar.gz y mu-linux-97k-web.tar.gz).

  1. Importá los eggs en el panel de Pterodactyl.
  2. En el servidor, elegí la versión en la variable MU_RELEASE_TAG (por ejemplo 0.97.30).
  3. Instalá: el instalador descarga el archivo de tu arquitectura desde el Release.

Para actualizar una instalación existente, no reinstales: el instalador también extrae configuraciones y datos. Con el servidor detenido, extraé el archivo de tu arquitectura en una carpeta temporal, reemplazá los cuatro binarios y start.sh, e integrá los cambios de Data que indique el Release.

Sin Docker

El servidor también se puede compilar a mano con CMake, en Linux (x64 y ARM64) y en Windows (x86 y x64). Los pasos están en el README del servidor.

La instalación recomendada y con soporte es la de Docker en Linux. El servidor compila en Windows, pero no se da soporte a esa instalación.

Recrear la base de datos

Si cambiás las credenciales de MySQL después del primer arranque, hay que recrear el volumen de la base:

docker compose down -v
docker compose up -d

⚠️ Esto borra cuentas y personajes. Hacé un backup antes.

Resolución de problemas

El servidor no aparece en el cliente: verificá que PUBLIC_IP sea la IP pública correcta, que los puertos estén abiertos y que el cliente esté compilado con la dirección de tu servidor.

El cliente conecta pero no entra: el CustomerName, el ServerSerial o la versión del cliente no coinciden con los del servidor. Ver Cliente del juego.

El panel web no carga: esperá a que MySQL pase su health check y revisá docker compose ps.

Errores del GameServer: docker compose logs mu-server.