Fiz um site para monitorar meu servidor de Palworld

Introdução

Bom dia pessoal! Gostaria de compartilhar um simples projeto pessoal que fiquei muito feliz em ter concluído. Trata-se de um site onde pessoas que jogam comigo em meu servidor privado de palworld podem monitorar e gerenciar o servidor. Segue algumas imagens de como ficou o projeto.

Interface Login

Motivação

Eu possuo um servidor privado de palworld que eu hospedo em um minipc em minha casa, e nele hospedo as mais diversas coisas que forem do meu interesse, como projetos pessoais e serviços auto hospedados. Porém, quando o servidor de palworld está rodando ele consome muita memória e processamento, não há travamentos nem compromete o desempenho de nenhuma das outras funções do servidor, mas mantém ele com uso elevado dos componentes e alta temperatura, por isso, precisava de uma forma que, qualquer um que jogasse nesse servidor, pudesse ligar quando fosse começar a jogar, ou desligar quando não houvesse mais ninguém jogando.

Projeto

É um site onde qualquer um que possui a senha para acessar, pode ver os jogadores online, seu nível, posição no mapa e seu ping, e claro, podem ligar, desligar ou reiniciar o servidor, de uma maneira segura.

Funcionalidades e Características

  • Foi construído utilizando Next.js, Next-Auth, Tailwind CSS
  • Utiliza o Next-Auth para autenticar de forma segura os usuários;
  • Faz comandos ao sistema de forma consciente, sem permitir a possibilidade de prompt injection;
  • Não permite que o servidor seja desligado ou reiniciado enquanto houver jogadores online;
  • Arquivo de variáveis de ambiente organizado para configurações;
  • Não possui nenhuma iniciativa ativa de evitar brute force;

Opinião pessoal

Eu fico muito feliz com a realização de um projeto tão simples mas que resolve um problema real, por isso a vontade de compartilhar, talvez mais pessoas tenham um problema semelhante e possam se inspirar. Então o projeto está público no github através do link: Palworld Monitor. Espero poder compartilhar mais projetos em breve e permitir que esse sentimento me motive a ter cada vez mais iniciativa na programação.

Caraca, que sensacional! Sério mesmo, parabens. Qual foi a maior dificuldade que você teve fazendo esse projeto?

Ass.: j_lucas_hoff Ω

Muito obrigado pelo apoio ❤️ A primeira maior dificuldade foi fazer comunicação com RCON, o que era novidade pra mim. Eu consegui fazer mas essa funcionalidade foi abandonada depois já que o Palworld agora possui uma API que, convenhamos, é muito mais simples e estável de se comunicar. Depois tive que aprender como fazer o node dar comandos a meu sistema linux para poder ligar, desligar ou reiniciar o container do Docker que roda o Palworld. Isso foi bem fácil, já existe uma biblioteca apropriada pro node fazer isso, só tem que se atentar pras permissões do processo no linux pra que ele possa executar o comando sem ser bloqueado pelo sistema. No meu home server eu rodo isso com PM2 e funciona que é uma beleza.

show de bola amigo, gostei do projeto. ele serve apenas para servidor do jogo ou pode ser usado /modificado para outra finalidade. por exemplo manter serviços disponiveis ?

Olhando o código fonte da para ver que foi feito algo realmente muito simples, facilmente pode ser modificado para atender outras finalidades.