<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>/var/log/janio</title><link>https://devops.sarmento.org/</link><description>Recent content on /var/log/janio</description><generator>Hugo</generator><language>pt-BR</language><lastBuildDate>Tue, 26 May 2026 06:55:00 +0000</lastBuildDate><atom:link href="https://devops.sarmento.org/index.xml" rel="self" type="application/rss+xml"/><item><title>SOPS + age: Gerenciamento de segredos declarativo, seguro e sem a dor de cabeça do GPG</title><link>https://devops.sarmento.org/posts/sops-e-age-gerenciamento-de-segredos-na-pratica/</link><pubDate>Tue, 26 May 2026 07:00:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/sops-e-age-gerenciamento-de-segredos-na-pratica/</guid><description>&lt;p&gt;Como já discuti anteriormente no post sobre &lt;a href="https://devops.sarmento.org/posts/secret-management-macos-linux/"&gt;secret management no macOS e no Linux&lt;/a&gt;, o grande problema de gerenciar chaves e tokens não é a criptografia em si, mas sim reduzir o vazamento acidental sem transformar a rotina do sysadmin num inferno burocrático. Nos últimos anos, porém, uma dupla de ferramentas ganhou espaço e mudou completamente essa dinâmica: o &lt;strong&gt;Mozilla SOPS&lt;/strong&gt; e o &lt;strong&gt;age&lt;/strong&gt;. Juntos, eles permitem uma abordagem declarativa (GitOps-friendly), extremamente segura e com fricção quase zero. Este post é uma análise detalhada sobre o funcionamento dessas ferramentas e como integrá-las de forma prática no seu dia a dia.&lt;/p&gt;</description></item><item><title>Secret management no macOS e no Linux: uma abordagem teórico-prática</title><link>https://devops.sarmento.org/posts/secret-management-macos-linux/</link><pubDate>Sun, 17 May 2026 11:34:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/secret-management-macos-linux/</guid><description>&lt;p&gt;Existe um momento na vida de praticamente todo sysadmin em que ele percebe que espalhou segredos demais pelo ambiente: uma senha em &lt;code&gt;.env&lt;/code&gt; aqui, um token no histórico do shell ali, um webhook esquecido dentro de um &lt;code&gt;docker-compose.yml&lt;/code&gt;, uma API key hardcoded num script “temporário” que continua rodando dois anos depois. Nada disso parece grave isoladamente; o problema é que a infraestrutura quase nunca quebra por uma decisão única e gigantesca. Ela quebra pelo acúmulo de pequenas concessões feitas em nome da praticidade.&lt;/p&gt;</description></item><item><title>Hugin on steroids: tags, links e edição numa só TUI</title><link>https://devops.sarmento.org/posts/hugin-on-steroids-unificando-tags-links-e-edicao-numa-so-tui/</link><pubDate>Sat, 18 Apr 2026 13:13:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/hugin-on-steroids-unificando-tags-links-e-edicao-numa-so-tui/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/post/hugin-tags-e-resumos-para-hugo-com-ia/"&gt;post sobre o Hugin&lt;/a&gt; apresentei a ferramenta que uso para gerar tags e resumos nos meus blogs Hugo. Duas semanas depois, no &lt;a href="https://devops.sarmento.org/post/munin-links-internos-para-hugo-com-ia/"&gt;post sobre o Munin&lt;/a&gt;, mostrei o irmão dele: um segundo programa que descobre e insere links internos entre posts usando embeddings e LLM.&lt;/p&gt;
&lt;p&gt;Os dois funcionavam bem. Separados, funcionavam bem.&lt;/p&gt;
&lt;h2 id="o-problema-de-ter-dois-programas"&gt;O problema de ter dois programas&lt;/h2&gt;
&lt;p&gt;Na teoria, dividir responsabilidades entre ferramentas é uma boa prática. Na prática, o fluxo para processar um post novo era assim: abrir o Hugin, navegar até o post, gerar tags, gerar resumo, fechar o Hugin. Abrir o Munin, esperar o modelo de embeddings carregar, navegar até o mesmo post, verificar links existentes, gerar sugestões de links, aplicar. Se precisasse corrigir um typo no título que só apareceu depois de olhar o post no Hugin, fechar tudo e abrir o Pages CMS ou o vim.&lt;/p&gt;</description></item><item><title>Munin: links internos para Hugo com IA</title><link>https://devops.sarmento.org/posts/munin-links-internos-para-hugo-com-ia/</link><pubDate>Fri, 17 Apr 2026 10:49:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/munin-links-internos-para-hugo-com-ia/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/post/hugin-tags-e-resumos-para-hugo-com-ia/"&gt;post sobre o Hugin&lt;/a&gt; contei como resolvi o problema de tags e resumos no meu blog Hugo. Mas tinha outro problema, menos óbvio e mais chato: links internos. Aqueles links que conectam um post a outro, que ajudam o leitor a navegar pelo conteúdo relacionado, e que o Google adora ver num site bem estruturado.&lt;/p&gt;
&lt;p&gt;O problema é que ninguém linka nada. Você escreve um post sobre systemd timers, outro sobre cron, outro sobre launchd — e nenhum dos três menciona os outros. São ilhas de conteúdo que poderiam estar conectadas. A solução óbvia é reler cada post, lembrar quais outros existem, e ir inserindo links manualmente. Com 30 posts, é viável. Com 400, é insano.&lt;/p&gt;</description></item><item><title>Hugin: tags e resumos para Hugo com IA</title><link>https://devops.sarmento.org/posts/hugin-tags-e-resumos-para-hugo-com-ia/</link><pubDate>Sat, 11 Apr 2026 15:33:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/hugin-tags-e-resumos-para-hugo-com-ia/</guid><description>&lt;p&gt;Quem mantém um &lt;a href="https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/"&gt;blog estático com Hugo&lt;/a&gt; sabe que existem duas tarefas que ninguém gosta de fazer: classificar posts com tags e escrever meta descriptions. São aquelas coisas que você pula na hora de publicar porque o post já está pronto, o deploy já está configurado, e ficar escolhendo entre &amp;ldquo;selfhosted&amp;rdquo; e &amp;ldquo;self-hosted&amp;rdquo; não é exatamente o uso mais nobre do seu tempo. O resultado é previsível: posts sem tags, descriptions vazias ou copiadas do primeiro parágrafo, e uma taxonomia que mais atrapalha do que ajuda.&lt;/p&gt;</description></item><item><title>De WordPress a Hugo: Temas Não São o Que Você Pensa</title><link>https://devops.sarmento.org/posts/de-wordpress-a-hugo-temas-nao-sao-o-que-voce-pensa/</link><pubDate>Sat, 04 Apr 2026 14:59:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/de-wordpress-a-hugo-temas-nao-sao-o-que-voce-pensa/</guid><description>&lt;p&gt;Quem trabalha com WordPress por tempo suficiente desenvolve uma intuição sobre o que um tema é e o que ele faz. Essa intuição funciona bem dentro do ecossistema — ela guia decisões sobre estrutura de arquivos, sobre onde colocar lógica e sobre como estender funcionalidades. O problema aparece quando você migra para o Hugo e tenta aplicar esse mesmo modelo mental.&lt;/p&gt;
&lt;p&gt;As palavras são parecidas — templates, layouts, partials — mas o que elas significam na prática é radicalmente diferente. Um tema no WordPress é, em essência, uma aplicação PHP completa que consulta banco de dados, toma decisões de lógica e renderiza HTML, tudo no mesmo lugar. Um tema no Hugo é uma coleção de templates que recebe dados já processados e se limita a apresentá-los. Parece uma diferença sutil até você sentar para construir o seu primeiro layout e perceber que quase tudo que você sabia precisa ser reaprendido.&lt;/p&gt;</description></item><item><title>Apagando e-mails automaticamente no Apple Mail com AppleScript + launchd</title><link>https://devops.sarmento.org/posts/apagando-e-mails-automaticamente-no-apple-mail-com-applescript-launchd/</link><pubDate>Mon, 30 Mar 2026 20:24:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/apagando-e-mails-automaticamente-no-apple-mail-com-applescript-launchd/</guid><description>&lt;p&gt;Minha caixa de entrada vive cheia de notificações com assunto no formato &lt;code&gt;[Ticket ID: 12345] Atualização do chamado&lt;/code&gt;. Elas são úteis por algumas horas e depois viram ruído. Não são e-mails que precisam ser arquivados, respondidos ou revisitados, então acabam só ocupando espaço mental.&lt;/p&gt;
&lt;p&gt;Apagar manualmente é aquele tipo de tarefa pequena que nunca vira prioridade, mas que cobra juros em distração. Então resolvi tratar como qualquer outro problema recorrente: automatizar localmente, sem depender de serviço externo, sem &lt;em&gt;webhook&lt;/em&gt; e sem integrações. A ideia é rodar periodicamente um script que mova para o lixo as &lt;a href="https://devops.sarmento.org/experiencias-com-mensagens-subliminares/"&gt;mensagens&lt;/a&gt; cujo assunto contenha um padrão específico e que tenham mais de 48 horas.&lt;/p&gt;</description></item><item><title>Tailscale no Homelab — Acesso Remoto sem Abrir Portas</title><link>https://devops.sarmento.org/posts/tailscale-no-homelab-acesso-remoto-sem-abrir-portas/</link><pubDate>Sun, 29 Mar 2026 21:58:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/tailscale-no-homelab-acesso-remoto-sem-abrir-portas/</guid><description>&lt;p&gt;Quem mantém um homelab — ou mesmo um único Raspberry Pi rodando serviços — eventualmente esbarra no mesmo obstáculo: como acessar esses dispositivos de fora da rede local? A resposta clássica envolve abrir portas no roteador, configurar port forwarding, lidar com IP dinâmico via DDNS e torcer para que nenhum bot descubra aquela porta SSH exposta na internet. Funciona, mas a superfície de ataque cresce a cada porta aberta, e a manutenção vira uma dor de cabeça silenciosa que só aparece quando algo quebra.&lt;/p&gt;</description></item><item><title>Comentários em sites estáticos com Isso — leve, self-hosted e sem rastreamento</title><link>https://devops.sarmento.org/posts/comentarios-em-sites-estaticos-com-isso-leve-self-hosted-e-sem-rastreamento/</link><pubDate>Sat, 28 Mar 2026 13:34:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/comentarios-em-sites-estaticos-com-isso-leve-self-hosted-e-sem-rastreamento/</guid><description>&lt;p&gt;Um &lt;a href="https://devops.sarmento.org/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/"&gt;site estático&lt;/a&gt; não tem backend. Não tem banco de dados, não tem servidor de aplicação processando requisições — e é exatamente isso que o torna rápido, barato e resiliente. Mas essa simplicidade cobra um preço quando você quer algo que dependa de estado persistente, e comentários são o caso mais óbvio. No WordPress ou Ghost, o sistema de comentários faz parte da aplicação. Num site gerado por Hugo, Jekyll ou Eleventy, essa camada simplesmente não existe.&lt;/p&gt;</description></item><item><title>Expondo serviços do homelab na internet com Cloudflare Tunnel</title><link>https://devops.sarmento.org/posts/expondo-servicos-do-homelab-na-internet-com-cloudflare-tunnel/</link><pubDate>Fri, 27 Mar 2026 18:24:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/expondo-servicos-do-homelab-na-internet-com-cloudflare-tunnel/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/ssh-atras-de-nat-ssh-jcom-resolve/"&gt;post anterior&lt;/a&gt;, mostrei como o SSH-J.com resolve um problema específico: acessar via SSH uma máquina que está atrás de NAT, sem abrir portas no roteador e sem depender de IP público. O túnel reverso funciona bem para sessões interativas e transferência de arquivos, e o SSH-J.com como jump host torna tudo trivial de configurar. Para SSH, continua sendo a solução mais simples que conheço.&lt;/p&gt;
&lt;p&gt;Mas SSH é só uma peça do quebra-cabeça. Quem mantém um homelab — mesmo que seja só um mini PC embaixo da mesa ou um Raspberry Pi no canto da sala — inevitavelmente acaba rodando serviços web: um leitor de RSS, um dashboard de monitoramento, um Gitea, um Jellyfin, um &lt;a href="https://devops.sarmento.org/posts/immich-suas-fotos-seu-servidor-suas-regras/"&gt;Immich&lt;/a&gt;. Esses serviços escutam em portas HTTP locais e funcionam perfeitamente enquanto você está na mesma rede. O problema aparece quando você quer acessá-los de fora — do escritório, do celular no ônibus, de qualquer lugar que não seja a sua rede local.&lt;/p&gt;</description></item><item><title>Convertendo imagens automaticamente para WEBP e AVIF</title><link>https://devops.sarmento.org/posts/convertendo-imagens-automaticamente-para-webp-e-avif/</link><pubDate>Thu, 26 Mar 2026 22:19:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/convertendo-imagens-automaticamente-para-webp-e-avif/</guid><description>&lt;p&gt;Os dois posts anteriores montaram a infraestrutura de monitoramento — &lt;a href="https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/"&gt;&lt;code&gt;WatchPaths&lt;/code&gt; no macOS&lt;/a&gt;, &lt;a href="https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-no-linux-com-systemd-path-units-e-inotifywait-para-quem-nao-tem-root/"&gt;systemd path units e &lt;code&gt;inotifywait&lt;/code&gt; no Linux&lt;/a&gt; — e prometeram que os scripts viriam depois. O gatilho está pronto: o launchd ou o systemd detecta quando algo muda num diretório e dispara um comando. Falta o comando.&lt;/p&gt;
&lt;p&gt;Este post entrega o script de conversão de imagens que aqueles gatilhos vão disparar. O objetivo é simples: PNGs e JPGs entram numa pasta, WEBP ou AVIF saem. Os originais são apagados ou movidos, dependendo da configuração. O script detecta quais encoders estão disponíveis na máquina e escolhe o melhor entre os instalados, com uma cadeia de fallback que garante funcionamento mesmo quando a ferramenta ideal não está presente. Se nenhum encoder compatível for encontrado, o script avisa o que instalar e em qual gerenciador de pacotes.&lt;/p&gt;</description></item><item><title>Monitorando arquivos e pastas no Linux com systemd path units (e inotifywait para quem não tem root)</title><link>https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-no-linux-com-systemd-path-units-e-inotifywait-para-quem-nao-tem-root/</link><pubDate>Thu, 26 Mar 2026 19:27:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-no-linux-com-systemd-path-units-e-inotifywait-para-quem-nao-tem-root/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/"&gt;post anterior&lt;/a&gt;, o launchd do macOS monitorava arquivos e diretórios com &lt;code&gt;WatchPaths&lt;/code&gt; para disparar scripts automaticamente quando algo mudava. O modelo é reativo — em vez de rodar um backup a cada hora ou uma conversão a cada cinco minutos, o sistema observa o caminho no disco e só executa o job quando detecta uma modificação real. Sem polling, sem desperdício, sem janela de vulnerabilidade entre a mudança e a ação.&lt;/p&gt;</description></item><item><title>Monitorando arquivos e pastas com launchd: WatchPaths na prática</title><link>https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/</link><pubDate>Thu, 26 Mar 2026 18:56:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/monitorando-arquivos-e-pastas-com-launchd-watchpaths-na-pratica/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/agendando-tarefas-no-macos-com-launchd-sem-cron-sem-gambiarra/"&gt;post anterior sobre launchd&lt;/a&gt;, o agendamento funcionava por horário: o &lt;code&gt;StartCalendarInterval&lt;/code&gt; definia &amp;ldquo;todo dia às 7h&amp;rdquo; e o sistema cuidava do resto, incluindo recuperar execuções perdidas quando o Mac estava dormindo. Para tarefas periódicas como enviar um briefing diário ou rodar um script de manutenção, esse modelo resolve perfeitamente — é o equivalente funcional do cron, mas integrado ao ciclo de vida do macOS.&lt;/p&gt;
&lt;p&gt;Só que nem toda automação faz sentido atrelada a um relógio. Tem tarefas que só precisam acontecer quando alguma coisa muda. Um backup que roda de hora em hora está desperdiçando 23 execuções por dia se o banco de dados só foi alterado uma vez. Uma conversão de imagens que roda a cada 5 minutos não tem o que converter na grande maioria das vezes, e quando finalmente tem, já se passaram até 5 minutos desde que o arquivo apareceu. O modelo baseado em tempo funciona, mas é um polling disfarçado de agendamento — e polling é quase sempre a solução menos elegante para qualquer problema de sincronização.&lt;/p&gt;</description></item><item><title>SSH atrás de NAT? SSH-J.com resolve.</title><link>https://devops.sarmento.org/posts/ssh-atras-de-nat-ssh-jcom-resolve/</link><pubDate>Wed, 25 Mar 2026 22:26:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/ssh-atras-de-nat-ssh-jcom-resolve/</guid><description>&lt;p&gt;Você trabalha remoto, tem um servidor em casa, um Raspberry Pi rodando serviços, ou uma máquina no escritório que precisa acessar de vez em quando. O cenário é comum e a solução óbvia é o SSH — que já está instalado, é seguro e funciona há décadas. O problema é que entre a sua máquina e o resto da internet existe um roteador, um NAT, e possivelmente um provedor que não te dá IP público fixo ou que bloqueia portas de entrada. De repente, o protocolo mais confiável da administração de sistemas se torna inacessível de fora da sua rede local.&lt;/p&gt;</description></item><item><title>Immich: suas fotos, seu servidor, suas regras</title><link>https://devops.sarmento.org/posts/immich-suas-fotos-seu-servidor-suas-regras/</link><pubDate>Wed, 25 Mar 2026 07:18:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/immich-suas-fotos-seu-servidor-suas-regras/</guid><description>&lt;p&gt;Existe um momento em que todo mundo para e pensa sobre onde estão as suas fotos. Geralmente acontece quando o Google manda aquele email simpático avisando que o armazenamento gratuito acabou — e que por apenas alguns reais por mês você pode continuar guardando suas memórias no servidor deles. É um empurrãozinho gentil na direção de uma assinatura mensal que, somada ao longo de anos, custa mais do que um HD externo de vários terabytes. Mas o preço em dinheiro é só a parte mais óbvia da equação. Existe um custo mais sutil em deixar todas as suas fotos, vídeos e memórias pessoais nas mãos de uma empresa que lucra com dados — e é sobre esse custo que vale a pena conversar antes de falar de qualquer ferramenta.&lt;/p&gt;</description></item><item><title>O Lado B do Site Grátis: Limites e Alternativas para Hugo + GitHub + Cloudflare Pages + Pages CMS</title><link>https://devops.sarmento.org/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/</link><pubDate>Tue, 24 Mar 2026 10:45:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/o-lado-b-do-site-gratis-limites-e-alternativas-para-hugo-github-cloudflare-pages-pages-cms/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/"&gt;post anterior&lt;/a&gt;, montamos um blog completo com Hugo, GitHub, Cloudflare Pages e Pages CMS sem gastar um centavo. A stack funciona, é rápida, e para a maioria dos blogs pessoais vai continuar funcionando por muito tempo sem pedir nada em troca. Mas &amp;ldquo;grátis&amp;rdquo; não significa &amp;ldquo;sem limites&amp;rdquo;, e entender onde estão as paredes antes de bater nelas é o tipo de coisa que poupa dor de cabeça lá na frente.&lt;/p&gt;</description></item><item><title>Agendando tarefas no macOS com launchd (sem cron, sem gambiarra)</title><link>https://devops.sarmento.org/posts/agendando-tarefas-no-macos-com-launchd-sem-cron-sem-gambiarra/</link><pubDate>Mon, 23 Mar 2026 21:29:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/agendando-tarefas-no-macos-com-launchd-sem-cron-sem-gambiarra/</guid><description>&lt;p&gt;No &lt;a href="https://devops.sarmento.org/posts/systemd-timers-hora-de-aposentar-o-cron/"&gt;post anterior&lt;/a&gt; eu mostrei como os systemd timers substituem o cron em servidores Debian e Ubuntu com vantagens concretas: logging integrado, recuperação de execuções perdidas, dependências declarativas e controle de recursos. A lógica é convincente e a migração é direta — desde que você esteja num sistema que roda systemd. Mas se o seu dia a dia inclui um Mac, a história é outra.&lt;/p&gt;
&lt;p&gt;O macOS tem seu próprio sistema de agendamento, anterior ao systemd e com uma filosofia diferente. Ele se chama launchd, existe desde o Mac OS X Tiger em 2005, e é responsável por praticamente tudo que roda em background no sistema — desde serviços internos da Apple até aquele updater do Spotify que você nunca pediu para instalar. Apesar de ser a forma oficial e recomendada de agendar tarefas no Mac, o launchd vive numa espécie de ponto cego: quem vem do Linux tende a procurar o cron por reflexo, e quem usa o Mac sem background em administração de sistemas nem sabe que a possibilidade existe.&lt;/p&gt;</description></item><item><title>Systemd Timers: hora de aposentar o cron</title><link>https://devops.sarmento.org/posts/systemd-timers-hora-de-aposentar-o-cron/</link><pubDate>Mon, 23 Mar 2026 06:21:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/systemd-timers-hora-de-aposentar-o-cron/</guid><description>&lt;p&gt;Se você administra servidores Debian ou Ubuntu há algum tempo, provavelmente tem uma relação de conforto com o cron. Uma linha no crontab, cinco campos de agendamento e o caminho do script — pronto, resolvido. O cron funciona assim desde os anos 1970, e essa simplicidade é justamente o que o manteve relevante por tanto tempo.&lt;/p&gt;
&lt;p&gt;O problema é que &amp;ldquo;funciona&amp;rdquo; e &amp;ldquo;funciona bem em 2026&amp;rdquo; são coisas diferentes. Quando um job falha silenciosamente às três da manhã, quando você precisa descobrir qual dos vinte crontabs espalhados pelo sistema contém aquela tarefa específica, ou quando o servidor reinicia e simplesmente perde a execução que deveria ter acontecido durante o downtime — nesses momentos o cron mostra que foi projetado para uma época em que as expectativas sobre observabilidade e resiliência eram outras.&lt;/p&gt;</description></item><item><title>Limpando revisões antigas do Snap para liberar espaço no Ubuntu</title><link>https://devops.sarmento.org/posts/limpando-revisoes-antigas-do-snap-para-liberar-espaco-no-ubuntu/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/limpando-revisoes-antigas-do-snap-para-liberar-espaco-no-ubuntu/</guid><description>&lt;p&gt;Se você usa Ubuntu há algum tempo, provavelmente já notou que o diretório &lt;code&gt;/var/lib/snapd&lt;/code&gt; cresce de forma silenciosa e constante. O motivo não são os pacotes Snap que você instalou — são as cópias antigas que o sistema guarda automaticamente toda vez que um desses pacotes recebe atualização. Em uma instalação com dezenas de snaps, é comum encontrar 5, 8 ou até mais gigabytes ocupados por revisões que você nunca vai usar. O problema é especialmente incômodo em partições menores, SSDs com espaço limitado ou VMs com disco enxuto. A boa notícia é que identificar e remover esse excesso leva poucos minutos, desde que você saiba onde olhar e o que não apagar.&lt;/p&gt;</description></item><item><title>Como criei este blog sem gastar um centavo (e sem tocar em WordPress)</title><link>https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/</link><pubDate>Fri, 20 Mar 2026 00:10:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/como-criei-este-blog-sem-gastar-um-centavo-e-sem-tocar-em-wordpress/</guid><description>&lt;h2 id="por-que-abandonar-o-wordpress"&gt;Por que abandonar o WordPress&lt;/h2&gt;
&lt;h3 id="o-peso-de-manter-um-cms-dinâmico"&gt;O peso de manter um CMS dinâmico&lt;/h3&gt;
&lt;p&gt;O WordPress é um software extraordinário que alimenta quase metade da internet. Dito isso, manter uma instalação WordPress saudável é um trabalho que nunca termina. Cada visita ao seu site dispara uma cadeia de eventos: o servidor recebe a requisição, o PHP acorda, consulta o MySQL, monta a página na hora, e devolve o HTML para o navegador. Multiplica isso por cem visitantes simultâneos e você tem um servidor suando para entregar páginas que, na maioria dos blogs, são exatamente iguais para todo mundo.&lt;/p&gt;</description></item><item><title>Por que mais um blog</title><link>https://devops.sarmento.org/posts/por-que-mais-um-blog/</link><pubDate>Wed, 18 Mar 2026 13:36:00 +0000</pubDate><guid>https://devops.sarmento.org/posts/por-que-mais-um-blog/</guid><description>&lt;p&gt;Resolvi fazer mais um blog, depois de tantos que sobreviveram e tantos que pereceram, sem contar as contas no Substack, no Medium, as &amp;ldquo;segundos cérebros&amp;rdquo; locais, cadernos de anotação, etc.&lt;/p&gt;
&lt;p&gt;Dessa vez o objetivo é centralizar aqui o conhecimento de DevOps que já tenho e que continuo adquirindo diariamente. Além de usar esse espaço como laboratório para uma nova abordagem: um site “à prova de falhas” utilizando apenas recursos gratuitos como o Github, para armazenamento do conteúdo, e as Cloudflare Pages para publicação.&lt;/p&gt;</description></item><item><title>Sobre</title><link>https://devops.sarmento.org/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://devops.sarmento.org/about/</guid><description>&lt;p&gt;Janio Sarmento — sysadmin, 53 anos, brasileiro trabalhando de casa para o mundo. Cuido de servidores Linux, containers LXC, e-mail que não cai em spam, e gatos que não saem de cima do teclado.&lt;/p&gt;
&lt;p&gt;Este blog documenta o dia a dia de quem mantém infraestrutura de pé, incluindo as coisas que quebram (e como consertar).&lt;/p&gt;</description></item></channel></rss>