{"id":"a23e425d-4ef7-4705-836a-ddbad7ee5fe7","name":"Homelab do zero: seu primeiro servidor em casa","description":"Aprenda a planejar, montar e manter um laboratório doméstico com Linux, redes, Docker e backups. Para iniciantes com um computador disponível. Ao final, você terá um serviço acessível na rede local, documentação do ambiente e uma restauração de backup verificada. Atividades práticas com critérios de conclusão; não é necessário comprar equipamentos nem expor serviços à internet.","coverUrl":"/public/files/course-covers/a23e425d-4ef7-4705-836a-ddbad7ee5fe7/ca73d9f8-dfb4-4f41-bfe6-65a120cf39d2.webp","ownerNickname":"lucascode","activatedAt":"2026-10-23T06:16:37.578084","modules":[{"id":"68478298-c042-42fc-a4c7-9fce9f43b1b1","title":"1. Entenda o homelab e prepare seu equipamento","description":"Conheça o papel de um servidor e escolha um computador para o laboratório. O projeto será um servidor Ubuntu acessível pela rede de casa, com uma página de teste, transferência de arquivos e uma cópia de segurança restaurada.","position":1,"contents":[{"id":"094cc019-ee31-43b0-8f74-cd422ad8c1da","type":"TEXT","title":"Um servidor é um computador com uma tarefa","position":1,"availability":"AVAILABLE","text":{"body":"#### O que você vai construir\n\nHomelab significa laboratório doméstico. É um espaço para aprender usando equipamentos que você controla. Pode começar com um único computador; não exige um armário cheio de máquinas.\n\nUm servidor oferece algo para outros dispositivos. Seu celular pede uma página e outro computador a entrega. Nessa conversa, o celular é o cliente e o computador que atende é o servidor. Um mesmo computador pode exercer os dois papéis em situações diferentes.\n\nHardware é a parte física: processador, memória e disco. Software são os programas. Sistema operacional é o programa que organiza o equipamento e permite executar os demais. Nesta trilha usaremos Linux, por meio do Ubuntu Server.\n\n#### Resultado esperado\n\nAo terminar, você terá um computador dedicado conectado por cabo ao roteador, conseguirá administrá-lo de outro computador, abrirá uma página de teste pelo celular e recuperará um arquivo a partir de uma cópia guardada fora do servidor. Não é preciso saber programar.\n\nO projeto fica dentro da rede de casa. Acesso pela internet, máquinas virtuais e contêineres são possíveis evoluções, depois que você dominar esta base. Não são necessários para concluir.\n\n#### Como estudar\n\nLeia uma aula, execute a prática e confira o resultado antes de seguir. Nos blocos de comandos, copie somente as linhas, sem acrescentar símbolos de prompt. Use um comando por vez. Quando a saída for diferente, registre a mensagem inteira.\n\nUm caderno ou arquivo de anotações será seu diário do laboratório. Registre equipamento, sistema, endereço de rede, alterações e testes. Guarde senhas em um gerenciador de senhas, separado desse diário.","published":true}},{"id":"74bf3265-56b3-4ca2-b085-231938938727","type":"YOUTUBE","title":"Conheça um homelab real: hardware e software","position":2,"description":"Diolinux. Observe os papéis dos equipamentos; não tente reproduzir todo o laboratório. Áudio em português e incorporação ainda não verificados.","availability":"AVAILABLE","youtube":{"videoId":"WqVws-2Sgi4","url":"https://www.youtube.com/watch?v=WqVws-2Sgi4","channelName":"Diolinux","madeForKids":false,"availability":"AVAILABLE","channelId":"UCEf5U1dB5a2e2S-XUlnhxSA","channel":{"handle":"@diolinux","description":"Descubra o mundo da tecnologia com Diolinux! 🐧\n\nHá mais de uma década, somos sua referência em tecnologia e Open Source. Nossa missão é descomplicar o Linux e conectá-lo ao seu dia a dia, mas sem esquecer do Windows, macOS, Android e Chrome OS.\n\nAqui você encontra conteúdo consistente sobre: \n\n🚀 Educação em TI:\nCursos gratuitos de Linux (iniciante ao avançado), Servidores, Docker e Self-hosting, com muito conteúdo avançado de forma simplificada.\n\n 💻 Sistemas Operacionais: \nAnálises detalhadas de Ubuntu, Pop!_OS, Linux Mint, Fedora, Arch Linux, Debian, Zorin OS, CachyOS, Red Hat e mais. \n\n🎮 Games e Hardware: \nO melhor do mundo gamer no Linux, Steam OS, Bazzite e reviews de hardware.\n\n🎨 Carreira, Criatividade e Comportamento: \nConversas sobre mercado de TI, a nossa relação com tecnologia, privacidade digital, Design (UX/UI), Marketing e desenvolvimento de produtos.\n\nTecnologia transforma!\n\n👇Junte-se à nossa comunidade pinguim, apaixonada por aprender e compartilhar conhecimento. 🐧\n\n","avatarUrl":"https://yt3.ggpht.com/SLBk_zBM2dQJIt4YIzK6kMi2I3xyvSpDnxa6cQTcLzdeMRc4jQC8WYp8c71Tq-YweLcOr67A2IQ=s240-c-k-c0x00ffffff-no-rj","subscriberCount":832000,"videoCount":2704}}},{"id":"608ea61b-9a60-47e1-9ccf-171415472156","type":"TEXT","title":"Escolha a máquina sem comprar um datacenter","position":3,"availability":"AVAILABLE","text":{"body":"#### Uma configuração de referência\n\nPara este projeto leve, adote como referência um computador Intel ou AMD de 64 bits, com dois núcleos, 4 GB de memória RAM, SSD de 64 GB ou maior e conexão Ethernet. Isso é uma escolha didática para as atividades, não uma garantia para qualquer aplicativo nem o mínimo oficial do Ubuntu.\n\nO processador executa instruções. A RAM guarda temporariamente o que está em uso; seu conteúdo se perde ao desligar. O SSD ou HD guarda arquivos de forma persistente. Um SSD costuma deixar instalação e abertura de programas mais ágeis, mas não substitui backup.\n\nNo Windows, abra Configurações, Sistema e Sobre para localizar processador, RAM e tipo de sistema. Consulte também o Gerenciador de Tarefas, na aba Desempenho. Registre as informações sem divulgar números de série.\n\nVocê precisará de um pendrive de pelo menos 8 GB, um cabo de rede, acesso ao roteador e um teclado e monitor durante a instalação. Outro computador será usado para administrar o servidor. O celular fará o teste de acesso à página. Se ainda não tiver o equipamento, conclua o planejamento antes de executar a instalação.\n\n#### Reaproveitamento responsável\n\nUm computador antigo funcionando pode servir. Prefira um aparelho que não seja o único computador de trabalho ou estudo da casa: a instalação desta trilha substitui o sistema existente no disco selecionado.\n\nUse um local seco, firme e ventilado. Não cubra saídas de ar. Não abra fontes de alimentação. Se houver bateria estufada, cheiro de queimado ou desligamentos inesperados, interrompa o uso e procure assistência. Um servidor doméstico não precisa ficar ligado o dia inteiro durante o aprendizado.\n\n#### Consumo\n\nPotência da fonte não é consumo constante. Uma fonte de 400 W não significa que o computador consome 400 W o tempo todo. Um medidor de tomada ajuda a medir o consumo real.\n\nPara estimar energia, multiplique potência média em watts por horas de uso e divida por 1000. Um equipamento com média medida de 30 W, ligado 24 horas durante 30 dias, usa aproximadamente 21,6 kWh. Multiplique pelo valor efetivo do kWh da sua conta para estimar o custo variável. É um exemplo matemático, não uma promessa de consumo.\n\n#### Prática\n\nRegistre processador, RAM, capacidade do disco, conexão de rede e local de instalação. Identifique quais arquivos precisam ser preservados e para onde serão copiados. Escolha um único objetivo inicial: neste curso, publicar uma página de teste local.","published":true}},{"id":"39b954a1-9690-47a0-a373-ee4c744759ba","type":"QUIZ","title":"Planeje seu primeiro laboratório","position":4,"availability":"AVAILABLE","assessmentId":"7957d000-8e10-4e1f-a454-69c0063ac785"}]},{"id":"8b42b9c3-5403-435b-b6dc-4a2cda53a190","title":"2. Entenda a rede de casa","description":"Aprenda o necessário sobre roteador, endereço IP, DHCP e portas para conectar o servidor sem alterar o acesso à internet dos demais moradores.","position":2,"contents":[{"id":"299624e2-e48b-4fc3-a37e-3123fffea095","type":"TEXT","title":"Endereços, caminhos e serviços","position":1,"availability":"AVAILABLE","text":{"body":"#### Sua rede local\n\nRede local é o conjunto de dispositivos que podem se comunicar dentro de um ambiente. Em casa, o roteador normalmente conecta essa rede à internet e também pode fornecer Wi-Fi. Wi-Fi é uma maneira de conectar à rede, não um sinônimo de internet.\n\nUm cabo Ethernet liga a porta de rede do computador a uma porta LAN do roteador. Não use a porta WAN destinada à conexão com a operadora. Se todas as portas estiverem ocupadas, um switch pode ampliar as conexões, mas não é necessário comprá-lo se já houver uma porta disponível.\n\nO endereço IP identifica uma interface de rede. Nesta trilha, os exemplos usam IPv4, como 192.168.1.50. Esse endereço é apenas um exemplo: você deverá usar o endereço realmente atribuído ao seu servidor.\n\n#### Quem distribui os endereços\n\nDHCP é o mecanismo que normalmente distribui automaticamente IP, rota padrão e servidores DNS. O gateway padrão é a saída usada para alcançar outras redes. DNS traduz nomes, como ubuntu.com, em endereços.\n\nUma máscara define que parte do endereço identifica a rede. No exemplo 192.168.1.50/24, uma rede doméstica comum poderia conter também 192.168.1.20. Não copie esse intervalo para uma rede diferente: duas máquinas começarem por 192.168 não garante que estejam na mesma sub-rede.\n\nO IP privado serve na rede local. O IP público está relacionado à comunicação com a internet; a operadora pode usar compartilhamento de endereços. Você não precisa descobrir nem alterar o IP público para fazer este projeto.\n\n#### Portas\n\nUma porta diferencia serviços no mesmo endereço. SSH usará TCP 22 para administração. O servidor de páginas usará TCP 80 para HTTP. IP é o endereço do prédio; porta é a entrada do serviço.\n\nNão configure redirecionamento de portas, DMZ ou acesso administrativo pela internet para acompanhar a trilha. Liberar uma porta no firewall do computador e redirecionar uma porta no roteador são ações diferentes.","published":true}},{"id":"e1f31ff9-da41-4b99-b103-d1fef93aaaaa","type":"YOUTUBE","title":"Conheça as configurações de um roteador doméstico","position":2,"description":"Curso em Vídeo, aula de redes. Observe IP e DHCP. Não altere configurações de internet para seguir o projeto. Áudio e incorporação ainda não verificados.","availability":"AVAILABLE","youtube":{"videoId":"rUl5G1IonuY","url":"https://www.youtube.com/watch?v=rUl5G1IonuY","channelName":"Curso em Vídeo","madeForKids":false,"availability":"AVAILABLE","channelId":"UCrWvhVmt0Qac3HgsjQK62FQ","channel":{"handle":"@cursoemvideo","description":"💻 O Curso em Vídeo é um dos maiores canais educacionais do YouTube na área de programação! Criado pelo professor Gustavo Guanabara, oferece cursos gratuitos em formato de videoaulas para quem quer aprender tecnologia do zero.\n\n🎓 Para obter certificado, estude pela plataforma online, comprove seu conhecimento em entrevistas e complemente suas horas de estudo\n\n📘 Cursos de Algoritmo, PHP, Java, JavaScript, Python, HTML5, CSS3, Git e muito mais!\n\n🤝 Patrocínios, palestras e parcerias: envie um e-mail para comercial@cursoemvideo.com\n","avatarUrl":"https://yt3.ggpht.com/ytc/AIdro_m-8zZRJBWMwnaHcJgQv2IRr0dLcqCv1yKcQHgSEZ26jHw=s240-c-k-c0x00ffffff-no-rj","subscriberCount":2790000,"videoCount":1841}}},{"id":"4d63b781-661b-41d4-8f76-3fe4ec6f70eb","type":"TEXT","title":"Localize os dispositivos e estabilize o endereço","position":3,"availability":"AVAILABLE","text":{"body":"#### Primeiro observe\n\nNo Windows do computador de administração, abra o menu Iniciar, pesquise PowerShell e execute:\n\n```powershell\nipconfig\n```\n\nLocalize o adaptador que está conectado. Registre o IPv4, a máscara e o gateway padrão. Ignore adaptadores desconectados. Não publique a saída completa em grupos: ela pode trazer informações desnecessárias sobre sua rede.\n\nAbra no navegador o endereço do gateway informado, usando http ou https conforme o equipamento. Entre com suas credenciais de administração. Não confunda a senha administrativa do roteador com a senha do Wi-Fi.\n\nProcure a lista de clientes ou dispositivos conectados. Os nomes dos menus variam por fabricante. Não restaure o roteador às configurações de fábrica se não souber a senha: isso pode interromper a internet da casa. Consulte o responsável pela rede.\n\n#### Depois da instalação do servidor\n\nVocê voltará aqui quando o Ubuntu estiver instalado. No terminal dele, execute:\n\n```bash\nip -br address\nip route\n```\n\nO primeiro comando lista interfaces e endereços. Ignore a interface lo e o endereço 127.0.0.1: representam o próprio computador. Procure o endereço da interface Ethernet, cujo nome varia. O segundo mostra rotas; a linha que começa com default indica a saída padrão.\n\nNa lista do roteador, encontre esse dispositivo pelo endereço e pelo nome homelab. Registre também seu endereço MAC, o identificador da interface.\n\n#### Reserva DHCP\n\nSe o roteador permitir, crie uma reserva DHCP para o MAC da interface Ethernet usando o endereço atual atribuído ao servidor, conforme as regras do equipamento. Assim, ele continuará recebendo configuração automática, com endereço reservado. Não escolha um IP aleatório que possa estar em uso.\n\nNão altere IP manualmente no Ubuntu nesta trilha. Se não tiver acesso ao roteador, continue com DHCP e confira o endereço após reinícios; a reserva melhora a previsibilidade, mas não impede o aprendizado.\n\n#### Teste inicial\n\nNo PowerShell do outro computador, execute o comando abaixo substituindo o IP de exemplo pelo IP real do servidor:\n\n```powershell\nping 192.168.1.50\n```\n\nRespostas indicam que houve comunicação. Falta de resposta não prova que a máquina está desligada: o teste pode ser bloqueado. Mais tarde, testaremos também a porta do serviço.\n\nCelular em dados móveis, Wi-Fi de visitantes ou redes com isolamento entre clientes podem não alcançar o servidor. Conecte o celular ao Wi-Fi principal da mesma rede e desligue temporariamente os dados móveis durante o teste.","published":true}},{"id":"7a2a47f3-46e7-430f-bf98-4bd3e06bd9c4","type":"QUIZ","title":"Interprete a rede","position":4,"availability":"AVAILABLE","assessmentId":"3138b766-f308-4713-84cc-67d6841fc630"}]},{"id":"9f54743f-b2fc-4720-a520-5e6c7fa3d8ef","title":"3. Instale o Ubuntu Server com cuidado","description":"Prepare o pendrive, instale o sistema no disco dedicado e faça a primeira atualização. A referência didática é Ubuntu Server 24.04 LTS para Intel ou AMD de 64 bits.","position":3,"contents":[{"id":"721ea233-e379-41b6-a24a-9a66ae56e11c","type":"TEXT","title":"Prepare o pendrive e proteja seus arquivos","position":1,"availability":"AVAILABLE","text":{"body":"#### Antes de gravar\n\nUma imagem ISO contém o material de instalação do sistema. Ela deve ser gravada com um programa próprio; copiar o arquivo ISO para dentro de um pendrive comum não o torna automaticamente inicializável.\n\nUse a página oficial do Ubuntu para localizar a imagem do Ubuntu Server 24.04 LTS para amd64. O nome amd64 também atende processadores Intel de 64 bits; não significa que o processador precisa ser AMD. Máquinas ARM exigem outra imagem e ficam fora do procedimento principal.\n\nEndereço oficial: https://releases.ubuntu.com/24.04/\n\nUse o arquivo de instalação com nome contendo live-server e amd64, com extensão .iso. A versão corretiva disponível pode variar. Não use uma imagem Desktop, ARM ou arquivo torrent por engano.\n\nNo Windows, uma opção para gravar é o Rufus, disponível em https://rufus.ie/pt_BR/. Confira que está no site oficial. Conecte um pendrive de pelo menos 8 GB que possa ser apagado.\n\n#### Gravação\n\n1. Faça uma cópia dos arquivos do pendrive e do computador que receberá o Ubuntu. Abra alguns arquivos da cópia para conferir.\n2. Abra o Rufus. Em Dispositivo, confira nome e capacidade do pendrive.\n3. Em seleção de boot, escolha a ISO baixada.\n4. Em computadores com UEFI, a combinação GPT e UEFI costuma ser apropriada. Equipamentos antigos podem exigir modo Legacy e MBR; consulte a documentação da máquina quando necessário.\n5. Inicie a gravação e leia o aviso de apagamento. Confirme somente se o dispositivo selecionado for o pendrive correto.\n6. Aguarde concluir e ejete pelo Windows.\n\nSe o programa solicitar um modo de gravação para a ISO, use a opção recomendada por ele para a imagem. Não formate discos internos para tentar corrigir um pendrive que não inicia.\n\n#### Preparação física\n\nCom o computador desligado e desconectado da tomada, você pode desconectar discos extras que contenham dados importantes, se souber fazer isso com segurança. Caso contrário, procure ajuda. Nunca trabalhe dentro do computador energizado.\n\nConecte teclado, monitor, cabo Ethernet e o pendrive. Ligue e abra o menu de inicialização; as teclas podem ser F12, F11, Esc ou outras, dependendo do fabricante. Escolha o pendrive. Se iniciar o sistema antigo, consulte o manual do equipamento antes de modificar opções de firmware.","published":true}},{"id":"8682fee3-7d3f-436b-8b62-30d728472631","type":"YOUTUBE","title":"Acompanhe uma instalação do Ubuntu Server","position":2,"description":"Diolinux. Compare a demonstração com o roteiro escrito; telas e versões podem diferir. Áudio em português e incorporação ainda não verificados.","availability":"AVAILABLE","youtube":{"videoId":"DGTkPW42VxI","url":"https://www.youtube.com/watch?v=DGTkPW42VxI","channelName":"Diolinux Labs","madeForKids":false,"availability":"AVAILABLE","channelId":"UC629vKGFPRc1rz6VDm6OZiQ","channel":{"handle":"@diolinuxlabs","description":"Tutoriais, Dicas e Notícias sobre Linux e Tecnologia, porque apenas um canal Diolinux no YouTube já não era o suficiente para tanto conteúdo bacana! \n\n\n","avatarUrl":"https://yt3.ggpht.com/Qpb76PK45aNUeBH9UzemuuA6GWNd6QAstFT-4d7Okn4d7WruWiQo9UvIK2yowWdHCV3mRa9kpg=s240-c-k-c0x00ffffff-no-rj","subscriberCount":84700,"videoCount":1539}}},{"id":"457cbc2c-3c8a-4f92-85fd-97af83c10fd3","type":"TEXT","title":"Do instalador ao primeiro login","position":3,"availability":"AVAILABLE","text":{"body":"#### Navegação\n\nO instalador usa teclado. As setas movimentam a seleção; Tab alterna áreas; Enter confirma. Leia cada tela antes de avançar. Escolha o idioma que compreender melhor e o layout do teclado; teste caracteres como barra e arroba quando houver campo de teste.\n\nSelecione a instalação Ubuntu Server normal. Na rede, mantenha a interface Ethernet configurada por DHCP. Se não aparecer endereço, confira cabo, porta LAN e conectividade antes de seguir. Deixe proxy vazio se sua rede doméstica não o usa e mantenha o espelho de pacotes sugerido.\n\n#### O ponto que exige mais atenção: disco\n\nEste roteiro usa um disco inteiro dedicado ao Ubuntu. A opção de usar o disco inteiro apaga o sistema e arquivos existentes nele. Confira modelo e capacidade, e compare com suas anotações. Se houver dúvida sobre qual disco é o correto, volte e esclareça antes de confirmar a gravação.\n\nAceite o particionamento guiado do disco dedicado. Se houver opção de LVM, o padrão pode ser mantido: ele organiza volumes de armazenamento. Não configure RAID ou particionamento manual para este primeiro laboratório. Criptografia de disco exige planejar como desbloquear a máquina após reinícios; ela não faz parte deste roteiro básico.\n\nConfirme a alteração somente depois de conferir o resumo. Ter uma cópia verificada fora do computador é pré-requisito para esse passo.\n\n#### Identidade e acesso\n\nUse homelab como nome do servidor e aluno como nome de usuário, para acompanhar os exemplos. Escolha uma senha longa, exclusiva e guarde-a com segurança. Ela não aparece ao digitar no terminal; isso é normal.\n\nQuando houver a opção, marque a instalação do OpenSSH Server. Para o primeiro acesso, mantenha autenticação por senha; as chaves serão explicadas depois. Pule assinatura opcional do Ubuntu Pro e aplicativos extras: não são exigidos para este projeto.\n\nAo concluir, reinicie quando solicitado e remova o pendrive no momento indicado. Se voltar ao instalador, retire o pendrive e reinicie. Entre com aluno e sua senha.\n\n#### Atualize\n\nExecute no terminal do servidor:\n\n```bash\nsudo apt update\nsudo apt upgrade\n```\n\nsudo solicita autorização administrativa. apt update atualiza a lista de pacotes disponíveis; apt upgrade instala atualizações dos pacotes existentes. Leia o resumo e confirme quando estiver pronto. A senha solicitada é a do usuário aluno.\n\nSe aparecer erro de conexão, retorne à verificação de rede; não repita comandos indefinidamente. Ao terminar, reinicie:\n\n```bash\nsudo reboot\n```\n\nEspere o computador voltar e entre novamente. Confira o sistema e o espaço:\n\n```bash\ncat /etc/os-release\ndf -h\n```\n\nO primeiro mostra a identificação do sistema. O segundo mostra capacidade e uso dos sistemas de arquivos montados; a linha montada em / representa a raiz. Se usou LVM, o espaço de / pode ser menor que a capacidade total do disco porque nem todo o espaço foi atribuído a esse volume.\n\nAgora execute a prática de identificação do IP do módulo anterior. Registre a versão instalada, o IP e o resultado do reinício.","published":true}},{"id":"55180d12-4785-4909-ac0f-d1e3c34d1a5a","type":"QUIZ","title":"Confira a instalação","position":4,"availability":"AVAILABLE","assessmentId":"2049dce6-62b6-43dc-87d5-099f89ef47c2"}]},{"id":"a7b8d81f-9e20-4d6d-85ba-4e5f23784ab1","title":"4. Administre e publique seu primeiro serviço local","description":"Aprenda comandos básicos, acesso por SSH e firewall. Instale o Nginx e disponibilize uma página de teste que possa ser aberta por outro dispositivo da casa.","position":4,"contents":[{"id":"13b08242-529d-401c-ad6e-4b09b591f333","type":"TEXT","title":"Terminal sem adivinhação","position":1,"availability":"AVAILABLE","text":{"body":"#### Pastas e comandos\n\nO terminal recebe instruções escritas. Linux diferencia maiúsculas de minúsculas: Dados e dados podem ser pastas distintas. O caminho /home/aluno é a pasta pessoal do usuário aluno. O símbolo ~ representa a pasta pessoal do usuário atual.\n\nExecute cada linha separadamente:\n\n```bash\npwd\nls\nmkdir -p ~/laboratorio\ncd ~/laboratorio\nprintf 'Meu primeiro servidor\\n' > anotacoes.txt\ncat anotacoes.txt\ncp anotacoes.txt anotacoes-copia.txt\nls -l\n```\n\npwd mostra a pasta atual. ls lista itens. mkdir cria uma pasta; -p aceita que ela já exista. cd muda de pasta. printf produz o texto e > grava em um arquivo, substituindo seu conteúdo se ele já existir. cat mostra o conteúdo. cp copia. ls -l mostra detalhes.\n\nO resultado esperado é encontrar os dois arquivos na pasta laboratorio e ler Meu primeiro servidor. Não execute comandos de remoção para fazer esta prática.\n\n#### Ajuda e permissões\n\nUse man ls para consultar o manual de ls e pressione q para sair. Ctrl+C interrompe muitos comandos interativos. As permissões definem quem pode ler, escrever e executar. Evite soluções como liberar tudo para todo mundo quando houver um erro de acesso.\n\nsudo deve ser usado apenas nas operações administrativas que exigem isso. Criar arquivos na própria pasta pessoal não costuma precisar dele. Um erro Permission denied pede investigação do caminho e do dono do arquivo, não sudo em qualquer comando.","published":true}},{"id":"560c7bce-95e0-4d36-8a32-1f9a3f12a137","type":"YOUTUBE","title":"Entenda o acesso remoto com SSH e chaves","position":2,"description":"Diolinux. Conheça a diferença entre acesso por senha e por chave. Faça primeiro o roteiro básico escrito. Áudio em português e incorporação ainda não verificados.","availability":"AVAILABLE","youtube":{"videoId":"NqW-BeYRBkE","url":"https://www.youtube.com/watch?v=NqW-BeYRBkE","channelName":"Diolinux","madeForKids":false,"availability":"AVAILABLE","channelId":"UCEf5U1dB5a2e2S-XUlnhxSA","channel":{"handle":"@diolinux","description":"Descubra o mundo da tecnologia com Diolinux! 🐧\n\nHá mais de uma década, somos sua referência em tecnologia e Open Source. Nossa missão é descomplicar o Linux e conectá-lo ao seu dia a dia, mas sem esquecer do Windows, macOS, Android e Chrome OS.\n\nAqui você encontra conteúdo consistente sobre: \n\n🚀 Educação em TI:\nCursos gratuitos de Linux (iniciante ao avançado), Servidores, Docker e Self-hosting, com muito conteúdo avançado de forma simplificada.\n\n 💻 Sistemas Operacionais: \nAnálises detalhadas de Ubuntu, Pop!_OS, Linux Mint, Fedora, Arch Linux, Debian, Zorin OS, CachyOS, Red Hat e mais. \n\n🎮 Games e Hardware: \nO melhor do mundo gamer no Linux, Steam OS, Bazzite e reviews de hardware.\n\n🎨 Carreira, Criatividade e Comportamento: \nConversas sobre mercado de TI, a nossa relação com tecnologia, privacidade digital, Design (UX/UI), Marketing e desenvolvimento de produtos.\n\nTecnologia transforma!\n\n👇Junte-se à nossa comunidade pinguim, apaixonada por aprender e compartilhar conhecimento. 🐧\n\n","avatarUrl":"https://yt3.ggpht.com/SLBk_zBM2dQJIt4YIzK6kMi2I3xyvSpDnxa6cQTcLzdeMRc4jQC8WYp8c71Tq-YweLcOr67A2IQ=s240-c-k-c0x00ffffff-no-rj","subscriberCount":832000,"videoCount":2704}}},{"id":"77ea43bc-95d1-44d5-ab9d-13466d860c9b","type":"TEXT","title":"Acesse de outro computador e configure o firewall","position":3,"availability":"AVAILABLE","text":{"body":"#### Confira o serviço SSH\n\nNo servidor, execute:\n\n```bash\nsudo apt install openssh-server ufw\nsudo systemctl enable --now ssh\nsystemctl status ssh --no-pager\n```\n\napt install instala pacotes. systemctl administra serviços. enable --now inicia o serviço e o habilita para iniciar com o sistema. O estado esperado é active (running). Em algumas instalações, o SSH também pode envolver ativação por socket; uma conexão bem-sucedida continua sendo o teste prático decisivo.\n\n#### Firewall antes da conexão remota\n\nFaça a configuração inicial pelo teclado e monitor conectados ao servidor, assim você mantém um caminho de recuperação. O firewall filtra conexões; não substitui senhas e atualizações.\n\n```bash\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow OpenSSH\nsudo ufw enable\nsudo ufw status verbose\n```\n\nEssas regras bloqueiam entradas não autorizadas, permitem saídas e liberam SSH. Leia a confirmação de ativação. A liberação de OpenSSH admite conexões de qualquer origem que consiga alcançar a máquina: ela não significa por si só acesso restrito à rede local. Por isso não crie redirecionamento, DMZ ou exposição pública; roteamento IPv6 também merece atenção se sua rede oferece conectividade pública direta.\n\n#### Conecte pelo Windows\n\nNo PowerShell do outro computador, substitua o endereço de exemplo pelo IP real:\n\n```powershell\nssh aluno@192.168.1.50\n```\n\nSe ssh não for reconhecido, instale o recurso opcional Cliente OpenSSH nas configurações do Windows. Não é necessário instalar Servidor OpenSSH no computador cliente.\n\nNa primeira conexão, o cliente mostra uma impressão digital da chave do servidor. Compare com a chave correspondente consultada no console local, por exemplo a ED25519:\n\n```bash\nsudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub\n```\n\nAceite a conexão se o endereço e a impressão digital coincidirem; então digite a senha. Você estará executando comandos no servidor, mesmo usando o teclado do outro computador. Confirme com hostname; deve aparecer homelab. Use exit para sair.\n\nUma advertência de chave alterada em um servidor antes conhecido pode ocorrer após reinstalação, mas também pode indicar um destino inesperado. Confira no console antes de remover o registro anterior.\n\n#### Próximo passo: chaves\n\nUma chave SSH tem uma parte pública, que pode ser instalada no servidor, e uma privada, que permanece no cliente e deve ser protegida. O vídeo apresenta esse mecanismo como continuação. Não desative o acesso por senha antes de ter instalado e testado a chave em uma segunda sessão e confirmado acesso pelo console. A conclusão desta trilha não exige alterar esse método de autenticação.","published":true}},{"id":"f3132ba0-d288-4678-bbf8-86114e09a7f3","type":"TEXT","title":"Coloque o Nginx para atender sua rede","position":4,"availability":"AVAILABLE","text":{"body":"#### Instale e teste no servidor\n\nNginx é um programa que atende pedidos de páginas e arquivos pela rede. Vamos publicar somente um texto de teste, sem documentos pessoais.\n\n```bash\nsudo apt update\nsudo apt install nginx curl\nsudo systemctl enable --now nginx\nsystemctl status nginx --no-pager\ncurl -I http://127.0.0.1\n```\n\ncurl faz uma requisição. A opção -I pede os cabeçalhos da resposta. O endereço 127.0.0.1 é o próprio servidor. Uma resposta com HTTP e código 200 indica sucesso no cenário esperado. Se houver outro serviço na porta 80 ou a instalação não for a padrão, investigue antes de continuar.\n\n#### Crie um arquivo servido pelo Nginx\n\nNa instalação padrão do pacote Ubuntu, a configuração inicial atende arquivos de /var/www/html. Confira o arquivo de configuração se esse diretório tiver sido alterado anteriormente.\n\n```bash\nprintf 'Meu homelab esta funcionando!\\n' | sudo tee /var/www/html/homelab.txt\ncurl http://127.0.0.1/homelab.txt\n```\n\nO símbolo | envia a saída de um programa para o seguinte. tee grava o conteúdo no arquivo com a autorização administrativa solicitada por sudo e também o mostra. O comando substitui homelab.txt se já existir; neste laboratório o arquivo é criado para o teste.\n\n#### Libere somente o serviço necessário\n\n```bash\nsudo ufw allow 80/tcp\nsudo ufw status\n```\n\nEsta regra libera HTTP para origens que alcancem a máquina. HTTP não cifra o conteúdo; não use esta página para senhas ou dados privados. Mantenha o projeto na rede doméstica, sem exposição pública. HTTPS será uma evolução futura, não um requisito desta página de teste.\n\nNo navegador de outro computador, abra o endereço abaixo usando o IP real:\n\n```text\nhttp://192.168.1.50/homelab.txt\n```\n\nRepita no celular conectado ao Wi-Fi principal. Use explicitamente http: se o navegador tentar https, a conexão pode falhar porque não configuramos esse serviço. O resultado esperado é a frase que você gravou.\n\n#### Demonstre o papel de um serviço\n\nNo servidor, pare apenas o Nginx:\n\n```bash\nsudo systemctl stop nginx\n```\n\nRecarregue a página ignorando cache quando possível. Uma página já armazenada pode continuar aparecendo; uma nova requisição deve falhar. No servidor, curl -I http://127.0.0.1 também deve falhar com o serviço parado.\n\nVolte a iniciá-lo:\n\n```bash\nsudo systemctl start nginx\ncurl -I http://127.0.0.1\n```\n\nNão desligamos o computador nem apagamos o arquivo. Apenas o programa que atendia as requisições foi interrompido e reiniciado. Registre o resultado dos testes locais e do celular.","published":true}},{"id":"33768cf8-f113-496f-9fe4-2848b3843bd1","type":"QUIZ","title":"Administre seu servidor","position":5,"availability":"AVAILABLE","assessmentId":"c50fbfd2-d9c0-418f-a7cd-5b00ee1ca5d3"}]},{"id":"ce78bd76-5b6c-46be-8013-fb0cf32d78dd","title":"5. Faça backup, recupere e cuide do laboratório","description":"Guarde uma cópia em outro computador, restaure um arquivo sem apagar o original e pratique diagnóstico. Termine com um servidor documentado e um teste de funcionamento após reinício.","position":5,"contents":[{"id":"a88aa9b5-4892-42a2-9432-a177c7ea258e","type":"YOUTUBE","title":"Revisite um homelab real com foco na organização dos serviços","position":1,"description":"Retomada do vídeo inicial: observe a separação entre equipamentos e serviços. O procedimento de backup está no texto. Áudio e incorporação ainda não verificados.","availability":"AVAILABLE","youtube":{"videoId":"WqVws-2Sgi4","url":"https://www.youtube.com/watch?v=WqVws-2Sgi4","channelName":"Diolinux","madeForKids":false,"availability":"AVAILABLE","channelId":"UCEf5U1dB5a2e2S-XUlnhxSA","channel":{"handle":"@diolinux","description":"Descubra o mundo da tecnologia com Diolinux! 🐧\n\nHá mais de uma década, somos sua referência em tecnologia e Open Source. Nossa missão é descomplicar o Linux e conectá-lo ao seu dia a dia, mas sem esquecer do Windows, macOS, Android e Chrome OS.\n\nAqui você encontra conteúdo consistente sobre: \n\n🚀 Educação em TI:\nCursos gratuitos de Linux (iniciante ao avançado), Servidores, Docker e Self-hosting, com muito conteúdo avançado de forma simplificada.\n\n 💻 Sistemas Operacionais: \nAnálises detalhadas de Ubuntu, Pop!_OS, Linux Mint, Fedora, Arch Linux, Debian, Zorin OS, CachyOS, Red Hat e mais. \n\n🎮 Games e Hardware: \nO melhor do mundo gamer no Linux, Steam OS, Bazzite e reviews de hardware.\n\n🎨 Carreira, Criatividade e Comportamento: \nConversas sobre mercado de TI, a nossa relação com tecnologia, privacidade digital, Design (UX/UI), Marketing e desenvolvimento de produtos.\n\nTecnologia transforma!\n\n👇Junte-se à nossa comunidade pinguim, apaixonada por aprender e compartilhar conhecimento. 🐧\n\n","avatarUrl":"https://yt3.ggpht.com/SLBk_zBM2dQJIt4YIzK6kMi2I3xyvSpDnxa6cQTcLzdeMRc4jQC8WYp8c71Tq-YweLcOr67A2IQ=s240-c-k-c0x00ffffff-no-rj","subscriberCount":832000,"videoCount":2704}}},{"id":"a664ff81-8113-4189-b1eb-627dd983ec3d","type":"TEXT","title":"Uma cópia que você consegue recuperar","position":2,"availability":"AVAILABLE","text":{"body":"#### Backup não é apenas outra pasta\n\nUma cópia em outra pasta do mesmo disco ajuda contra alguns enganos, mas não protege contra a falha desse disco. Sincronização também não garante recuperação de versões: uma exclusão pode se propagar. RAID, quando existe, não substitui backup.\n\nA ideia 3-2-1 consiste em manter três cópias dos dados, em dois tipos de mídia, sendo uma fora do local principal. Nosso exercício começa com uma cópia no servidor e outra no computador de administração; ainda não implementa uma estratégia 3-2-1 completa.\n\nUse apenas os arquivos de teste neste primeiro procedimento. Aplicações com banco de dados podem exigir exportação consistente ou pausa planejada; copiar arquivos abertos de um banco não é uma estratégia geral de backup.\n\n#### Monte um arquivo de backup\n\nExecute no servidor, com o usuário aluno:\n\n```bash\nmkdir -p ~/backups\ntar -czf ~/backups/laboratorio-v1.tar.gz -C ~ laboratorio\ntar -tzf ~/backups/laboratorio-v1.tar.gz\nsha256sum ~/backups/laboratorio-v1.tar.gz\n```\n\ntar reúne arquivos. A opção c cria, z comprime e f indica o nome do arquivo. -C muda a pasta de origem para incluir laboratorio sem um caminho absoluto. O segundo comando tar lista o conteúdo em vez de extraí-lo. Deve aparecer laboratorio com os arquivos criados no módulo anterior.\n\nsha256sum calcula uma impressão digital do arquivo. Anote o código completo: comparar códigos ajuda a verificar se a cópia transferida tem os mesmos bytes. Isso não prova, sozinho, que o conteúdo é útil ou que veio de uma fonte confiável.\n\nO nome v1 evita confundir esta versão com outra posterior. Repetir a criação com o mesmo nome substitui esse backup. Em novos testes use v2, v3 ou outra identificação clara.\n\n#### Copie para fora do servidor\n\nNo PowerShell do computador Windows, e não dentro da sessão SSH, execute:\n\n```powershell\nNew-Item -ItemType Directory -Force \"$HOME\\HomelabBackup\"\nSet-Location \"$HOME\\HomelabBackup\"\nscp aluno@192.168.1.50:/home/aluno/backups/laboratorio-v1.tar.gz .\nGet-FileHash .\\laboratorio-v1.tar.gz -Algorithm SHA256\n```\n\nSubstitua o IP de exemplo pelo endereço real. Se escolheu outro usuário na instalação, ajuste tanto o nome antes de @ quanto o caminho /home/aluno. O ponto final do comando scp significa pasta atual. scp transfere o arquivo usando SSH.\n\nCompare o código SHA256 com o calculado no servidor, sem se preocupar com letras maiúsculas ou minúsculas. Se forem diferentes, não considere a cópia validada; confira os arquivos e repita a transferência. Mantenha espaço disponível no computador de destino.\n\n#### Restaure a cópia transferida\n\nAinda no PowerShell, envie a cópia de volta com outro nome:\n\n```powershell\nscp .\\laboratorio-v1.tar.gz aluno@192.168.1.50:/home/aluno/backups/retorno-v1.tar.gz\n```\n\nAgora, no terminal do servidor:\n\n```bash\nmkdir -p ~/restauracao-v1\ntar -xzf ~/backups/retorno-v1.tar.gz -C ~/restauracao-v1\ncat ~/restauracao-v1/laboratorio/anotacoes.txt\ndiff ~/laboratorio/anotacoes.txt ~/restauracao-v1/laboratorio/anotacoes.txt\n```\n\nx extrai. Usamos uma pasta separada para preservar o original. O texto deve estar legível; diff não imprime diferenças quando os arquivos são iguais. Se já tiver executado o teste, use uma pasta nova na repetição para não confundir resultados antigos com a nova recuperação.\n\nVocê testou a recuperação da cópia que saiu do servidor, sem precisar apagar nada. Esse procedimento cobre a pasta laboratorio; não cobre automaticamente o Nginx, suas configurações ou o sistema inteiro.\n\n#### Próxima cópia\n\nDepois do exercício, planeje uma cópia adicional em mídia externa desconectada após o uso ou em outro local. Proteja dados pessoais com criptografia e acesso restrito. Defina periodicidade e retenção conforme o que pode perder: uma alteração feita depois da última cópia ainda não está protegida por ela.","published":true}},{"id":"9f3943d3-7793-42c2-865a-13fa818f2f2f","type":"TEXT","title":"Diagnostique sem reinstalar por impulso","position":3,"availability":"AVAILABLE","text":{"body":"#### Investigue de fora para dentro\n\nSe a página não abrir, confira energia, cabo e endereço atual do servidor. Veja se o cliente está na rede correta. No PowerShell, substitua o IP de exemplo e teste:\n\n```powershell\nTest-NetConnection 192.168.1.50 -Port 22\nTest-NetConnection 192.168.1.50 -Port 80\n```\n\nTcpTestSucceeded indica se a conexão TCP foi estabelecida. Porta 22 funcionando e 80 falhando sugere investigar o serviço web e sua regra de firewall. As duas falhando pode envolver endereço, rede, firewall ou máquina desligada; não identifica uma causa única.\n\nNo console ou por SSH, verifique:\n\n```bash\nip -br address\nsystemctl status nginx --no-pager\nsudo nginx -t\nsudo journalctl -u nginx -n 30 --no-pager\nsudo ufw status\ndf -h\nfree -h\n```\n\nnginx -t verifica a configuração. journalctl mostra registros do serviço. df -h mostra espaço em disco; free -h mostra uso de memória. Em Linux, memória usada como cache pode ser reaproveitada; não conclua que há falta de RAM olhando somente a coluna free. Considere também available.\n\nRegistre horário, sintoma, mensagem e alteração anterior ao problema. Não publique senhas, tokens ou registros completos sem verificar se contêm dados pessoais.\n\n#### Casos comuns\n\nConnection refused costuma indicar que não há serviço atendendo naquele destino ou que houve rejeição ativa. Timeout indica que não houve resposta a tempo e pode envolver bloqueio ou rota incorreta. Permission denied no SSH pode estar ligado a usuário, senha ou método de autenticação. No acesso a arquivos, pode envolver permissões de pasta e propriedade.\n\nSe a configuração do Nginx tiver erro, leia a linha indicada por nginx -t, corrija e teste novamente. Não reinicie o serviço repetidamente esperando que um erro de sintaxe desapareça.\n\n#### Rotina básica\n\nUma vez por semana durante o aprendizado, confira funcionamento, disco, atualizações e cópias. Antes de uma alteração relevante, registre o estado atual e preserve os arquivos envolvidos. Execute apt update e apt upgrade como já praticado, leia o resumo e reserve tempo para testar depois. Essa rotina manual não garante por si só que todas as atualizações de segurança estejam automatizadas.\n\nReinicie quando necessário e confirme que SSH e Nginx voltaram. Para desligar de forma organizada:\n\n```bash\nsudo poweroff\n```\n\nEspere o desligamento completar antes de remover a energia. Não puxe a tomada como procedimento normal.","published":true}},{"id":"e16b2332-faf3-4524-b87d-e91ca1184cfd","type":"TEXT","title":"Projeto final e próximos passos","position":4,"availability":"AVAILABLE","text":{"body":"#### Demonstração final\n\nExecute esta sequência com seus próprios endereços e equipamento:\n\n1. Identifique a máquina, a versão do Ubuntu e o objetivo do serviço.\n2. Confira o endereço atual e a reserva DHCP, se disponível.\n3. Entre por SSH a partir do computador de administração.\n4. Abra homelab.txt no navegador desse computador e no celular da mesma rede.\n5. Confirme que o firewall está ativo e permite os serviços usados.\n6. Faça uma nova cópia da pasta laboratorio com outro nome de versão e transfira-a para o computador de administração.\n7. Compare os códigos SHA256 e restaure a cópia em uma pasta nova.\n8. Reinicie o servidor e repita o teste de SSH e da página.\n\nConsidere o projeto funcional quando conseguir explicar e repetir esses passos. Se algo falhar, use o diagnóstico da aula anterior e registre o resultado real, incluindo o que ainda falta resolver.\n\n#### Documentação mínima\n\nEscreva um pequeno manual com: equipamento utilizado; Ubuntu instalado; nome e usuário do servidor sem senha; IP; portas usadas; endereço da página; localização das cópias; data e resultado da última recuperação; comandos de verificação; procedimento de desligamento.\n\nExemplo de registro de recuperação: a cópia laboratorio-v1.tar.gz foi transferida para outro computador, retornou como retorno-v1.tar.gz, foi extraída numa pasta separada e o conteúdo de anotacoes.txt coincidiu com o original. Use esse modelo somente se os testes realmente ocorreram.\n\n#### Evolua uma coisa por vez\n\nDepois da base, você pode estudar compartilhamento de arquivos com Samba, contêineres, biblioteca de mídia e acesso por VPN. Cada novo serviço traz requisitos próprios de armazenamento, atualização, autenticação e backup. Instale um de cada vez e teste a recuperação antes de colocar documentos importantes nele.\n\nUm laboratório pequeno, documentado e recuperável ensina mais do que uma coleção de aplicativos que você não sabe reiniciar. Seu primeiro servidor já cumpre o objetivo quando você consegue montá-lo, usá-lo e cuidar dele.","published":true}},{"id":"04aa2c2f-9f68-4a7f-b1f0-a8eed693e970","type":"QUIZ","title":"Comprove que consegue manter o homelab","position":5,"availability":"AVAILABLE","assessmentId":"29e8eaf7-7b68-4a25-b4df-7c27f553f747"}]}],"communityAvailable":true,"contributionsEnabled":true,"creator":{"id":"48d11b36-3820-4bd3-ae47-633ab005f3e4","nickname":"lucascode","linkedinUrl":null,"instagramUrl":null,"avatarUrl":null},"contributors":[],"contributorCount":0}