Sim, nós gostamos e jogamos minecraft. Talvez não com uma frequência digna de um gamer, mas sempre que podemos, jogamos. =)
Vou compartilhar aqui com vocês como subir seu próprio servidor Minecraft. Acredite, você vai curtir!
É claro, você precisa ter um local para subir esse cara. Utilizo o cloadatcost por custo, mas você pode subir ele em qualquer outra nuvem ou até mesmo na sua casa… Na AWS, uma instancia EC2 t2.micro é o suficiente para começar a brincadeira e você ainda esta elegível ao nível de acesso gratuito.
Gosto de utilizar a distribuição Debian 8 (Jessi) e elá foi a base para este howto. Você pode utilizar qualquer outra distribuição, você só precisa modificar o método de instalação dos pacotes (e o nome dos pacotes que podem ser diferentes em outras distribuições).
Ahh, o principal! Utilizamos o SpigotMC como servidor (serviço) Minecraft. Esse projeto é muito conhecido pelo empenho dos seus desenvolvedores, que fornecem uma versão alternativa e muito performática baseada no projeto open chamado Craft Bukkit.
Então vamos lá!!!
Primeiro, precisamos instalar algumas dependências. Como utilizaremos o source, precisamos instalar os seguintes pacotes para então fazer o build do spigotMC.
Se você estiver utilizando outra distribuição que não seja o Debian, providencie a instalação dos seguintes programas:
- java (jdk)
- git
- screen
- rsync
1 – Instalando os pacotes no debian:
apt-get -y install default-jre default-jdk git screen rsync
Com o java e o git devidamente instalado já podemos iniciar a instalação do spigotMC. Utilizaremos o build tools para esta tarefa.
A ultima release esta disponível no link BuildTools
2 – Criando a estrutura de diretórios e building:
mkdir -p /usr/local/src/minecraft/; cd /usr/local/src/minecraft/; wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
Agora com o arquivo local, execute o comando para executar o jar e iniciar o processo de building:
java -jar BuildTools.jar Loading BuildTools version: git-BuildTools-8aa3a22-59 (#59) Git name not set, setting it to default value. Git email not set, setting it to default value. Starting clone of https://hub.spigotmc.org/stash/scm/spigot/bukkit.git to Bukkit Cloned git repository https://hub.spigotmc.org/stash/scm/spigot/bukkit.git to /usr/local/src/minecraft/Bukkit. Current HEAD: 2eb7b9fd887cb2b2257ca9f09435c0ab72a393f8 Starting clone of https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git to CraftBukkit Cloned git repository https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git to /usr/local/src/minecraft/CraftBukkit. Current HEAD: cb61ac0404a52ba8c3f6ab8d92304aeeb6250846 Starting clone of https://hub.spigotmc.org/stash/scm/spigot/spigot.git to Spigot
Depois de mais ou menos 8 minutos, o build será concluído.
[INFO] Reactor Summary: [INFO] [INFO] Spigot-API ......................................... SUCCESS [ 37.166 s] [INFO] Spigot-Parent ...................................... SUCCESS [ 0.521 s] [INFO] Spigot ............................................. SUCCESS [01:12 min] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:50 min [INFO] Finished at: 2017-02-26T15:21:51-05:00 [INFO] Final Memory: 32M/430M [INFO] ------------------------------------------------------------------------
Tudo blz? Sucesso? Agora o jar esta disponível no path /usr/local/src/minecraft/, vide:
Success! Everything compiled successfully. Copying final .jar files now. Copying craftbukkit-1.11.2-R0.1-SNAPSHOT.jar to /usr/local/src/minecraft/. - Saved as craftbukkit-1.11.2.jar Copying spigot-1.11.2-R0.1-SNAPSHOT.jar to /usr/local/src/minecraft/. - Saved as spigot-1.11.2.jar
root@mineserver:/usr/local/src/minecraft# ls -lht spigot-1.11.2.jar -rw-r--r-- 1 root staff 24M Feb 26 15:21 spigot-1.11.2.jar
3 – Criando o usuário e definindo os parâmetros de openfiles:
User
useradd -m -d /opt/minecraft -c "Minecraft daemon user" minecraft
Openfiles
echo "minecraft soft nofile 10240" >>/etc/security/limits.conf echo "minecraft hard nofile 10240" >>/etc/security/limits.conf
4 – Copiando o jar para o path do game e configurações:
Copie o jar para o novo path:
# cp /usr/local/src/minecraft/spigot-1.11.2.jar /opt/minecraft
Apos copiar o jar, crie o arquivo eula.txt com o valor eula=true
# echo "eula=true" >/opt/minecraft/eula.txt
Você pode testar a execução do spigot. Mais lembre-se, ainda não terminou o howto. O spigot pode ser iniciado manualmente com o comando “java -jar”
java -jar spigot-1.11.2.jar Warning, your max perm gen size is not set or less than 128mb. It is recommended you restart Java with the following argument: -XX:MaxPermSize=128M Please see http://www.spigotmc.org/wiki/changing-permgen-size/ for more details and more in-depth instructions. Loading libraries, please wait... [17:56:20 INFO]: Starting minecraft server version 1.11.2 [17:56:21 INFO]: Loading properties [17:56:21 INFO]: Default game type: SURVIVAL [17:56:21 INFO]: This server is running CraftBukkit version git-Spigot-d4f98a3-cb61ac0 (MC: 1.11.2) (Implementing API version 1.11.2-R0.1-SNAPSHOT) [17:56:21 INFO]: Unable to find file banned-players.json, creating it. [17:56:21 INFO]: Unable to find file banned-ips.json, creating it.
5 – Preparando os scripts e inicialização e backup:
Para inicialização, gerenciamento e backup do Minecraft server, utilizaremos o seguinte script:
curl -sk https://raw.githubusercontent.com/avelinoF0/minecraft-init/master/minecraft >/etc/init.d/minecraft
Este script será responsavel pela execução do backup e tambem pelo stop/start da instancia default do Spigot. Para que o script funcione corretamente, você precisa criar as seguintes estruturas de diretorio:
mkdir -p /backup mkdir -p /opt/minecraft/worlds /opt/minecraft# chown minecraft. /opt/minecraft -R
Criando o arquivo de configuração /etc/default/minecraft
curl -sk https://raw.githubusercontent.com/avelinoF0/minecraft-init/master/config.example >/etc/default/minecraft
Executar o start e validar se tudo esta OK.
/etc/init.d/minecraft start spigot-1.11.2.jar is running.
Acompanhe os logs. Se o server estiver no ar, voce receber a seguinte mensagem:
tail -f /opt/minecraft/logs/latest.log [14:51:13] [Server thread/INFO]: Nerfing mobs spawned from spawners: false [14:51:13] [Server thread/INFO]: Preparing start region for level 0 (Seed: -3593161158073825480) [14:51:15] [Server thread/INFO]: Preparing spawn area: 2% [14:51:16] [Server thread/INFO]: Preparing spawn area: 30% [14:51:17] [Server thread/INFO]: Preparing spawn area: 71% [14:51:17] [Server thread/INFO]: Preparing start region for level 1 (Seed: -3593161158073825480) [14:51:18] [Server thread/INFO]: Preparing spawn area: 50% [14:51:19] [Server thread/INFO]: Preparing start region for level 2 (Seed: -3593161158073825480) [14:51:19] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it [14:51:19] [Server thread/INFO]: Done (6.995s)! For help, type "help" or "?"
Agora, execute o stop do server. Será necessário mover os mapas que foram criados com o bootstrap de inicialização do bukkit para o diretorio “worlds”.
/etc/init.d/minecraft stop Said: SERVER SHUTTING DOWN! Saving worlds... Stopping server... spigot-1.11.2.jar is now shut down.
Após shutdown do server, execute o comando abaixo para mover os mapas.
cd /opt/minecraft; mv world_* /opt/minecraft/worlds/ && mv world /opt/minecraft/worlds/
Agora, para deixar seu ambiente resilente a qualquer modificação no game. Crie as rotinas de backup e rotate. Para isso, adicione as seguintes linhas na cron do usuário root:
02 05 * * * /etc/init.d/minecraft backup 55 04 * * * /etc/init.d/minecraft log-roll */30 * * * * /etc/init.d/minecraft to-disk
Para finalizar, edite o arquivo server.properties (disponivel no path /opt/minecraft)
Altere o valor da propriedade online-mode.. de true para false e pronto. A diversão esta garantida!!!
Boa diversão galera!!!
Show de bola, hein !!! 🙂