Instalando MCS Manager no Termux
Sempre que você vai criar um servidor de Minecraft é complicado gerenciar todas as configurações do servidor, mante-lo online, até permitir que algum amigo seu abra o servidor quando ele quiser, principalmente quando um modpack crash e você não está disponível na hora para reiniciar o servidor, MCSManager é um painel de gestão de servidor de jogos, primariamente Minecraft que te permite fazer tudo isso, tarefas agendadas (como back-ups e auto restarts), auto reiniciar um servidor caso ele crash.
Nesse tutorial irei cobrir a instalação e uso em um sistema Termux, sim, aquele app de Android que simula Linux, não é necessário root (a não ser que vc queira usar docker, mas esse tutorial não cobre isso).
Na versão 10 o painel é basicamente incompatível com Termux, porém com algumas alterações simples ele pode funcionar normalmente.
Instalando os requisitos
MCS Manager é feito em typescript, portanto, para roda-lo você só precisa de:
pkg update
pkg upgrade -y
pkg install nodejs openjdk-17 wget nano -y
Pronto, só isso já é o necessário para rodar MCS Manager, vide que wget
só é utilizado para baixar o pacote e nano
será utilizado só para alterar um arquivo.
Instalando MCS Manager
Primeiramente, baixe o pacote, vc pode visitar este repo e baixar a versão mais nova, note que esse tutorial é especificamente para a versão 10.
mkdir ~/mcsmanager
cd ~/mcsmanager
wget https://github.com/MCSManager/MCSManager/releases/download/v10.2.1/mcsmanager_linux_release.tar.gz
tar -xzf mcsmanager_linux_release.tar.gz
Agora, antes de iniciar MCSManager, precisamos fazer algumas alterações, ao iniciar o daemon, ele irá buscar o sistema operacional e carregar 2 pacotes de acordo com o sistema, porém o sistema operacional do Termux é "android" e não há pacotes para "android", apenas para "linux", android é uma distribuição do linux, ou seja, suficientemente equivalentes, então vamos copiar os pacotes do linux para usarmos como android:
cp daemon/lib/file_zip_linux_arm64 daemon/lib/file_zip_android_arm64
cp daemon/lib/pty_linux_arm64 daemon/lib/pty_android_arm64
Após essa alteração o daemon irá carregar e tudo estará com uma cara de normal, porém você terá um erro ao tentar executar um servidor de Minecraft:
[INFO] Preparing to start...
[Operation Error] ENOENT: no such file or directory, mkdir '/tmp/mcsmanager-instance-pipe'
Ao executar um servidor, o daemon tenta criar uma pasta temporária em /tmp/mcsmanager-instance-pipe
, porém, sem fazer root no Android, não temos acesso a essa pasta, esse path está escrito no código do deamon, então precisamos altera-lo para um path acessível no Termux:
mkdir -p $PREFIX/tmp/mcsmanager-instance-pipe
sed -i -e 's:/tmp/mcsmanager-instance-pipe:$PREFIX/tmp/mcsmanager-instance-pipe:g' daemon/app.js
Agora você não deve ter mais nenhum erro ao usar MCS Manager no Termux.
MCS Manager como serviço no Termux
O MCSManager usa 2 serviços independentes, o daemon, quem controla os servidores, e o painel, a interface web. Você precisa executar as duas separadamente. A fim de mante-las sempre ligadas, vamos coloca-las como serviços usando termux-services
:
daemon como serviço
mkdir -p $PREFIX/var/service/mcsmanager-daemon/log
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/mcsmanager-daemon/log/run
touch $PREFIX/var/service/mcsmanager-daemon/run
chmod +x $PREFIX/var/service/mcsmanager-daemon/run
Abra o arquivo run
com nano:
nano $PREFIX/var/service/mcsmanager-daemon/run
Dentro deste arquivo run
, escreva:
#!/data/data/com.termux/files/usr/bin/sh
cd ~/mcsmanager/daemon
exec 2>&1
node app.js
painel como serviço
mkdir -p $PREFIX/var/service/mcsmanager-painel/log
ln -sf $PREFIX/share/termux-services/svlogger $PREFIX/var/service/mcsmanager-painel/log/run
touch $PREFIX/var/service/mcsmanager-painel/run
chmod +x $PREFIX/var/service/mcsmanager-painel/run
Abra o arquivo o run
com nano:
nano $PREFIX/var/service/mcsmanager-painel/run
Dentro deste arquivo run
, escreva:
#!/data/data/com.termux/files/usr/bin/sh
cd ~/mcsmanager/web
exec 2>&1
node app.js
Abilitando e iniciando os serviços
sv-enable mcsmanager-daemon
sv-enable mcsmanager-painel
sv up mcsmanager-daemon
sv up mcsmanager-painel
Acessando o painel e registrando o daemon
Por padrão o painel do MCSManager é exposto na porta 23333
, acessando o painel pela primeira vez, será pedido que você crie uma nova conta, essa será sua conta administrativa.
Após logar no painel, vá direto para a página Daemons, nessa página ficara listados todos os daemons que você tem, você precisa de 1 daemon por sistema/máquina que você quer usar para alocar os servidores.
Clique em New Daemon
, dê um nome qualquer e coloque o ip, para o daemon na mesma máquina que o painel, coloque localhost
, agora vem um ponto importante, precisamos da chave de acesso do daemon, essa chave aparece no log do daemon quando você executa ele, como executamos o daemon usando termux-services
, podemos ver a chave no log usando:
grep -m 1 "Access Key" $PREFIX/var/log/sv/mcsmanager-daemon/current
Copie a key, cole no painel e clique em Confirm
.
Agora você dete ter um daemon registrado com o status online.
Criando uma instância de Minecraft
Na página de instâncias é onde você verá todas as instâncias de cada máquina/daemon que você registrou, ao lado do botão Create
no topo da tela, você tem um seletor onde você escolhe qual deamon você quer ver.
Para criar uma nova instância de servidor, basta:
- clicar em
Create
; - selecionar
Minecraft Server (Java)
; - selecionar
Upload a server core
; - dê um nome para a instância;
- em startup command, escreva o comando de execução;
java -DPaper.IgnoreJavaVersion=true -jar paper.jar --nogui
- Clique em Upload a Server Core, no meu caso, escolhi PaperMC 1.21;
- clicar em
Confirm
; - Após o upload clique em
To Terminal Page
;
Agora seu servidor está criado, no topo da tela do terminal, você pode clicar em Start
e depois Ok
para iniciar o servidor.
Note que na primeira vez ele ira fazer o download do servidor e fechar, pois você precisa aceitar o EULA, para aceitar o EULA siga:
- abaixo da tela do terminal clique em
Configuration Files
; - nessa página clique em
edit
no arquivo[General] eula.txt
; - troque EULA para
yes
, clique emSave
; - em seguida clique em
Go Back
eReturn to Console
para voltar ao terminal - por fim, inicie o servidor novamente.
Agora seu servidor irá carregar normalmente.