Cómo instalar el servidor Spigot Minecraft en Ubuntu 20.04

Spigot es un software de servidor de Minecraft modificado basado en CraftBukkit. Proporciona optimizaciones de rendimiento, opciones de configuración y características adicionales, manteniendo la compatibilidad con todos los plugins y mods existentes.

En este tutorial, aprenderás a construir e instalar el servidor Spigot en un servidor basado en Ubuntu 20.04 y a instalar los plugins.

Requisitos previos

  • Un servidor con Ubuntu 20.04 con un mínimo de 4GB de RAM y 2 núcleos de CPU.

  • Un usuario no root con privilegios sudo.

  • Todo actualizado.

    $ sudo apt update && sudo apt upgrade
    
  • Instala los paquetes necesarios.

    $ sudo apt install wget apt-transport-https gnupg nano screen
    

Paso 1 – Configurar el cortafuegos

El primer paso es configurar el cortafuegos. Ubuntu viene con ufw (Uncomplicated Firewall) por defecto.

Comprueba si el cortafuegos se está ejecutando.

$ sudo ufw status

Deberías obtener la siguiente salida.

Status: inactive

Permite el puerto SSH para evitar que el cortafuegos rompa la conexión actual al habilitarlo.

$ sudo ufw allow OpenSSH

Permite el puerto 25565 para que el servidor Spigot acepte conexiones.

$ sudo ufw allow 25565

Habilita el cortafuegos

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Vuelve a comprobar el estado del cortafuegos.

$ sudo ufw status

Deberías ver una salida similar.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
25565                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
25565 (v6)                 ALLOW       Anywhere (v6)

Paso 2 – Instalar Java y Git

El instalador de Spigot necesita Java y Git para funcionar. Ubuntu 20.04 incluye OpenJDK 17 como la última versión disponible de Java. Ejecuta el siguiente comando para instalarlo.

$ sudo apt install openjdk-17-jre-headless

Confirma la versión.

$ java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.1+12-Ubuntu-120.04, mixed mode, sharing)

Instala Git.

$ sudo apt install git

Paso 3 – Crear un usuario de Minecraft

El siguiente paso es crear un usuario dedicado para ejecutar el servidor.

$ sudo adduser minecraft

Cambia al usuario recién creado.

$ sudo su - minecraft

Paso 4 – Descarga e instala Spigot

Construiremos Spigot utilizando la aplicación BuildTools.jar. El primer paso es cambiar al directorio principal.

minecraft:$ cd ~

Crea un nuevo directorio para BuildTools y cambia a él.

minecraft:$ mkdir buildtools && cd buildtools

Coge el archivo BuildTools.jar.

minecraft:$ wget -O BuildTools.jar  https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

Construye la última versión estable de Spigot.

minecraft:$ java -jar BuildTools.jar --rev latest

Dependiendo de los recursos disponibles del servidor, este proceso puede tardar en completarse.

Comprueba el nombre del archivo jar de Spigot creado.

minecraft:$ ls 
apache-maven-3.6.0  BuildData  BuildTools.jar  BuildTools.log.txt  Bukkit  CraftBukkit  Spigot  spigot-1.18.1.jar  work

En nuestro caso, el nombre es.

Crea otro directorio para tu servidor de Spigot y pasa a él.

minecraft:$ cd ~ && mkdir server && cd server

Mueve tu archivo jar de Spigot al directorio del servidor recién creado.

minecraft:$ mv ~/buildtools/spigot-1.18.1.jar ~/server/spigot.jar

Paso 5 – Iniciar el servidor Spigot

Para iniciar el servidor de Spigot, tenemos que crear un script de inicio que nos permita pasar varios parámetros Java para optimizar el servidor.

Crea y abre el script de inicio de Spigot.

minecraft:$ sudo nano spigotstart.sh

Pega el siguiente código en el archivo.

#!/bin/sh

java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot.jar nogui

El parámetro -Xms3G -Xmx3G ha configurado el heapspace de Java para 4GB de RAM. En nuestro caso hemos dejado 1GB libre para el SO y cualquier otra cosa para la que necesite la ram. Cambia esto por la cantidad de RAM que quieras asignar al servidor de Spigot. Si tu servidor tiene 16GB de RAM, deberás ajustar el parámetro para que ocupe 14 o 15GB de RAM.

Una vez terminado, guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Haz que el script de inicio sea ejecutable.

minecraft:$ chmod +x spigotstart.sh

Inicia tu servidor Spigot por primera vez.

minecraft:$ ./spigotstart.sh

El servidor no se iniciará y en su lugar terminará, dando el siguiente mensaje.

[14:14:21] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Abre eula.txt para editarlo.

minecraft:$ nano eula.txt

Establece el valor de la variable eula en true.

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun Dec 26 13:29:15 UTC 2021
eula=true

Una vez que hayas terminado, guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Antes de iniciar el servidor, vamos a configurarlo para que se ejecute como un servicio en segundo plano.

Paso 6 – Configurar Spigot como servicio

El servidor necesita que el intérprete de comandos se ejecute todo el tiempo para que funcione, lo cual no es lo ideal. Tenemos que crear un servicio para que el servidor se inicie automáticamente al arrancar y se ejecute en segundo plano.

Sal del usuario minecraft.

minecraft:$ exit

Crea un archivo de Servicio Spigot y ábrelo para editarlo.

$ sudo nano /etc/systemd/system/spigot.service

Pega el siguiente código.

[Unit]
Description=SpigotMC
After=network.target

