Instalación
Requisitos
| Requisito | Mínimo recomendado |
|---|---|
| SO | Linux (Ubuntu 20.04+ / Debian 11+) |
| RAM | 2 GB |
| CPU | 2 vCPU |
| Docker | 24.0+ |
| Docker Compose | 2.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:
| Puerto | Protocolo | Servicio |
|---|---|---|
44405 | TCP | ConnectServer |
55601 | UDP | ConnectServer |
55901 | TCP | GameServer |
8085 | TCP | Panel 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.