<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>ia | Self-Hosted!</title><link>https://blog.brumarino.com/tags/ia/</link><description>Post novo no “Rack” todo dia às 7AM. Proxmox, rede, backup, UPS, IA e tudo o que tenho estudado.</description><language>pt-BR</language><managingEditor>Bruno Marino</managingEditor><image><url>https://blog.brumarino.com/brand/icon-144.png</url><title>ia | Self-Hosted!</title><link>https://blog.brumarino.com/tags/ia/</link><width>144</width><height>144</height></image><webfeeds:icon>https://blog.brumarino.com/brand/icon-192.png</webfeeds:icon><webfeeds:logo>https://blog.brumarino.com/brand/symbol.svg</webfeeds:logo><webfeeds:accentColor>2B3036</webfeeds:accentColor><lastBuildDate>Tue, 13 Oct 2026 07:00:00 -0300</lastBuildDate><atom:link href="https://blog.brumarino.com/tags/ia/index.xml" rel="self" type="application/rss+xml"/><item><title>Perdi tudo no homelab e a IA me ajudou a reconstruir</title><link>https://blog.brumarino.com/ia-reconstruir-homelab-claude-code/</link><pubDate>Tue, 13 Oct 2026 07:00:00 -0300</pubDate><guid>https://blog.brumarino.com/ia-reconstruir-homelab-claude-code/</guid><category>IA no homelab</category><description>Perdi o SSD e o HD de backup juntos, sem git. A IA me ajudou a reconstruir as aplicações. Hoje uso o Claude Code no homelab com regras bem claras.</description><content:encoded><![CDATA[<p>Um dia eu perdi, de uma vez, o SSD do servidor e o HD de backup. Não consegui recuperar nada. Os serviços, as configurações e, pior, o código das aplicações que eu mesmo tinha desenvolvido foram embora, porque nada daquilo estava num repositório git.</p>
<p>Recomecei do zero. E quem me ajudou a reconstruir as aplicações foi a IA: busquei o código de novo com ela, aplicação por aplicação, até tudo voltar a funcionar.</p>
<p>Este post é sobre o que aprendi com isso e sobre como uso IA no homelab hoje, com regras claras do que ela pode e do que não pode fazer.</p>
<h2 id="o-que-a-ia-fez-bem-no-pior-dia">O que a IA fez bem no pior dia <a class="anchor" href="#o-que-a-ia-fez-bem-no-pior-dia" aria-label="Link para esta seção">#</a></h2>
<p>Quando tudo some, o problema não é só técnico, é de memória. Você sabe o que a aplicação fazia, mas não lembra de cada decisão, de cada arquivo de configuração, de cada detalhe que levou semanas para acertar.</p>
<p>A IA ajudou exatamente nessa parte. Fui aplicação por aplicação, buscando o código de novo com ela, revisando e testando cada pedaço antes de colocar no ar. Não foi mágico nem instantâneo, mas transformou &ldquo;perdi meses de trabalho&rdquo; em &ldquo;tenho trabalho para alguns dias&rdquo;.</p>
<p>O que eu não gostaria de repetir é a situação que tornou isso necessário.</p>
<h2 id="a-lição-número-um-não-é-sobre-ia-é-sobre-git">A lição número um não é sobre IA: é sobre git <a class="anchor" href="#a-li%c3%a7%c3%a3o-n%c3%bamero-um-n%c3%a3o-%c3%a9-sobre-ia-%c3%a9-sobre-git" aria-label="Link para esta seção">#</a></h2>
<p>A causa do estrago não foi o disco que morreu. Disco morre. A causa foi o código existir em um lugar só.</p>
<p>Depois do desastre, a regra virou: <strong>toda aplicação nasce com repositório</strong>. Hoje cada projeto meu tem repositório privado no GitHub, e o deploy é feito por runners do GitHub Actions que rodam aqui mesmo, num container LXC do Proxmox dedicado a isso. Se o servidor morrer amanhã, o código está a salvo, e o caminho para colocar tudo de volta no ar está escrito no próprio workflow.</p>
<p>Este blog é um exemplo: o código fica num repositório, cada push no <code>main</code> dispara um deploy pelo runner self-hosted, e um script do lado do servidor roda os testes, troca a versão e volta para a anterior se algo der errado.</p>
<aside class="alert alert--tip">
  <p class="alert__title">Dica</p>
  <p>Se você tem scripts e aplicações caseiras sem git, comece pelo mais simples: um <code>git init</code> e um repositório privado no GitHub, GitLab ou num Gitea self-hosted. Versionar já resolve a pior parte do problema.</p>