[Service]
Type=forking
User=minecraft
Group=minecraft
ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh
ExecStop=/usr/bin/screen -S minecraft -p 0 -X stuff "stop$(printf \\r)"
WorkingDirectory=/home/minecraft/server

[Install]
WantedBy=multi-user.target

Una vez terminado, guarda el archivo pulsando Ctrl + X e introduciendo Y cuando se te pida.

Vuelve a cargar el demonio del servicio.

$ sudo systemctl daemon-reload

Habilita el servicio.

$ sudo systemctl enable spigot

Inicia el servicio Spigot.

$ sudo systemctl start spigot

Comprueba el estado del servicio.

$ sudo systemctl status spigot
? spigot.service - SpigotMC
     Loaded: loaded (/etc/systemd/system/spigot.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-12-27 09:15:25 UTC; 6s ago
    Process: 32011 ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh (code=exited, sta>
   Main PID: 32012 (screen)
      Tasks: 25 (limit: 4691)
     Memory: 3.2G
     CGroup: /system.slice/spigot.service
             ??32012 /usr/bin/SCREEN -d -m -S minecraft /home/minecraft/server/spigotstart.sh
             ??32013 /bin/sh /home/minecraft/server/spigotstart.sh
             ??32014 java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockEx>

Dec 27 09:15:25 spigot systemd[1]: Starting SpigotMC...
Dec 27 09:15:25 spigot systemd[1]: Started SpigotMC.

Paso 7 – Conéctate a Minecraft

Ahora que nuestro servidor está en funcionamiento, es el momento de conectarse a Minecraft. Inicia tu juego de Minecraft.

Juego Minecraft

Haz clic en el botón Multijugador e ignora la advertencia para el futuro marcando la casilla No volver a mostrar esta pantalla.

Advertencia sobre el multijugador de Minecraft

Haz clic en el botón Añadir servidor en la siguiente página.

Añadir servidor a Minecraft

Introduce la dirección IP pública y el nombre de tu servidor. Haz clic en Listo cuando hayas terminado.

Tu servidor aparecerá ahora en la lista.

Lista de servidores de Minecraft

Haz clic en el nombre de tu servidor y pulsa el botón Unirse al servidor para iniciarlo. Tu partida empezará pronto.

Juego del servidor de Minecraft

Puedes pedir a tus amigos que se unan a tu servidor y jugar con ellos.

Paso 8 – Personalizar las propiedades del servidor

Puedes personalizar tu servidor editando el archivo /home/minecraft/server/server.properties. A continuación veremos algunas de las propiedades.

  • Habilitar bloques de comandos: Los valores disponibles son true y false.

    enable-command-block=false
    
  • Modo de juego: Los valores disponibles son supervivencia, creativo, aventura y espectador. También se pueden definir mediante números enteros que empiezan por 0 para supervivencia, 1 para creativo, 2 para aventura y 3 para espectador.

    gamemode=survival
    
  • Dificultad: Los valores disponibles son pacífico, fácil, normal y difícil. También se pueden definir mediante números enteros que empiezan por 0 para pacífico, 1 para fácil, 2 para normal y 3 para difícil.

    difficulty=easy
    
  • MOTD: Significa Mensaje del Día. Es el mensaje que se muestra en la página de la lista de servidores. Acepta un valor de cadena. Admite color, caracteres especiales y códigos de formato. No debe tener más de 59 caracteres.

    motd=A Minecraft Server
    
  • PVP: Activa el modo Jugador contra Jugador. Los valores disponibles son true y false.

    pvp=true
    
  • Puerto del servidor: Define el puerto en el que escucha el servidor de Minecraft. El valor por defecto es 25565.

    server-port=25565
    

    Si cambias el valor del puerto por otro, tendrás que habilitarlo en el cortafuegos; de lo contrario, los jugadores no podrán conectarse.

  • Consulta la wiki de Minecraft para conocer más propiedades.

Tendrás que reiniciar tu servidor Spigot después de hacer cualquier cambio en estas propiedades para que surtan efecto.

$ sudo systemctl restart spigot

Paso 9 – Instalar plugins

Puedes descargar los plugins desde las páginas de recursos de Spigot o de plugins de Bukkit.

Si descargas el plugin desde Spigot, el siguiente método no funcionará ya que ha sido bloqueado. Tendrás que descargar manualmente el archivo Jar y moverlo al servidor. Pero si lo descargas desde Bukkit, utiliza el siguiente método para descargarlo directamente a tu servidor.

Descarga el archivo .jar del plugin desde las páginas anteriores al directorio /home/minecraft/server/plugins.

$ sudo wget -P /home/minecraft/server/plugins/ --content-disposition <plugin url>

La bandera --content-disposition asegura que el archivo se descargue con el nombre correcto haciendo uso de las cabeceras Content-Disposition.

Por ejemplo, si estás descargando el plugin WorldEdit, así es como lo descargarás.

$ sudo wget -P /home/minecraft/server/plugins --content-disposition https://dev.bukkit.org/projects/world
edit/files/latest

Para volver a cargar el plugin, reinicia tu servidor Spigot.

$ sudo systemctl restart spigot

Paso 10 – Actualizar Spigot

La actualización de Spigot requerirá que repitas el paso 4 de esta guía para obtener la última versión del archivo BuildTools.jar y luego crear un nuevo archivo spigot.jar. Asegúrate de hacer una copia de seguridad de los archivos jar antiguos y de detener el servidor antes de hacerlo.

Conclusión

Con esto concluye nuestro tutorial sobre la instalación y configuración del servidor Spigot Minecraft en un sistema basado en Ubuntu 20.04. Si tienes alguna pregunta, publícala en los comentarios de abajo.

También te podría gustar...