Fala pessoal do Reddit!
Queria compartilhar um projeto de servidor doméstico (homelab) que montei recentemente aqui em casa.
O objetivo principal era hospedar um servidor de jogos dedicado (com centenas de mods ativos) e serviços auxiliares para jogar com meus amigos 24 horas por dia, 7 dias por semana, sem precisar deixar o meu computador principal gamer ligado o dia inteiro consumindo 400W na tomada.
Em vez de reaproveitar um desktop antigo e gastador, utilizei um Mini-PC appliance de rede com 4 portas 2.5GbE, instalei o Proxmox VE 8.4 e montei uma estrutura completa de virtualização com automação, backup em nuvem e um painel de telemetria feito sob medida para acompanhar no segundo monitor.
Abaixo compartilho as especificações técnicas, como tudo foi estruturado e um guia passo a passo para quem quiser replicar.
—
### 🖥️ 1. Especificações de Hardware
* **Modelo:** Techvision TVI7309X (Gabinete em alumínio com refrigeração eficiente)
* **Processador:** Intel Celeron N5105 Jasper Lake (4 Cores / 4 Threads até 2.90 GHz, TDP de 10W)
* **Memória RAM:** 16 GB DDR4 SODIMM
* **Placas de Rede:** 4 portas Intel I226-V de 2.5 GbE (grupos IOMMU isolados e baixa latência)
* **Armazenamento 1 (SO e VMs):** SSD NVMe 120 GB Kingbank M.2
* **Armazenamento 2 (Backups Locais):** SSD SATA 120 GB Kingston 2.5"
* **Consumo Energético:** 8W a 14W sob carga. Custo estimado de R$ 10 a R$ 15 por mês na conta de luz.
—
### 🏗️ 2. Arquitetura de Software e Virtualização
* **Nível 1 – Hypervisor (Proxmox VE 8.4):** Instalado direto no bare-metal. Gerencia a alocação de hardware, snapshots, repositórios sem assinatura (pve-no-subscription) e expõe leituras térmicas seguras via chave SSH Ed25519.
* **Nível 2 – Máquina Virtual (Ubuntu Server 24.04 LTS):** Uma VM isolada (4 vCPUs host-passthrough, 8 GB de RAM e 32 GB de disco VirtIO) hospeda todos os serviços da aplicação, mantendo o hypervisor limpo.
* **Nível 3 – Orquestrador de Jogos (CubeCoders AMP):** Painel que gerencia a instância do jogo em contêineres Docker, automatizando downloads da SteamCMD, verificações de mods e reinicializações programadas.
* **Sincronismo Global de Fuso Horário:** Proxmox, VM, Docker containers e banco de dados configurados em `America/Sao_Paulo` (Horário de Brasília) para evitar divergência nos gráficos e agendamentos.
—
### 📊 3. O Dashboard no 2º Monitor (DMN OpsCenter)
Para acompanhar a saúde da máquina enquanto jogo ou trabalho, desenvolvi uma aplicação web dedicada (FastAPI + WebSockets + Tailwind CSS + Chart.js) que consome menos de 30 MB de RAM e atualiza a cada 2 segundos:
-
**Temperaturas Físicas do Proxmox:** O dashboard conecta via SSH no host físico e lê em tempo real a temperatura de cada um dos 4 núcleos da CPU N5105 e do SSD NVMe.
-
**Gráficos Deslizantes de 60 Segundos:** Histórico dinâmico de uso de CPU (Host vs VM), memória RAM e taxa de transferência de rede (Download/Upload).
-
**Histórico de Sessões e Jogadores:** Coleta dados em tempo real para exibir quem está online, além de uma tabela permanente que cruza logs e banco SQLite para mostrar nome do personagem, conta Steam, data/hora de login/logout e tempo total jogado.
-
**Gaveta de Terminal Secreta:** Painel retrátil protegido por PIN que transmite os logs do console ao vivo e possui atalhos rápidos para comandos de manutenção sem precisar abrir um terminal SSH.
—
### 🤖 4. Automação, Nuvem e WhatsApp
* **DDNS Automático (DuckDNS):** Um script agendado no cron sincroniza o IP público dinâmico a cada 5 minutos. Meus amigos conectam sempre pelo mesmo domínio fixo.
* **Backup Diário em Nuvem (OneDrive):** Todos os dias às 05:00 da manhã, um script gera o snapshot vzdump da VM pelo Proxmox e faz o upload automático para o Microsoft OneDrive, mantendo uma política de retenção dos últimos 5 dias.
* **Bot de Avisos no WhatsApp (Evolution API):** Rodando em Docker na VM, o bot envia avisos no grupo:
* 5 minutos antes das reinicializações diárias de manutenção (para os jogadores salvarem e deslogarem com segurança);
* Assim que o servidor termina de carregar todos os mods e a porta UDP do jogo fica pronta para receber conexões;
* Relatório matinal confirmando que o backup em nuvem foi concluído com sucesso.
—
### 🚀 5. Passo a Passo para Replicar esse Projeto
Para quem tiver interesse em montar um servidor caseiro com essa mesma proposta, aqui está o caminho recomendado:
-
**Escolha do Mini-PC:** Procure modelos com Intel Celeron N5105 ou Intel N100 com pelo menos 16 GB de RAM e portas Intel 2.5GbE. São processadores frios, muito econômicos e perfeitos para homelab de baixo custo.
-
**Instalação do Proxmox:** Crie um pendrive bootável com o Proxmox VE 8.4, instale no SSD NVMe e troque os repositórios da empresa pelos repositórios comunitários gratuitos (`pve-no-subscription`).
-
**Configuração da VM Linux:** Crie uma VM para Ubuntu Server 24.04, selecione o tipo de processador como `host`, instale o pacote `qemu-guest-agent` e fixe o IP da máquina no roteador.
-
**Instalação do Gerenciador de Jogos:** Instale o CubeCoders AMP ou utilize Docker Compose para subir o servidor dedicado do jogo da sua escolha.
-
**Port Forwarding e DDNS:** Abra as portas do jogo no roteador da sua operadora direcionadas para o IP da VM e configure um script no cron atualizando seu subdomínio gratuito no DuckDNS.
-
**Automação e Backups:** Configure o agendamento de backups nativo do Proxmox e utilize ferramentas como Rclone para sincronizar os arquivos compactados em nuvem (OneDrive/Google Drive).
—
### 💡 Dicas e Aprendizados Práticos
* **NAT Loopback:** Roteadores de operadoras brasileiras (como Vivo Fibra) geralmente não fazem NAT Loopback para tráfego UDP. Ou seja: quem está dentro da mesma casa/Wi-Fi conecta pelo IP local da VM, enquanto amigos fora de casa conectam pelo domínio do DDNS.
* **Alinhamento de Horário:** Sempre garanta que o Proxmox, a VM e os containers estejam com o timezone configurado para `America/Sao_Paulo` (Horário de Brasília) para que os logs e backups coincidam com o relógio real.
Qualquer dúvida sobre a configuração do Proxmox, da VM, do painel ou das automações, é só mandar aqui nos comentários!
Source: r/ProjectZomboidBR · by /u/reiluisii2077