</aside><h2 id="como-eu-uso-a-ia-no-homelab-hoje">Como eu uso a IA no homelab hoje <a class="anchor" href="#como-eu-uso-a-ia-no-homelab-hoje" aria-label="Link para esta seção">#</a></h2>
<p>Uso o Claude Code, que roda no terminal e executa comandos de verdade. Isso é poderoso e, por isso mesmo, perigoso sem limites. Na prática, ele me apoia em:</p>
<ul>
<li>montar e manter os containers de serviço;</li>
<li>escrever e corrigir o código das minhas aplicações;</li>
<li>configurar deploys, timers do systemd e servidores web;</li>
<li>investigar problemas lendo logs e configurações.</li>
</ul>
<p>E não toca em uma coisa: <strong>o host do Proxmox</strong>. A IA trabalha dentro dos containers e das aplicações, nunca na camada que segura todo o resto. Se algo der muito errado dentro de um container, eu restauro aquele container. Se der errado no host, eu perco o homelab inteiro.</p>
<h2 id="as-regras-que-eu-dou-para-a-ia">As regras que eu dou para a IA <a class="anchor" href="#as-regras-que-eu-dou-para-a-ia" aria-label="Link para esta seção">#</a></h2>
<p>Regras claras funcionam melhor do que confiar no bom senso de uma ferramenta. As que eu sigo:</p>
<ol>
<li><strong>Segredos ficam fora do código.</strong> Senhas e chaves vão em arquivos <code>.env</code> dentro de <code>/etc/&lt;app&gt;/</code>, com permissão <code>600</code>, nunca no repositório e nunca em logs.</li>
<li><strong>Nada sai para fora sem eu confirmar.</strong> Publicar algo, criar recurso em nuvem ou gastar dinheiro só acontece depois do meu OK.</li>
<li><strong>Produção não se mexe sem pedir.</strong> Aplicações em produção têm um caminho de deploy definido, e a IA não faz atalhos.</li>
<li><strong>Instruções por projeto ficam escritas.</strong> Cada repositório tem um arquivo <code>CLAUDE.md</code> com as regras daquele projeto, que o Claude Code lê no início de cada sessão.</li>
</ol>
<p>O item 4 é o que mais fez diferença. Em vez de repetir as mesmas regras toda vez, elas ficam versionadas junto com o código, como qualquer outra configuração. Aplicar a regra 1 é simples:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">install -d -m <span class="m">750</span> /etc/minha-app
</span></span><span class="line"><span class="cl">install -m <span class="m">600</span> /dev/null /etc/minha-app/app.env
</span></span></code></pre></div><p>Depois é só a unit do systemd carregar esse arquivo com <code>EnvironmentFile=/etc/minha-app/app.env</code>.</p>
<aside class="alert alert--warning">
  <p class="alert__title">Atenção</p>
  <p>Ferramentas de IA que executam comandos podem apagar arquivos, derrubar serviços e expor dados se você deixar. Comece dando acesso a um container de teste, revise o que ela pretende fazer e só depois amplie o alcance.</p>
</aside><h2 id="o-que-eu-ainda-não-fiz-modelos-locais">O que eu ainda não fiz: modelos locais <a class="anchor" href="#o-que-eu-ainda-n%c3%a3o-fiz-modelos-locais" aria-label="Link para esta seção">#</a></h2>
<p>Muita gente no mundo self-hosted roda modelos de IA localmente. Eu ainda não testei e, sendo honesto, ainda não sei montar isso bem. Com 24 GB de RAM e sem GPU dedicada no meu ThinkCentre, qualquer coisa nessa linha vai ser limitada, então por enquanto uso um serviço na nuvem com as regras acima.</p>
<p>Também estou testando um agente self-hosted, o Hermes Agent, mas isso ainda está em fase de experimento e merece um post próprio quando tiver conclusões.</p>
<h2 id="se-você-quer-começar">Se você quer começar <a class="anchor" href="#se-voc%c3%aa-quer-come%c3%a7ar" aria-label="Link para esta seção">#</a></h2>
<p>O caminho que eu recomendaria, olhando para trás:</p>
<ul>
<li><strong>Coloque tudo no git antes de qualquer outra coisa.</strong> A IA ajuda a reconstruir, mas ter o código salvo é muito melhor do que precisar reconstruir.</li>
<li><strong>Defina o alcance da IA:</strong> containers e aplicações, sim; host do hipervisor, não.</li>
<li><strong>Escreva as regras num arquivo do projeto</strong> em vez de confiar na memória da conversa.</li>
<li><strong>Revise o que ela faz,</strong> principalmente comandos que apagam, sobrescrevem ou publicam.</li>
</ul>
<p>No meu caso, a IA transformou um desastre em alguns dias de trabalho. Mas o que me deixa tranquilo hoje não é a IA, é saber que um disco morto não leva mais o meu código junto.</p>
]]></content:encoded></item></channel></rss>