Instalación

Requisitos

RequisitoMínimo recomendado
SOLinux (Ubuntu 20.04+ / Debian 11+)
RAM2 GB
CPU2 vCPU
Docker24.0+
Docker Compose2.20+

El servidor puede correr con menos recursos, pero 2 GB RAM es lo recomendado para producción con jugadores concurrentes.

Puertos a abrir en el firewall

Antes de conectar el cliente, abrí estos puertos en el firewall de tu VPS:

PuertoProtocoloServicio
44405TCPConnectServer
55601UDPConnectServer
55901TCPGameServer
8085TCPPanel web (opcional, solo para admin)

En UFW:

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

Instalación

1. Clonar el repositorio

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

2. Configurar variables de entorno

cp .env.example .env
nano .env

Los valores obligatorios a cambiar antes de iniciar:

# IP pública de tu VPS (el cliente se conecta a esta IP)
PUBLIC_IP=123.456.789.0

# Contraseñas de MySQL (cambialas por valores seguros)
MYSQL_ROOT_PASSWORD=contraseña_segura_root
MYSQL_PASSWORD=contraseña_segura_user

# Secreto de sesión web (cualquier string aleatorio largo)
SESSION_SECRET=cambia-esto-por-un-string-aleatorio-largo

# Credenciales del panel admin
ADMIN_USER=admin
ADMIN_PASS=cambia_esta_contraseña

3. Levantar el stack

docker compose up -d

Esto descarga las imágenes de Docker Hub (solo la primera vez) y levanta todos los servicios: MySQL, ConnectServer, GameServer, JoinServer, DataServer y el panel web.

Para ver los logs en tiempo real:

docker compose logs -f

Para verificar que todos los contenedores están corriendo:

docker compose ps

4. Acceder al panel web

Una vez que todos los contenedores estén healthy, el panel web está disponible a través del dominio configurado en tu proxy inverso:

https://tu-dominio.com/

O directamente por IP si no usás proxy:

http://TU_IP:8085

Las credenciales iniciales son las que configuraste en .env (ADMIN_USER / ADMIN_PASS). El panel admin está en /admin/.

Con el editor de servidor (opcional)

El editor API agrega backups por archivo y snapshots completos del directorio MuServer/Data.

# Habilitar en .env
EDITOR_ENABLED=1
EDITOR_API_URL=http://mu-editor:8090

# Levantar con el compose extendido
docker compose -f docker-compose.yml -f docker-compose.editor.yml up -d

Actualizar imágenes

docker compose pull
docker compose up -d

Recrear la base de datos

Si cambiás las credenciales de MySQL después del primer arranque, necesitás recrear el volumen:

docker compose down -v
docker compose up -d

⚠️ Esto borra todos los datos del servidor. Hacé un backup primero si tenés datos importantes.

Resolución de problemas

El servidor no aparece en el cliente: verificá que PUBLIC_IP en .env es la IP pública correcta y que los puertos están abiertos en el firewall.

El panel web no carga: esperá unos segundos a que MySQL pase el health check. Revisá docker compose ps para ver el estado de cada servicio.

Logs de error en GameServer: corré docker compose logs mu-server para ver los errores específicos.