Sobre o projeto
# HyperCraft
**Painel auto-hospedado para servidores Minecraft — um binário, uma máquina, quantos servidores você quiser.**
HyperCraft é uma ferramenta de gerenciamento leve projetada especificamente para servidores Minecraft. Ela integra tarefas complexas de operação e manutenção de servidores em uma interface baseada em navegador, permitindo que usuários sem conhecimento profundo de Linux gerenciem facilmente múltiplas instâncias de servidores de jogo.
## Recursos principais
### Implantação minimalista
- **Binário único**: backend e frontend empacotados juntos; a máquina de destino não precisa de Go, Node.js, Java ou qualquer ambiente de execução instalado.
- **Sem dependências externas**: sem banco de dados (como MySQL/PostgreSQL), sem Docker; basta baixar, extrair e iniciar.
- **Modo daemon**: o painel roda como daemon; mesmo fechando a aba do navegador, perdendo a conexão ou reiniciando o roteador, os processos dos servidores continuam em execução.
### Poderoso gerenciamento de múltiplas instâncias
- **Quantidade ilimitada de instâncias**: execute vários servidores Minecraft (Java ou Bedrock) simultaneamente em uma única máquina.
- **Controle elegante**: suporta iniciar, parar graciosamente, reiniciar e encerrar à força. A parada graciosa envia primeiro o comando `stop` e aguarda o salvamento do mundo antes de escalar sinais após o timeout.
- **Reinício automático após crash**: configuração opcional para recuperação automática quando o servidor cai inesperadamente.
### Experiência de terminal imersiva
- **Console de terminal real**: o servidor roda em um pseudo-terminal, com suporte a autocompletar com Tab, saída colorida e adaptação à largura da janela. O conteúdo do autocompletar é processado pelo núcleo do servidor em execução.
- **Reconexão**: usa buffer circular para registrar o histórico de saída. Após reconectar, o console preenche automaticamente os logs históricos ausentes, sem duplicar nem omitir.
### Ferramentas de operação automatizada
- **Gerenciamento de ambiente Java**: instalação com um clique do Eclipse Temurin JRE/JDK, com suporte a múltiplas versões coexistindo (por exemplo, rodar simultaneamente um servidor antigo 1.12 e a versão mais recente). O painel detecta e instala automaticamente a versão de Java necessária.
- **Biblioteca de núcleos de servidor**: fontes de download integradas como Paper e Velocity; um download pode ser copiado para quantas instâncias forem necessárias.
- **Gerenciamento de plugins**: suporta obtenção de plugins do Modrinth, Hangar, SpigotMC, GitHub Release e outras plataformas. Oferece gerenciamento em dois níveis: biblioteca global e instância, com cada versão mantida separadamente para rollback.
- **Biblioteca/market de construções**: suporta análise e importação de arquivos `.schem`, permitindo visualizar dimensões e materiais, e instalar com um clique em uma instância específica.
### Segurança e monitoramento
- **Monitoramento de recursos**: exibe em tempo real curvas de CPU/memória de cada instância, além de memória, disco, CPU e tráfego de rede da máquina inteira. A coleta de dados é feita de forma independente pelo daemon, sem depender do estado da página web.
- **Padrões seguros**: usa hash de senha PBKDF2-SHA256, com limitação de taxa de login, limite de conexões simultâneas, cookies de sessão HttpOnly + SameSite e verificação de token de dispositivo.
- **Segurança de arquivos**: todos os caminhos de operação de arquivos são isolados via `os.Root`, estritamente restritos ao diretório da instância, evitando acesso não autorizado.
### Outros recursos úteis
- **Editor de arquivos de configuração**: transforma `server.properties` em formulário, preservando comentários e ordem das chaves, com escape automático de chinês e gravação apenas das chaves modificadas.
- **Histórico de configuração**: mantém um repositório Git independente por instância para registrar alterações de configuração, com suporte a visualização de Diff e restauração (atenção: não inclui backup dos dados do mundo).
- **Ambiente de banco de dados**: inicia MySQL, PostgreSQL ou MongoDB com um clique, atendendo a plugins que exigem suporte a banco de dados.
- **Terminal local**: shell real da máquina onde o painel está (desativado por padrão), para executar comandos em nível de sistema.
- **Autoatualização do painel**: com um clique na interface, substitui o binário e reinicia no local; em caso de falha, reverte automaticamente.
## Início rápido
O artefato de release é um binário de arquivo único, com suporte a arquiteturas Linux amd64/arm64, entre outras.
```bash
# 1. Criar diretório e baixar
sudo mkdir -p /opt/hypercraft && cd /opt/hypercraft
sudo wget https://github.com/Lanscarlos/HyperCraft/releases/download/v0.4.0/hypercraft-0.4.0-linux-amd64.tar.gz
sudo tar -xzf hypercraft-0.4.0-linux-amd64.tar.gz --strip-components=1
# 2. Instalar serviço systemd
sudo cp hypercraft.service /etc/systemd/system/
sudo systemctl enable --now hypercraft
# 3. Ver a senha inicial de administrador
sudo journalctl -u hypercraft -f
```
Abra `http://IP-do-seu-servidor:19190` para fazer login. Na primeira inicialização, uma senha aleatória de administrador é gerada e impressa uma vez no log.
> **Aviso de segurança**: o painel escuta HTTP em texto claro por padrão. Se precisar expô-lo à internet pública, configure obrigatoriamente TLS via proxy reverso ou use túnel SSH.
## Visão geral da interface
- **Painel**: exibe o status de cada servidor em cartões, com suporte a ligar/desligar diretamente e alertas de disco fixados no topo.
- **Assistente de nova instância**: fluxo em cinco etapas para escolher o núcleo, instalar Java e nomear a instância.
- **Gerenciador de arquivos**: suporta upload por arrastar e soltar, retomada de transferência e edição online de arquivos de configuração.
- **Adaptação para celular**: em telas estreitas, prioriza status, ligar/desligar e console; a barra lateral recolhe para o modo gaveta.
## Detalhes técnicos
- **Linguagem**: Go (backend) + Vanilla JS (frontend, sem dependência de framework de UI).
- **Desempenho**: o painel usa cerca de 2 MB de heap residente.
- **Build**: requer Go 1.25+ e Node 20+ para compilar a partir do código-fonte.
- **Licença**: MIT License.
## Limitações conhecidas e planos futuros
- **Ainda não implementado**: gerenciamento de lista de jogadores/whitelist (requer edição manual do JSON), backup automático, tarefas agendadas, mais tipos de núcleo (Fabric/Forge), suporte a terminal Windows.
- **Compatibilidade de sistema**: Temurin oferece apenas builds glibc; sistemas musl (como Alpine) podem não funcionar, e o painel fará detecção e aviso.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.