<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog do Aquasp</title><link>https://aquasp.blog/pt/</link><description>Recent content on Blog do Aquasp</description><generator>Hugo -- gohugo.io</generator><language>pt-br</language><lastBuildDate>Fri, 15 May 2026 15:53:11 +0000</lastBuildDate><atom:link href="https://aquasp.blog/pt/index.xml" rel="self" type="application/rss+xml"/><item><title>Como configurar o Flutter para desenvolvimento no Ubuntu 24.04</title><link>https://aquasp.blog/pt/how-to-setup-flutter-for-development-in-ubuntu-24-04/</link><pubDate>Tue, 14 Apr 2026 01:15:39 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-setup-flutter-for-development-in-ubuntu-24-04/</guid><description>&lt;p&gt;O jeito mais rápido e fácil, com a versão mais recente do Flutter.&lt;/p&gt;&#10;&lt;h2 id="passo-1-instale-o-flutter-usando-snap"&gt;Passo 1: Instale o Flutter usando Snap&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo snap install flutter --classic&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-2-instale-o-openjdk"&gt;Passo 2: Instale o OpenJDK&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install openjdk-17-jdk -y&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-3-baixe-as-android-cli-tools"&gt;Passo 3: Baixe as Android CLI Tools&#10;&lt;/h2&gt;&lt;p&gt;Acesse &lt;a class="link" href="https://developer.android.com/studio?ref=aquasp.blog#command-line-tools-only" target="_blank" rel="noopener"&#10; &gt;este link&lt;/a&gt; e baixe a versão mais recente para Linux.&lt;/p&gt;&#10;&lt;p&gt;Crie a pasta:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir ~/Android/Sdk&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Garanta que você está usando exatamente esta estrutura:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;~/Android/Sdk/cmdline-tools/latest/bin/ ← sdkmanager&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-4-adicione-ao-bashrc"&gt;Passo 4: Adicione ao ~/.bashrc&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;export ANDROID_SDK_ROOT=$HOME/Android/Sdkexport ANDROID_HOME=$ANDROID_SDK_ROOTexport&#10;PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/binexport PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools # Nextexport JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64export PATH=$PATH:$JAVA_HOME/binexport CHROME_EXECUTABLE=/usr/bin/brave-browser&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-5-instale-o-sdkmanager"&gt;Passo 5: Instale o sdkmanager&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sdkmanager &amp;#34;platform-tools&amp;#34; &amp;#34;platforms;android-36&amp;#34; &amp;#34;build-tools;36.0.0&amp;#34;&#10;sdkmanager --update&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-6-configuração-do-flutter"&gt;Passo 6: Configuração do Flutter&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;flutter config --android-sdk ~/Android/Sdkflutter doctor --android-licenses # Accept all&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-7-verifique"&gt;Passo 7: Verifique&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;flutter doctor -v&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora você tem uma instalação limpa do Flutter sem Android Studio.&lt;/p&gt;&#10;&lt;p&gt;Obrigado — e bora programar! 🚀&lt;/p&gt;&#10;</description></item><item><title>Largue o app oficial: use sua Mi Band com privacidade usando alternativas de código aberto</title><link>https://aquasp.blog/pt/ditch-the-official-app-use-your-mi-band-privately-with-open-source-alternatives/</link><pubDate>Tue, 23 Dec 2025 20:23:05 +0000</pubDate><guid>https://aquasp.blog/pt/ditch-the-official-app-use-your-mi-band-privately-with-open-source-alternatives/</guid><description>&lt;p&gt;Se você adora usar um vestível como a Mi Band, mas quer proteger sua privacidade (como eu), existe um ótimo jeito de fazer isso!&lt;/p&gt;&#10;&lt;h2 id="primeiro-confira-a-compatibilidade-do-dispositivo"&gt;Primeiro, confira a compatibilidade do dispositivo&#10;&lt;/h2&gt;&lt;p&gt;O primeiro passo é verificar se o seu dispositivo é suportado. Dispositivos da Xiaomi e da Huawei geralmente têm a melhor compatibilidade. Recomendo conferir duas alternativas populares:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;GadgetBridge&lt;/strong&gt;: totalmente de código aberto e muito focado em privacidade. Funciona de forma confiável, embora a interface não seja a mais moderna nem a mais bonita.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Notify for Mi Band&lt;/strong&gt;: tem uma interface bem mais bonita e caprichada (na minha opinião), mas não é de código aberto, e a versão Pro (sem anúncios) custa cerca de US$ 3.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Em termos de privacidade, as duas opções são muito superiores ao app oficial da Xiaomi — sem compartilhamento constante de dados com servidores.&lt;/p&gt;&#10;&lt;p&gt;É quase irônico que dispositivos de marcas chinesas acabem oferecendo opções de privacidade melhores do que muitas marcas ocidentais quando usados com essas alternativas. Provavelmente é só um efeito colateral da popularidade e dos preços competitivos delas.&lt;/p&gt;&#10;&lt;h2 id="extraia-o-token-de-autenticação"&gt;Extraia o token de autenticação&#10;&lt;/h2&gt;&lt;p&gt;Infelizmente, você vai precisar do app oficial por um tempo. Baixe o app &lt;strong&gt;Xiaomi Mi Fitness&lt;/strong&gt;, pareie sua pulseira, crie uma conta Xiaomi e atualize o firmware para a versão mais recente*.&lt;/p&gt;&#10;&lt;p&gt;Feito isso, você precisa extrair o token de autenticação (auth) da Xiaomi. O método mais fácil hoje é usar o app &lt;strong&gt;Notify for Mi Band&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Baixe o Notify for Mi Band na Google Play Store (existem duas versões; garanta que você está baixando a correta para o seu dispositivo)&lt;/li&gt;&#10;&lt;li&gt;Comece o processo de configuração no app.&lt;/li&gt;&#10;&lt;li&gt;Você verá duas opções para obter o token: &lt;strong&gt;Offline&lt;/strong&gt; e &lt;strong&gt;Online&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;O método offline exige exportar os logs do app oficial Mi Fitness e extrair o token deles. Tentei várias vezes, mas nunca funcionou para mim — não consegui nem encontrar os logs certos manualmente.&lt;/p&gt;&#10;&lt;p&gt;Por isso, recomendo fortemente o &lt;strong&gt;método online&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Entre com o e-mail e a senha da sua conta Xiaomi.&lt;/li&gt;&#10;&lt;li&gt;A Xiaomi vai mandar um código de verificação para o seu e-mail.&lt;/li&gt;&#10;&lt;li&gt;Digite o código, e o app vai buscar o token automaticamente para você.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="últimos-passos-faça-a-troca-e-desinstale-o-app-oficial"&gt;Últimos passos: faça a troca e desinstale o app oficial&#10;&lt;/h2&gt;&lt;p&gt;Depois de obter o token:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Digite-o no Notify for Mi Band (ou no GadgetBridge, se for o que você usa).&lt;/li&gt;&#10;&lt;li&gt;Conceda todas as permissões necessárias.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Desinstale o app oficial Mi Fitness imediatamente&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;A pulseira só consegue se conectar e sincronizar com um app por vez. Manter o app oficial instalado vai causar problemas de conexão ou impedir a sincronização correta com a alternativa que você escolheu.&lt;/p&gt;&#10;&lt;p&gt;Pronto, está tudo configurado! Personalize as notificações, ative/desative recursos como quiser, encontre seu celular ou sua pulseira, instale mostradores gratuitos e acompanhe passos, calorias e frequência cardíaca — tudo em uma interface limpa e bonita, sem abrir mão da privacidade.&lt;/p&gt;&#10;&lt;p&gt;Um probleminha que notei: o monitoramento do sono não está sincronizando direito. Não sei se é algo específico da Mi Band 10, uma peculiaridade do firmware ou alguma configuração que eu mudei. Os dados continuam aparecendo corretamente na própria pulseira, então é só um problema de sincronização. Pessoalmente, não ligo — uso minha Mi Band principalmente como relógio prático, lanterna, para checar rapidamente a frequência cardíaca nos treinos e para trocar a música numa caixinha de som Bluetooth.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Pelo menos na Mi Band 10, o firmware mais recente (em dezembro de 2025) não quebrou a compatibilidade com o Notify for Mi Band.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item><item><title>Corrigindo a tela em branco/cinza nas páginas de álbum do Finamp (player de música do Jellyfin)</title><link>https://aquasp.blog/pt/fixing-blank-grey-screen-on-album-pages-in-finamp-jellyfin-music-player/</link><pubDate>Mon, 15 Dec 2025 15:02:30 +0000</pubDate><guid>https://aquasp.blog/pt/fixing-blank-grey-screen-on-album-pages-in-finamp-jellyfin-music-player/</guid><description>&lt;p&gt;Se você usa o &lt;strong&gt;Finamp&lt;/strong&gt; para ouvir ou baixar músicas do seu servidor &lt;strong&gt;Jellyfin&lt;/strong&gt; e está dando de cara com uma tela em branco (ou cinza) ao abrir a página de um álbum — em que nenhuma faixa carrega e às vezes é preciso forçar o fechamento do app —, esse é um problema comum, principalmente depois de atualizar o Jellyfin para a versão 10.11.x.&lt;/p&gt;&#10;&lt;p&gt;Esse problema costuma acontecer por causa de mudanças na forma como as versões mais novas do Jellyfin lidam com os metadados de música, o que faz o Finamp não conseguir carregar as faixas do álbum corretamente.&lt;/p&gt;&#10;&lt;h2 id="a-solução-atualizar-os-metadados-no-jellyfin-buscar-metadados-ausentes"&gt;A solução: atualizar os metadados no Jellyfin (buscar metadados ausentes)&#10;&lt;/h2&gt;&lt;p&gt;A alternativa mais confiável é forçar o Jellyfin a atualizar os metadados da sua biblioteca de música:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Entre no painel web do Jellyfin (de preferência com uma conta de administrador).&lt;/li&gt;&#10;&lt;li&gt;Vá em &lt;strong&gt;Painel&lt;/strong&gt; &amp;gt; &lt;strong&gt;Bibliotecas&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Selecione sua biblioteca de &lt;strong&gt;Música&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Clique no menu de três pontos (&amp;hellip;) ao lado do nome da biblioteca.&lt;/li&gt;&#10;&lt;li&gt;Escolha &lt;strong&gt;Atualizar metadados&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Nas opções de atualização:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Marque &lt;strong&gt;Buscar metadados ausentes&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Se precisar, ative também outras opções, como &amp;ldquo;Substituir imagens existentes&amp;rdquo; ou &amp;ldquo;Substituir todos os metadados&amp;rdquo;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="7"&gt;&#10;&lt;li&gt;Clique em &lt;strong&gt;Atualizar&lt;/strong&gt; (ou OK) para iniciar a varredura.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Observação:&lt;/strong&gt; esse processo pode levar vários minutos, dependendo do tamanho da sua biblioteca. Quando terminar, reinicie o Finamp e tente abrir os álbuns de novo — agora as faixas devem carregar normalmente.&lt;/p&gt;&#10;&lt;h2 id="observações-adicionais-sobre-o-jellyfin-1011x"&gt;Observações adicionais sobre o Jellyfin 10.11.x&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;A equipe do Finamp e alguns usuários relataram &lt;strong&gt;perdas de desempenho&lt;/strong&gt; no Jellyfin 10.11.x, principalmente em bibliotecas de música (carregamento mais lento, maior uso de recursos).&lt;/li&gt;&#10;&lt;li&gt;Se possível, considere continuar no Jellyfin 10.10.x (ou voltar para ele) para ter um desempenho melhor, até as correções chegarem por completo nos próximos patches da 10.11.&lt;/li&gt;&#10;&lt;li&gt;No meu caso, posso confirmar que, mesmo na 10.11.x mais recente, a atualização de metadados resolve o problema do álbum em branco, e depois disso tudo funciona bem.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="créditos"&gt;Créditos&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Issue no GitHub: &lt;a class="link" href="https://github.com/jmshrv/finamp/issues/1412?referrer=grok.com&amp;amp;ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://github.com/jmshrv/finamp/issues/1412&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Se o problema continuar depois da varredura, veja se há atualizações do Finamp ou relate o problema no repositório do Finamp no GitHub. Boa música! :)&lt;/p&gt;&#10;</description></item><item><title>Como ativar a decodificação de vídeo acelerada por hardware no Brave no Linux: reprodução mais fluida e mais bateria</title><link>https://aquasp.blog/pt/how-to-enable-hardware-accelerated-video-decoding-in-brave-on-linux-smoother-playback-and-better-battery/</link><pubDate>Sun, 14 Dec 2025 01:35:15 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-enable-hardware-accelerated-video-decoding-in-brave-on-linux-smoother-playback-and-better-battery/</guid><description>&lt;p&gt;A decodificação de vídeo acelerada por hardware tira a reprodução da CPU e passa para a GPU, o que melhora o desempenho, reduz o aquecimento e aumenta a duração da bateria — principalmente em vídeos de alta resolução. No Linux, isso funciona em navegadores baseados no Chromium, como o Brave, mas muitas vezes exige flags. &lt;strong&gt;Chega de depender de extensões como o h264ify ou de baixar vídeos para assistir no MPV!&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="benefícios"&gt;Benefícios&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Reprodução mais fluida em alta resolução (1080p ou mais)&lt;/li&gt;&#10;&lt;li&gt;Menor uso de CPU&lt;/li&gt;&#10;&lt;li&gt;Mais duração de bateria em notebooks&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="pré-requisitos-distros-baseadas-no-ubuntu-como-o-mint"&gt;Pré-requisitos (distros baseadas no Ubuntu, como o Mint)&#10;&lt;/h2&gt;&lt;p&gt;Para GPUs Intel (comuns em notebooks):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt update&#10;sudo apt install intel-media-va-driver-non-free vainfo&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Confira com o vainfo (ele deve listar perfis suportados, como VP9/H.264).&lt;/p&gt;&#10;&lt;p&gt;AMD/NVIDIA: garanta que os drivers Mesa/proprietários estejam instalados.&lt;/p&gt;&#10;&lt;h2 id="ativando-o-suporte-a-flags-em-distros-baseadas-no-ubuntu"&gt;Ativando o suporte a flags em distros baseadas no Ubuntu&#10;&lt;/h2&gt;&lt;p&gt;O pacote Debian do Brave não lê o brave-flags.conf por padrão (ao contrário do pacote do AUR no Arch). Crie um wrapper:&lt;/p&gt;&#10;&lt;p&gt;Corrija as permissões:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo chown --reference=/usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable&#10;sudo chmod --reference=/usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Crie o novo inicializador (Bash):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /usr/bin/brave-browser-stable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cole:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/sh&#10;: $$ {XDG_CONFIG_HOME=&amp;#34; $${HOME}/.config&amp;#34;}&#10;unset -v flags_conf&#10;flags_conf=&amp;#34;${XDG_CONFIG_HOME}/brave-flags.conf&amp;#34;&#10;if [ -f &amp;#34;${flags_conf}&amp;#34; ]&#10;then&#10; unset -v flags&#10; flags=&amp;#34;$$ (sed &amp;#39;s/#.*//&amp;#39; &amp;lt; &amp;#34; $${flags_conf}&amp;#34; | tr &amp;#39;\n&amp;#39; &amp;#39; &amp;#39;)&amp;#34;&#10; set -- $$ {flags} &amp;#34; $$@&amp;#34;&#10;fi&#10;exec /usr/bin/brave-browser-stable.original &amp;#34;$@&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Desvie o inicializador original:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo dpkg-divert --add --rename --divert /usr/bin/brave-browser-stable.original /usr/bin/brave-browser-stable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora crie/edite o ~/.config/brave-flags.conf para as flags.&lt;/p&gt;&#10;&lt;h2 id="flags-recomendadas"&gt;Flags recomendadas&#10;&lt;/h2&gt;&lt;p&gt;Adicione ao ~/.config/brave-flags.conf (em uma linha só e reinicie o Brave):&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Wayland (geralmente o padrão/a melhor opção):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Xorg/X11 (ou como alternativa):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;--enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="verificação"&gt;Verificação&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;Reproduza um vídeo (por exemplo, no YouTube em 1080p ou mais).&lt;/li&gt;&#10;&lt;li&gt;Ctrl + Shift + I → três pontos → More tools → Media.&lt;/li&gt;&#10;&lt;li&gt;Veja o nome do decodificador (Decoder name): VaapiVideoDecoder = acelerado pela GPU (evite o FFmpegVideoDecoder).&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h3 id="créditos"&gt;Créditos&#10;&lt;/h3&gt;&lt;p&gt;Este comentário incrível no GitHub: &lt;a class="link" href="https://github.com/brave/brave-browser/issues/2300?ref=aquasp.blog#issuecomment-2718755680" target="_blank" rel="noopener"&#10; &gt;https://github.com/brave/brave-browser/issues/2300#issuecomment-2718755680&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Como sempre, a Arch Wiki é um recurso valiosíssimo para tudo relacionado a Linux. Se a aceleração de vídeo por hardware ainda não funcionar, consulte a wiki diretamente para ver as flags mais recentes e dicas de solução de problemas. &lt;a class="link" href="https://wiki.archlinux.org/title/Chromium?ref=aquasp.blog#Hardware_video_acceleration" target="_blank" rel="noopener"&#10; &gt;https://wiki.archlinux.org/title/Chromium#Hardware_video_acceleration&lt;/a&gt;&lt;/p&gt;&#10;</description></item><item><title>Solução rápida: impeça o Ubuntu 24.04 de suspender/dormir automaticamente</title><link>https://aquasp.blog/pt/quick-fix-stop-ubuntu-24-04-from-automatically-suspending-sleeping/</link><pubDate>Fri, 12 Dec 2025 19:58:45 +0000</pubDate><guid>https://aquasp.blog/pt/quick-fix-stop-ubuntu-24-04-from-automatically-suspending-sleeping/</guid><description>&lt;p&gt;Se o seu Ubuntu 24.04 (principalmente um que começou como instalação de servidor) suspende ou entra em modo de espera do nada, mesmo devendo ser um servidor sem monitor, você não está sozinho.&lt;/p&gt;&#10;&lt;p&gt;Isso parece acontecer quando uma instalação de servidor acaba sendo convertida, parcial ou totalmente, em um ambiente &amp;ldquo;desktop&amp;rdquo; em algum momento — mesmo que você nunca tenha instalado um desktop de propósito. No meu caso, instalei o Ubuntu Server 24.04 direto com o balenaEtcher em um NVMe/SSD e tive esse comportamento estranho (meu servidor N100 suspendia depois de 15 minutos).&lt;/p&gt;&#10;&lt;h2 id="a-solução-simples-em-uma-linha"&gt;A solução simples em uma linha&#10;&lt;/h2&gt;&lt;p&gt;Rode este único comando e as suspensões aleatórias param na hora (e continuam desativadas depois de reiniciar):&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;É só isso!&lt;/p&gt;&#10;</description></item><item><title>Qual é a carteira Monero mais rápida no Android em 2025? Cronometrei as três com meu próprio nó</title><link>https://aquasp.blog/pt/fastest-monero-wallet-on-android-in-2025-i-timed-all-three-with-my-own-node/</link><pubDate>Wed, 10 Dec 2025 22:46:43 +0000</pubDate><guid>https://aquasp.blog/pt/fastest-monero-wallet-on-android-in-2025-i-timed-all-three-with-my-own-node/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Um dos maiores pontos fracos do Monero é restaurar uma carteira antiga. Hoje, vou comparar a velocidade de três carteiras Monero populares para ver qual delas é a mais rápida na restauração.&lt;/p&gt;&#10;&lt;h2 id="dados-do-teste"&gt;Dados do teste&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Data do teste:&lt;/strong&gt; 2025-12-10&#10;&lt;strong&gt;Aparelho:&lt;/strong&gt; Samsung Galaxy A56 (Exynos 1580, 8 GB de RAM, celular intermediário de 2025)&#10;&lt;strong&gt;Conexão:&lt;/strong&gt; nó completo local de Monero via Wi-Fi (mesma rede local, usando um Deco S7)&#10;&lt;strong&gt;Carteira:&lt;/strong&gt; seed legada de 25 palavras criada em dezembro de 2024 (~1 ano, histórico de transações moderado)&#10;&lt;strong&gt;Objetivo:&lt;/strong&gt; restauração completa + sincronização a partir da minha altura de restauração em cada carteira, para ver o desempenho real em uma configuração self-hosted típica em 2025.&lt;/p&gt;&#10;&lt;h3 id="as-concorrentes"&gt;As concorrentes&#10;&lt;/h3&gt;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Carteira&lt;/th&gt;&#10;&lt;th&gt;Versão&lt;/th&gt;&#10;&lt;th&gt;Método de altura de restauração&lt;/th&gt;&#10;&lt;th&gt;Observações&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;Cake Wallet&lt;/td&gt;&#10;&lt;td&gt;5.6.2&lt;/td&gt;&#10;&lt;td&gt;25 palavras (legado)&lt;/td&gt;&#10;&lt;td&gt;Carteira oficial multimoedas&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;Stack Wallet&lt;/td&gt;&#10;&lt;td&gt;2.4.2&lt;/td&gt;&#10;&lt;td&gt;25 palavras (legado)&lt;/td&gt;&#10;&lt;td&gt;Focada em privacidade, prioriza o Bitcoin, mas tem bom suporte a XMR&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;Monerujo&lt;/td&gt;&#10;&lt;td&gt;4.1.7 (build da Exolix)&lt;/td&gt;&#10;&lt;td&gt;25 palavras (legado)&lt;/td&gt;&#10;&lt;td&gt;Favorita de longa data para Monero, só para Android&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="resultados"&gt;Resultados&#10;&lt;/h3&gt;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Carteira&lt;/th&gt;&#10;&lt;th&gt;Tempo total até sincronizar&lt;/th&gt;&#10;&lt;th&gt;Comportamento entre 90–100%&lt;/th&gt;&#10;&lt;th&gt;Mantém a tela ligada?&lt;/th&gt;&#10;&lt;th&gt;Terminou?&lt;/th&gt;&#10;&lt;th&gt;Observações&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Monerujo&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;strong&gt;21 minutos e 45 segundos&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Velocidade constante, sem desacelerar&lt;/td&gt;&#10;&lt;td&gt;Não&lt;/td&gt;&#10;&lt;td&gt;Sim&lt;/td&gt;&#10;&lt;td&gt;Arrasou completamente&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;Cake Wallet&lt;/td&gt;&#10;&lt;td&gt;40 minutos e 13 segundos&lt;/td&gt;&#10;&lt;td&gt;Muito lenta depois de ~90%, estimativa de tempo quebrada&lt;/td&gt;&#10;&lt;td&gt;Sim (ponto enorme a favor)&lt;/td&gt;&#10;&lt;td&gt;Sim&lt;/td&gt;&#10;&lt;td&gt;Chegou lá, mas foi meio lenta&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;Stack Wallet&lt;/td&gt;&#10;&lt;td&gt;Desisti depois de ~1 hora e 16 minutos&lt;/td&gt;&#10;&lt;td&gt;Se arrastou depois de 98%, ressincronizar não ajudou&lt;/td&gt;&#10;&lt;td&gt;Não&lt;/td&gt;&#10;&lt;td&gt;Não&lt;/td&gt;&#10;&lt;td&gt;Travada para sempre por volta de 98–99%&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="observações-detalhadas"&gt;Observações detalhadas&#10;&lt;/h3&gt;&lt;h4 id="monerujo-417--a-vencedora-clara"&gt;Monerujo 4.1.7 – A vencedora clara&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;Começou a escanear na hora&lt;/li&gt;&#10;&lt;li&gt;O progresso foi suave e previsível o tempo todo&lt;/li&gt;&#10;&lt;li&gt;Nunca desacelerou, nem nos 10% finais&lt;/li&gt;&#10;&lt;li&gt;Simplesmente funcionou. 21min45s desde digitar a 25ª palavra até “sincronizada”.&lt;/li&gt;&#10;&lt;li&gt;NÃO impede que a tela apague → o Android ficava suspendendo o processo&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="cake-wallet-562--chega-lá-uma-hora"&gt;Cake Wallet 5.6.2 – Chega lá… uma hora&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;A restauração começou bem&lt;/li&gt;&#10;&lt;li&gt;O contador de tempo estimado não era preciso (mostrou 2 minutos durante 30 minutos)&lt;/li&gt;&#10;&lt;li&gt;Desacelerou muito depois de ~90%&lt;/li&gt;&#10;&lt;li&gt;Manteve a tela ligada o tempo todo ← só isso provavelmente impediu que a sincronização morresse&lt;/li&gt;&#10;&lt;li&gt;Terminou, no fim das contas&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="stack-wallet-242--decepcionante"&gt;Stack Wallet 2.4.2 – Decepcionante&#10;&lt;/h4&gt;&lt;ul&gt;&#10;&lt;li&gt;Na verdade, foi a que começou mais rápido das três&lt;/li&gt;&#10;&lt;li&gt;Voou até 98% em ~25 minutos… e aí morreu&lt;/li&gt;&#10;&lt;li&gt;A velocidade despencou&lt;/li&gt;&#10;&lt;li&gt;Reiniciar o app retomou em 98,49%, mas não resolveu a lentidão&lt;/li&gt;&#10;&lt;li&gt;Tentei usar o botão &amp;ldquo;Resync&amp;rdquo; – nenhuma melhora&lt;/li&gt;&#10;&lt;li&gt;NÃO impede que a tela apague → o Android ficava suspendendo o processo&lt;/li&gt;&#10;&lt;li&gt;Abandonei depois de mais de 1 hora sem nenhum progresso significativo&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="conclusão-a-monerujo-é-a-mais-rápida-em-2025"&gt;Conclusão: a Monerujo é a mais rápida em 2025&#10;&lt;/h3&gt;&lt;p&gt;Se você quer restaurar uma carteira Monero antiga no celular usando seu próprio nó em 2025, a resposta é cristalina:&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;A Monerujo joga em outra liga.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;A Cake Wallet ainda é bem usável e tem uma interface/acabamento incríveis, mas a lentidão na sincronização é real. Infelizmente, a Stack Wallet parece quebrada/superlenta para restaurações grandes no momento&lt;/p&gt;&#10;&lt;p&gt;Um salve para o(s) dev(s) da Monerujo — seja lá qual feitiçaria vocês fizeram no motor de escaneamento, obrigado. A privacidade no celular acabou de ficar mais rápida.&lt;/p&gt;&#10;&lt;p&gt;Testado em 2025-12-10 com um nó local. Seus resultados podem variar conforme a quantidade de transações, mas a ordem relativa deve se manter.&lt;/p&gt;&#10;</description></item><item><title>7 coisas que você deve fazer depois de instalar o WordPress</title><link>https://aquasp.blog/pt/7-things-that-you-should-do-after-installing-wordpress/</link><pubDate>Tue, 09 Dec 2025 01:45:24 +0000</pubDate><guid>https://aquasp.blog/pt/7-things-that-you-should-do-after-installing-wordpress/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Vai começar um site WordPress do zero em 2026? Seja um blog, uma loja virtual ou um portfólio, estes ajustes vão turbinar a velocidade, reforçar a segurança e garantir um desempenho lisinho desde o primeiro dia.&lt;/p&gt;&#10;&lt;p&gt;Sem ferramentas pagas — só plugins gratuitos e configurações rápidas. Vamos lá!&lt;/p&gt;&#10;&lt;h2 id="1-redimensione-e-comprima-imagens-automaticamente-no-upload"&gt;1. Redimensione e comprima imagens automaticamente no upload&#10;&lt;/h2&gt;&lt;p&gt;Imagens são a principal assassina de banda. Não suba uma foto de 10 MB torcendo para dar certo — automatize a compressão para manter seu site enxuto.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Plugin recomendado:&lt;/strong&gt; &lt;a class="link" href="https://wordpress.org/plugins/resize-image-after-upload/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Resize Image After Upload&lt;/a&gt; (gratuito, mais de 90 mil instalações ativas, nota 4,8/5)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Instale e ative logo de cara.&lt;/li&gt;&#10;&lt;li&gt;Defina a largura/altura máxima (por exemplo, 1920px de largura) e o nível de compressão (a qualidade JPEG padrão de 82% é boa).&lt;/li&gt;&#10;&lt;li&gt;Ele redimensiona JPEG/PNG/GIF automaticamente no upload, corta o tamanho dos arquivos em 50–80% e melhora o SEO com carregamentos mais rápidos.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Dica de mestre: para otimizar em massa as imagens que já existem, use junto com o Smush (o plano gratuito processa 50 imagens/mês).&lt;/p&gt;&#10;&lt;p&gt;Resultado: páginas carregam 2–3x mais rápido, menos carga no servidor e o Google mais feliz com o seu site.&lt;/p&gt;&#10;&lt;h2 id="2-corte-o-excesso-desnecessário"&gt;2. Corte o excesso desnecessário&#10;&lt;/h2&gt;&lt;p&gt;O WordPress vem com &amp;ldquo;extras&amp;rdquo; de que você talvez não precise — como blocos do Gutenberg, XML-RPC ou scripts de emoji. Corte a gordura para ter um núcleo mais leve.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Plugin recomendado:&lt;/strong&gt; &lt;a class="link" href="https://wordpress.org/plugins/unbloater/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Unbloater&lt;/a&gt; (gratuito, mais de 10 mil instalações ativas, nota 5/5)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Painel simples em &lt;strong&gt;Configurações &amp;gt; Unbloater&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Opções recomendadas:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Backend:&lt;/strong&gt; desative as atualizações automáticas (se você faz isso manualmente), limite as revisões de posts a 3, esconda os avisos de atualização para quem não é administrador, desative o XML-RPC.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; remova os manifestos RSD/WLW, os links curtos, os links de feed, o jQuery Migrate e os scripts de emoji.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Editor de blocos:&lt;/strong&gt; desative totalmente o Gutenberg (se você usa o Editor Clássico) ou remova os blocos que não usa.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Extras:&lt;/strong&gt; bloqueie o DNS prefetch para o WordPress.org e remova a meta tag generator.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Tudo é reversível — desative se aparecer algum problema. Isso reduz as consultas ao banco de dados e o excesso de JS/CSS em 20–30%.&lt;/p&gt;&#10;&lt;h2 id="3-dome-a-heartbeat-api"&gt;3. Dome a Heartbeat API&#10;&lt;/h2&gt;&lt;p&gt;A Heartbeat API do WordPress faz requisições ao seu servidor a cada 15–60 segundos para salvamento automático, presença de usuários etc. Ótimo para colaboração, mas faz a CPU disparar em hospedagem compartilhada.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Plugin recomendado:&lt;/strong&gt; &lt;a class="link" href="https://wordpress.org/plugins/heartbeat-control/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Heartbeat Control&lt;/a&gt; (gratuito, mais de 90 mil instalações ativas, nota 4,1/5)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Vá em &lt;strong&gt;Configurações &amp;gt; Heartbeat Control&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;li&gt;Defina os intervalos: 60 segundos (frontend), 120 segundos (painel/editor).&lt;/li&gt;&#10;&lt;li&gt;Ou desative totalmente no frontend se você não precisa de pré-visualizações ao vivo.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;O Unbloater também resolve isso. Espere uma economia de 10–20% de CPU em sessões ociosas.&lt;/p&gt;&#10;&lt;h2 id="4-limite-as-revisões-de-posts"&gt;4. Limite as revisões de posts&#10;&lt;/h2&gt;&lt;p&gt;Por padrão, o WordPress salva 25 revisões por post — inchando seu banco de dados com o tempo (por exemplo, um site com 1.000 posts = mais de 25 mil registros).&lt;/p&gt;&#10;&lt;p&gt;Adicione ao &lt;code&gt;wp-config.php&lt;/code&gt; (antes de &amp;ldquo;That&amp;rsquo;s all, stop editing!&amp;rdquo;):&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-php" data-lang="php"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Limit to 3 revisions (or false to disable)&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;define&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;WP_POST_REVISIONS&amp;#39;&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;);&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O Unbloater tem uma opção para isso. Limpe as revisões antigas com o WP-Optimize (gratuito).&lt;/p&gt;&#10;&lt;p&gt;Resultado: banco de dados menor = consultas e backups mais rápidos.&lt;/p&gt;&#10;&lt;h2 id="5-desative-o-xml-rpc-a-menos-que-você-precise"&gt;5. Desative o XML-RPC (a menos que você precise)&#10;&lt;/h2&gt;&lt;p&gt;O XML-RPC permite publicar remotamente e usar apps, mas é um ímã de ataques de força bruta (a maioria dos bots mira nele).&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Se você usa o Jetpack/apps de celular: mantenha, mas libere só o seu IP.&lt;/li&gt;&#10;&lt;li&gt;Caso contrário: bloqueie via .htaccess (Apache/LiteSpeed):&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;lt;Files xmlrpc.php&amp;gt;&#10;Order Deny,Allow&#10;Deny from all&#10;# Allow from YOUR.IP.ADDRESS (uncomment if needed)&#10;&amp;lt;/Files&amp;gt;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O Unbloater ou o &lt;a class="link" href="https://wordpress.org/plugins/loginizer/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Loginizer&lt;/a&gt; (gratuito, mais de 1 milhão de instalações) também podem desativá-lo.&lt;/p&gt;&#10;&lt;h2 id="6-proteja-os-logins-com-limite-de-tentativas"&gt;6. Proteja os logins com limite de tentativas&#10;&lt;/h2&gt;&lt;p&gt;Os bots martelam o /wp-login.php 24/7. Limite as tentativas para barrar os ataques de força bruta de vez.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Melhor escolha:&lt;/strong&gt; &lt;a class="link" href="https://wordpress.org/plugins/limit-login-attempts-reloaded/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Limit Login Attempts Reloaded&lt;/a&gt; (gratuito, mais de 2 milhões de instalações, nota 4,9/5)&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Padrão: 3 tentativas falhas → bloqueio de 15 min (que sobe para 24h).&lt;/li&gt;&#10;&lt;li&gt;Cobre o wp-admin, o XML-RPC, o WooCommerce e logins personalizados.&lt;/li&gt;&#10;&lt;li&gt;Inclui logs + notificações.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Alternativa:&lt;/strong&gt; &lt;a class="link" href="https://wordpress.org/plugins/bruteguard/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;BruteGuard&lt;/a&gt; (gratuito, bloqueio de botnets na nuvem através de uma rede compartilhada).&lt;/p&gt;&#10;&lt;p&gt;O &lt;a class="link" href="https://wordpress.org/plugins/loginizer/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Loginizer&lt;/a&gt; (mais de 1 milhão de instalações) adiciona 2FA + reCAPTCHA como camadas extras.&lt;/p&gt;&#10;&lt;p&gt;Teste: tente logins errados — você verá os bloqueios na hora.&lt;/p&gt;&#10;&lt;h2 id="7-avalie-os-plugins-antes-de-instalar"&gt;7. Avalie os plugins antes de instalar&#10;&lt;/h2&gt;&lt;p&gt;Nem todos os plugins são iguais — alguns incham o seu site com mais de 1 MB de uso de RAM ou com erros de JS. Sempre confira:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://wphive.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;&lt;strong&gt;WP Hive&lt;/strong&gt;&lt;/a&gt;: extensão do Chrome + site com testes automatizados (memória, impacto na velocidade da página, compatibilidade com PHP/WordPress, espaço no banco de dados). Por exemplo, Yoast SEO 20.1: +0,1 s no carregamento, 1 MB de RAM (mais pesado que a média).&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://plugintests.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;&lt;strong&gt;PluginTests.com&lt;/strong&gt;&lt;/a&gt;: testes básicos de compatibilidade/fumaça para 98% dos plugins do WP.org (erros de ativação, quebras óbvias).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Exemplo rápido (benchmarks de 2025):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Yoast SEO: sólido, mas pesado (+0,1 s no carregamento, 1 MB de RAM). Ótimo para legibilidade.&lt;/li&gt;&#10;&lt;li&gt;Rank Math SEO: mais leve (sem impacto no carregamento, &amp;lt;250 KB de RAM), mais recursos gratuitos. Muitas vezes 4x mais rápido nos testes.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Prefira as opções leves — só adicione as &amp;ldquo;pesadas&amp;rdquo; se forem essenciais.&lt;/p&gt;&#10;&lt;h2 id="resumindo"&gt;Resumindo&#10;&lt;/h2&gt;&lt;p&gt;Aplique isso hoje, e o seu site vai estrear 2–3x mais rápido, mais seguro e preparado para o futuro. Tempo total: ~30 minutos. Sem desculpas!&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 🚀&lt;/p&gt;&#10;</description></item><item><title>Como evitar quedas por inatividade quando você está conectado via SSH</title><link>https://aquasp.blog/pt/how-to-avoid-timeouts-while-you-are-logged-on-ssh/</link><pubDate>Tue, 09 Dec 2025 01:41:02 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-avoid-timeouts-while-you-are-logged-on-ssh/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Uma das coisas mais frustrantes quando se trabalha em um servidor?&lt;/p&gt;&#10;&lt;p&gt;Sua sessão SSH cai por causa de uma oscilação rápida no Wi-Fi, de um tempo limite por inatividade ou de uma conexão instável.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Resolva isso de vez em 30 segundos.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="a-solução-universal-edite-sua-configuração-do-ssh"&gt;A solução universal: edite sua configuração do SSH&#10;&lt;/h2&gt;&lt;p&gt;Isso funciona no &lt;strong&gt;Linux, macOS e Windows&lt;/strong&gt; — e aguenta falhas de rede de até ~4–5 minutos.&lt;/p&gt;&#10;&lt;h3 id="passo-1-crie-ou-edite-o-arquivo-de-configuração-do-ssh"&gt;Passo 1: Crie ou edite o arquivo de configuração do SSH&#10;&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;No Linux / macOS:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/.ssh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano ~/.ssh/config&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;No Windows (PowerShell):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# Replace YourUsername with your actual Windows username&#10;mkdir &amp;#34;$HOME\.ssh&amp;#34; -Force&#10;notepad &amp;#34;$HOME\.ssh\config&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="passo-2-adicione-estas-linhas"&gt;Passo 2: Adicione estas linhas&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sshHost *&#10; ServerAliveInterval 120&#10; ServerAliveCountMax 3&#10; TCPKeepAlive yes&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Salve e saia.&lt;/p&gt;&#10;&lt;p&gt;Pronto. É só isso.&lt;/p&gt;&#10;&lt;h2 id="o-que-isso-faz-de-verdade"&gt;O que isso faz de verdade&#10;&lt;/h2&gt;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Configuração&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Significado&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Host *&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Aplica estas regras a &lt;strong&gt;todas&lt;/strong&gt; as conexões SSH&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ServerAliveInterval 120&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A cada 2 minutos, seu computador envia um pacotinho de “ainda estou aqui”&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;ServerAliveCountMax 3&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Só se 3 pacotes seguidos falharem → aí a conexão é fechada (~6 min)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;TCPKeepAlive yes&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Keepalive extra no nível do sistema operacional (ajuda com alguns roteadores/firewalls)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Resultado: agora sua sessão SSH sobrevive a:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Troca de rede Wi-Fi&lt;/li&gt;&#10;&lt;li&gt;Notebook entrando e saindo da suspensão&lt;/li&gt;&#10;&lt;li&gt;Quedas rápidas de internet&lt;/li&gt;&#10;&lt;li&gt;Reconexões de VPN&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;…sem travar nem cair.&lt;/p&gt;&#10;&lt;h2 id="agora-você-é-inabalável"&gt;Agora você é inabalável&#10;&lt;/h2&gt;&lt;p&gt;De agora em diante, quando sua internet piscar, sua sessão SSH simplesmente… espera com paciência.&lt;/p&gt;&#10;&lt;p&gt;Chega de “Connection reset by peer”&#10;Chega de perder sessões do tmux&#10;Chega de raiva&lt;/p&gt;&#10;&lt;p&gt;Você oficialmente subiu de nível.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura — e continue conectado!&lt;/p&gt;&#10;</description></item><item><title>Como verificar o uso de disco por arquivo ou diretório no Linux</title><link>https://aquasp.blog/pt/how-to-check-disk-usage-per-file-or-directory-on-linux/</link><pubDate>Tue, 09 Dec 2025 01:34:27 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-check-disk-usage-per-file-or-directory-on-linux/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Seja para investigar uma VPS lotada, fazer uma limpeza no servidor de casa ou só por curiosidade — aqui estão os comandos &lt;strong&gt;mais rápidos e úteis&lt;/strong&gt; para entender o que está comendo o seu espaço em disco.&lt;/p&gt;&#10;&lt;h2 id="1-encontre-os-maiores-arquivos-e-pastas-no-diretório-atual"&gt;1. Encontre os maiores arquivos e pastas no diretório atual&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;du -shc * | sort -rh | head -15&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;du -shc * → mostra o tamanho de tudo na pasta atual (em formato legível, com o total)&lt;/li&gt;&#10;&lt;li&gt;sort -rh → ordena do maior para o menor&lt;/li&gt;&#10;&lt;li&gt;head -15 → mostra só os 15 maiores culpados (mude o número se precisar)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Perfeito para achar rapidinho aquele arquivo de log enorme ou aquela pasta de backup.&lt;/p&gt;&#10;&lt;p&gt;Dica de mestre: rode em /var, /home ou / para caçar o que está ocupando espaço.&lt;/p&gt;&#10;&lt;h2 id="2-verifique-o-uso-geral-do-disco-todas-as-partições"&gt;2. Verifique o uso geral do disco (todas as partições)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;df -h&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mostra:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Espaço total/usado/disponível&lt;/li&gt;&#10;&lt;li&gt;Porcentagem de uso&lt;/li&gt;&#10;&lt;li&gt;Ponto de montagem&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Procure a linha com / (raiz) ou o seu disco principal.&#10;Exemplo: 64G usados / 226G no total → 28% ocupado&lt;/p&gt;&#10;&lt;p&gt;Adicione &amp;ndash;exclude-type=tmpfs para esconder os sistemas de arquivos temporários:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;df -h --exclude-type=tmpfs --exclude-type=devtmpfs&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="3-verifique-o-uso-de-inodes-quando-aparece-disco-cheio-mas-o-df-mostra-espaço-livre"&gt;3. Verifique o uso de inodes (quando aparece &amp;ldquo;disco cheio&amp;rdquo;, mas o df mostra espaço livre)&#10;&lt;/h2&gt;&lt;p&gt;Às vezes o seu disco está cheio de &lt;strong&gt;milhões de arquivinhos&lt;/strong&gt; (logs, cache, sessões etc.). Cada arquivo usa um inode.&lt;/p&gt;&#10;&lt;p&gt;Veja os inodes por pasta no diretório atual:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;du --inodes --max-depth=1 . | sort -nr&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ou no sistema todo:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;df -i&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Se o &amp;ldquo;IUsed&amp;rdquo; estiver perto de 100%, acabaram os inodes — hora de limpar os arquivos pequenos!&lt;/p&gt;&#10;&lt;h2 id="comandos-bônus-de-uma-linha"&gt;Comandos bônus de uma linha&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# Top 10 biggest directories in /home&#10;du -h /home | sort -rh | head -10&#10;&#10;# Find files bigger than 1GB&#10;find / -type f -size +1G 2&amp;gt;/dev/null&#10;&#10;# Show only real disks (clean output)&#10;df -h -x squashfs -x tmpfs -x devtmpfs&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;É só isso!&lt;/p&gt;&#10;&lt;p&gt;Agora você tem o kit definitivo para &lt;strong&gt;nunca mais ser pego de surpresa&lt;/strong&gt; por um disco cheio.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura!&lt;/p&gt;&#10;</description></item><item><title>Como exportar e importar volumes do Docker com facilidade</title><link>https://aquasp.blog/pt/how-to-easily-export-and-import-docker-volumes/</link><pubDate>Tue, 09 Dec 2025 01:22:26 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-easily-export-and-import-docker-volumes/</guid><description>&lt;p&gt;Se você é como eu, prefere rodar &lt;strong&gt;tudo&lt;/strong&gt; em contêineres Docker. Eles são rápidos, isolados e perfeitos para rodar vários apps em uma única VPS.&lt;/p&gt;&#10;&lt;p&gt;Mas o que acontece quando você quer:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Mover um contêiner para um servidor novo?&lt;/li&gt;&#10;&lt;li&gt;Fazer backup de um volume de banco de dados (NextCloud, PhotoPrism, Vaultwarden etc.)?&lt;/li&gt;&#10;&lt;li&gt;Restaurar dados depois de uma pane?&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;O Docker não tem um botão de “exportar volume” — mas existe um &lt;strong&gt;truque superssimples e confiável&lt;/strong&gt; usando um contêiner Ubuntu temporário.&lt;/p&gt;&#10;&lt;p&gt;Vamos lá!&lt;/p&gt;&#10;&lt;h2 id="passo-1-liste-seus-volumes"&gt;Passo 1: Liste seus volumes&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker volume ls&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Exemplo de saída:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;DRIVER VOLUME NAME&#10;local nextcloud_data&#10;local photoprism_storage&#10;local vaultwarden_data&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Escolha o que você quer exportar (por exemplo, nextcloud_data).&lt;/p&gt;&#10;&lt;h2 id="passo-2-exporte-um-volume--backuptargz"&gt;Passo 2: Exporte um volume → backup.tar.gz&#10;&lt;/h2&gt;&lt;p&gt;Rode este &lt;strong&gt;comando de uma linha&lt;/strong&gt; (troque nextcloud_data pelo nome do seu volume):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --rm -v nextcloud_data:/data -v &amp;#34;$(pwd)&amp;#34;:/backup ubuntu \&#10; tar -czf /backup/nextcloud-data-backup.tar.gz -C /data ./&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O que ele faz:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Monta o seu volume em /data dentro de um contêiner temporário&lt;/li&gt;&#10;&lt;li&gt;Monta a sua pasta atual em /backup&lt;/li&gt;&#10;&lt;li&gt;Cria um arquivo compactado com o volume inteiro&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Quando terminar, você terá um arquivo como:&#10;nextcloud-data-backup.tar.gz ← pronto para baixar ou mover!&lt;/p&gt;&#10;&lt;p&gt;Dica de mestre: adicione a data para ficar mais claro&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --rm -v nextcloud_data:/data -v &amp;#34;$(pwd)&amp;#34;:/backup ubuntu \&#10; tar -czf &amp;#34;/backup/nextcloud-data-$(date +%Y-%m-%d).tar.gz&amp;#34; -C /data ./&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-3-importe-no-servidor-novo"&gt;Passo 3: Importe no servidor novo&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;Copie o arquivo backup.tar.gz para o servidor novo (via scp, rsync etc.)&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Depois, &lt;strong&gt;crie o volume vazio&lt;/strong&gt; (importante!):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker volume create nextcloud_data&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Rode o comando de importação (a partir da pasta que contém o arquivo de backup):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --rm -v nextcloud_data:/data -v &amp;#34;$(pwd)&amp;#34;:/backup ubuntu \&#10; tar -xzf /backup/nextcloud-data-2025-04-05.tar.gz -C /data&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pronto! Seu volume foi totalmente restaurado.&lt;/p&gt;&#10;&lt;p&gt;Nunca deixe o Docker criar o volume automaticamente durante a importação — isso pode causar problemas de permissão ou de mistura de dados.&lt;/p&gt;&#10;&lt;h2 id="bônus-usando-volumes-externos-com-o-docker-compose"&gt;Bônus: usando volumes externos com o Docker Compose&#10;&lt;/h2&gt;&lt;p&gt;Se você usa docker-compose.yml, avise o Docker que o volume é &lt;strong&gt;externo&lt;/strong&gt; (já existe):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;services:&#10; nextcloud:&#10; image: nextcloud:latest&#10; volumes:&#10; - nextcloud_data:/var/www/html&#10;&#10;volumes:&#10; nextcloud_data:&#10; external: true&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A indentação importa — use &lt;strong&gt;exatamente dois espaços&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="casos-de-uso-reais"&gt;Casos de uso reais&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Migrar o NextCloud para uma VPS nova&lt;/li&gt;&#10;&lt;li&gt;Fazer backup do Vaultwarden antes de atualizar&lt;/li&gt;&#10;&lt;li&gt;Mover a biblioteca do PhotoPrism para um servidor maior&lt;/li&gt;&#10;&lt;li&gt;Recuperação de desastres&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Este método é &lt;strong&gt;100% confiável&lt;/strong&gt;, funciona com qualquer volume e não exige nenhuma ferramenta extra.&lt;/p&gt;&#10;&lt;p&gt;Agora você tem uma estratégia de backup de volumes Docker à prova de balas.&lt;/p&gt;&#10;&lt;p&gt;Boa conteinerização! 🐳&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura!&lt;/p&gt;&#10;</description></item><item><title>Como hospedar em casa com facilidade e colocar seus projetos online mesmo atrás de CGNAT</title><link>https://aquasp.blog/pt/how-to-easily-self-host-at-home-and-put-your-projects-online-under-cgnat/</link><pubDate>Tue, 09 Dec 2025 01:13:41 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-easily-self-host-at-home-and-put-your-projects-online-under-cgnat/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Quer rodar serviços pesados em um servidor potente em casa, mesmo com o seu provedor te colocando atrás de CGNAT? Este guia mostra exatamente como colocá-los online — do &lt;strong&gt;jeito clássico e à prova de balas&lt;/strong&gt;, usando túneis SSH reversos.&lt;/p&gt;&#10;&lt;p&gt;Sem Cloudflare Tunnel. Sem Ngrok. Só SSH + systemd.&lt;/p&gt;&#10;&lt;h2 id="as-desvantagens-e-por-que-dá-para-lidar-com-elas"&gt;As desvantagens (e por que dá para lidar com elas)&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Internet de casa não tem a qualidade de um datacenter (quedas acontecem)&lt;/li&gt;&#10;&lt;li&gt;A maioria dos provedores usa CGNAT → não dá para abrir portas do jeito normal&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; use uma VPS barata como “ponte” pública. Seu servidor pesado fica em casa. A VPS só encaminha as portas.&lt;/p&gt;&#10;&lt;h2 id="como-funciona--a-mágica-dos-túneis-ssh-reversos--r"&gt;Como funciona – a mágica dos túneis SSH reversos (-R)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Internet → Cheap VPS (public IP) → SSH reverse tunnel → Your home server (behind CGNAT)&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;O seu servidor de casa abre uma conexão SSH de saída até a VPS e diz:&#10;“Tudo o que chegar na sua porta 8096 → mande para o meu Jellyfin local na 8096”&lt;/p&gt;&#10;&lt;p&gt;Nenhuma porta aberta no roteador de casa. Nenhuma exposição.&lt;/p&gt;&#10;&lt;h2 id="configuração-passo-a-passo"&gt;Configuração passo a passo&#10;&lt;/h2&gt;&lt;h3 id="1-no-seu-servidor-de-casa-o-potente"&gt;1. No seu servidor de casa (o potente)&#10;&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Create folder for tunnel configs&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /etc/sshtunnels&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Example: expose Jellyfin (port 8096)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/sshtunnels/jellyfin.conf&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Conteúdo do arquivo:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;8096:8096 # remote_port:local_port&#10;443:8443 # optional: HTTPS reverse proxy on VPS → your local 8443&#10;80:8080&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Uma linha por serviço. O primeiro número = porta na &lt;strong&gt;VPS&lt;/strong&gt;, o segundo = porta no &lt;strong&gt;seu servidor de casa&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h3 id="2-gere-uma-chave-ssh-se-você-ainda-não-tiver-uma"&gt;2. Gere uma chave SSH (se você ainda não tiver uma)&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-keygen -t ed25519 -C &amp;#34;home-server-tunnel&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copie a chave pública para a sua VPS:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-copy-id user@your-vps-ip&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="3-crie-o-script-que-gerencia-os-túneis"&gt;3. Crie o script que gerencia os túneis&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /usr/local/bin/sshtunnel.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/bash&#10;&#10;# === EDIT THESE ===&#10;REMOTE_USER=&amp;#34;root&amp;#34; # or your VPS user&#10;REMOTE_HOST=&amp;#34;123.45.67.89&amp;#34; # your VPS public IP&#10;SSH_KEY=&amp;#34;/home/youruser/.ssh/id_ed25519&amp;#34;&#10;SSH_PORT=&amp;#34;22&amp;#34; # change if you use a non-standard port&#10;# ==================&#10;&#10;INSTANCE=&amp;#34;$1&amp;#34;&#10;CONFIG_FILE=&amp;#34;/etc/sshtunnels/${INSTANCE}.conf&amp;#34;&#10;&#10;if [[ ! -f &amp;#34;$CONFIG_FILE&amp;#34; ]]; then&#10; echo &amp;#34;Error: Config file $CONFIG_FILE not found!&amp;#34;&#10; exit 1&#10;fi&#10;&#10;# Build -R arguments&#10;FORWARD_OPTS=&amp;#34;&amp;#34;&#10;while IFS=: read -r remote_port local_port; do&#10; [[ -z &amp;#34;$remote_port&amp;#34; || &amp;#34;$remote_port&amp;#34; =~ ^# ]] &amp;amp;&amp;amp; continue&#10; # Clean any old process using the remote port&#10; ssh -p &amp;#34;$SSH_PORT&amp;#34; &amp;#34;$REMOTE_USER@$REMOTE_HOST&amp;#34; \&#10; &amp;#34;lsof -i :$remote_port -t | xargs -r kill -9&amp;#34; 2&amp;gt;/dev/null&#10; FORWARD_OPTS=&amp;#34;$FORWARD_OPTS -R $remote_port:localhost:$local_port&amp;#34;&#10;done &amp;lt; &amp;#34;$CONFIG_FILE&amp;#34;&#10;&#10;echo &amp;#34;Starting tunnel $INSTANCE → $REMOTE_HOST ($FORWARD_OPTS)&amp;#34;&#10;&#10;exec ssh -o StrictHostKeyChecking=no \&#10; -o ServerAliveInterval=30 \&#10; -o ServerAliveCountThreshold=3 \&#10; -o ExitOnForwardFailure=yes \&#10; -o GatewayPorts=yes \&#10; -N -T \&#10; -i &amp;#34;$SSH_KEY&amp;#34; \&#10; -p &amp;#34;$SSH_PORT&amp;#34; \&#10; $FORWARD_OPTS \&#10; &amp;#34;$REMOTE_USER@$REMOTE_HOST&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Torne-o executável:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo chmod +x /usr/local/bin/sshtunnel.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="4-crie-um-serviço-do-systemd-início-e-reconexão-automáticos"&gt;4. Crie um serviço do systemd (início e reconexão automáticos)&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /etc/systemd/system/sshtunnel@.service&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;[Unit]&#10;Description=SSH Reverse Tunnel for %i&#10;After=network-online.target&#10;Wants=network-online.target&#10;&#10;[Service]&#10;User=youruser # ← change to your home user (not root!)&#10;Group=youruser&#10;ExecStart=/usr/local/bin/sshtunnel.sh %i&#10;Restart=always&#10;RestartSec=10&#10;&#10;[Install]&#10;WantedBy=multi-user.target&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Recarregue e ative:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo systemctl daemon-reload&#10;&#10;# Start a tunnel (example: jellyfin)&#10;sudo systemctl enable --now sshtunnel@jellyfin.service&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Confira o status:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo systemctl status sshtunnel@jellyfin.service&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="5-no-lado-da-vps-opcional-mas-recomendado"&gt;5. No lado da VPS (opcional, mas recomendado)&#10;&lt;/h3&gt;&lt;p&gt;Instale um servidor web pequeno ou o Caddy/nginx para cuidar do TLS e fazer proxy para as portas encaminhadas.&lt;/p&gt;&#10;&lt;p&gt;Exemplo com o Caddy (HTTPS automático):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# On the VPS&#10;apt install caddy&#10;&#10;# /etc/caddy/Caddyfile&#10;jellyfin.yourdomain.com {&#10; reverse_proxy localhost:8096&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora jellyfin.yourdomain.com → o seu Jellyfin de casa, totalmente criptografado.&lt;/p&gt;&#10;&lt;p&gt;Tudo rodando no meu servidor parrudo de casa, atrás de CGNAT.&lt;/p&gt;&#10;&lt;h2 id="vantagens-desta-configuração"&gt;Vantagens desta configuração&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Funciona atrás de qualquer CGNAT / bloqueio do provedor&lt;/li&gt;&#10;&lt;li&gt;Nenhuma dependência de terceiros (sem Cloudflare, sem Ngrok)&lt;/li&gt;&#10;&lt;li&gt;Criptografia completa possível&lt;/li&gt;&#10;&lt;li&gt;Sobrevive a reinicializações (systemd + Restart=always)&lt;/li&gt;&#10;&lt;li&gt;Custa quase nada&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="palavras-finais"&gt;Palavras finais&#10;&lt;/h2&gt;&lt;p&gt;Este é o jeito realmente bacana que encontrei para hospedar serviços pesados em casa em 2025.&lt;/p&gt;&#10;&lt;p&gt;O seu hardware potente fica em casa. A sua VPS de US$ 1/mês é só uma guarda de trânsito.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura — agora vá montar o seu home lab imbatível!&lt;/p&gt;&#10;</description></item><item><title>Como fazer backup automático do seu blog Ghost auto-hospedado</title><link>https://aquasp.blog/pt/how-to-automatically-backup-your-self-hosted-ghost-blog/</link><pubDate>Tue, 09 Dec 2025 01:05:55 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-automatically-backup-your-self-hosted-ghost-blog/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;O Ghost é uma plataforma de blog &lt;strong&gt;incrivelmente rápida e elegante&lt;/strong&gt;. Mas, ao contrário do WordPress, ele não tem plugins de backup com um clique.&lt;/p&gt;&#10;&lt;p&gt;Isso muda hoje.&lt;/p&gt;&#10;&lt;p&gt;Neste guia, você vai configurar um &lt;strong&gt;sistema de backup diário totalmente automatizado&lt;/strong&gt; que:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Faz o dump do seu banco de dados MySQL&lt;/li&gt;&#10;&lt;li&gt;Faz backup de todos os temas, imagens e conteúdos&lt;/li&gt;&#10;&lt;li&gt;Compacta tudo em um único &lt;code&gt;.zip&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;Envia o arquivo com segurança para o seu armazenamento na nuvem (pCloud, NextCloud, Google Drive, Dropbox etc.)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Tudo usando &lt;strong&gt;ferramentas gratuitas&lt;/strong&gt;: &lt;code&gt;rclone&lt;/code&gt; + um script bash simples + cron.&lt;/p&gt;&#10;&lt;p&gt;Vamos começar.&lt;/p&gt;&#10;&lt;h2 id="passo-1-instale-o-rclone"&gt;Passo 1: Instale o Rclone&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install -y rclone&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;O Rclone é o canivete suíço do armazenamento na nuvem — ele suporta &lt;strong&gt;mais de 70 provedores&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Lista completa: &lt;a class="link" href="https://rclone.org/overview/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://rclone.org/overview/&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="passo-2-configure-o-rclone-conecte-seu-armazenamento-na-nuvem"&gt;Passo 2: Configure o Rclone (conecte seu armazenamento na nuvem)&#10;&lt;/h2&gt;&lt;p&gt;Rode:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;rclone config&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Siga as perguntas:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;n → novo remote&lt;/li&gt;&#10;&lt;li&gt;Dê um nome como ghost-backup ou pcloud&lt;/li&gt;&#10;&lt;li&gt;Escolha seu provedor (por exemplo, webdav para NextCloud, pcloud, google drive etc.)&lt;/li&gt;&#10;&lt;li&gt;Informe suas credenciais/URL quando for pedido&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Teste se funciona:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;rclone ls ghost-backup:&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Você deve ver os arquivos do seu remote (ou uma pasta vazia, se for novo).&lt;/p&gt;&#10;&lt;p&gt;Digite q para sair.&lt;/p&gt;&#10;&lt;h2 id="passo-3-pegue-as-credenciais-do-banco-de-dados-do-ghost"&gt;Passo 3: Pegue as credenciais do banco de dados do Ghost&#10;&lt;/h2&gt;&lt;p&gt;Entre com o usuário do Ghost (não o root):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;su - yourghostuser&#10;cd /var/www/ghost # or wherever you installed Ghost&#10;cat config.production.json&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Procure a seção do banco de dados. Você verá algo assim:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#34;database&amp;#34;: {&#10; &amp;#34;client&amp;#34;: &amp;#34;mysql&amp;#34;,&#10; &amp;#34;connection&amp;#34;: {&#10; &amp;#34;host&amp;#34;: &amp;#34;localhost&amp;#34;,&#10; &amp;#34;user&amp;#34;: &amp;#34;ghost_db_user&amp;#34;,&#10; &amp;#34;password&amp;#34;: &amp;#34;yoursecretpassword&amp;#34;,&#10; &amp;#34;database&amp;#34;: &amp;#34;ghost_prod&amp;#34;&#10; }&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Anote&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Nome do banco de dados (ghost_prod)&lt;/li&gt;&#10;&lt;li&gt;Usuário (ghost_db_user)&lt;/li&gt;&#10;&lt;li&gt;Senha&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="passo-4-crie-o-script-de-backup"&gt;Passo 4: Crie o script de backup&#10;&lt;/h2&gt;&lt;p&gt;Crie o script como root:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano /root/backup-ghost.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cole isto (depois edite as variáveis abaixo):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;#!/bin/bash&#10;&#10;# === EDIT THESE VALUES ===&#10;GHOST_USER=&amp;#34;yourghostuser&amp;#34; # e.g. ghost&#10;GHOST_PATH=&amp;#34;/var/www/ghost&amp;#34; # path to your Ghost install&#10;DB_NAME=&amp;#34;ghost_prod&amp;#34; # from config.production.json&#10;DB_USER=&amp;#34;ghost_db_user&amp;#34; # from config.production.json&#10;DB_PASS=&amp;#34;yoursecretpassword&amp;#34; # from config.production.json&#10;BACKUP_NAME=&amp;#34;theselfhostingart-blog&amp;#34; # name for your backup zip&#10;RCLONE_REMOTE=&amp;#34;ghost-backup&amp;#34; # name you gave in rclone config&#10;RCLONE_PATH=&amp;#34;/&amp;#34; # folder in your cloud (use / for root)&#10;# =========================&#10;&#10;DATE=$(date +&amp;#39;%Y-%m-%d_%H-%M&amp;#39;)&#10;BACKUP_DIR=&amp;#34;/home/$GHOST_USER/backups/$DATE&amp;#34;&#10;ZIP_FILE=&amp;#34;$BACKUP_DIR/$BACKUP_NAME-$DATE.zip&amp;#34;&#10;&#10;echo &amp;#34;Starting Ghost backup: $DATE&amp;#34;&#10;&#10;# Create backup directory&#10;mkdir -p &amp;#34;$BACKUP_DIR&amp;#34;&#10;&#10;# Backup database&#10;echo &amp;#34;Backing up database...&amp;#34;&#10;mysqldump -u &amp;#34;$DB_USER&amp;#34; -p&amp;#34;$DB_PASS&amp;#34; --add-drop-table &amp;#34;$DB_NAME&amp;#34; | gzip &amp;gt; &amp;#34;$BACKUP_DIR/db.sql.gz&amp;#34;&#10;&#10;# Backup content folder (themes, images, etc.)&#10;echo &amp;#34;Backing up content folder...&amp;#34;&#10;rsync -av --exclude=&amp;#39;logs&amp;#39; --exclude=&amp;#39;cache&amp;#39; &amp;#34;$GHOST_PATH/content/&amp;#34; &amp;#34;$BACKUP_DIR/content/&amp;#34;&#10;&#10;# Compress everything&#10;echo &amp;#34;Compressing backup...&amp;#34;&#10;zip -r &amp;#34;$ZIP_FILE&amp;#34; &amp;#34;$BACKUP_DIR/content&amp;#34; &amp;#34;$BACKUP_DIR/db.sql.gz&amp;#34; &amp;gt; /dev/null&#10;&#10;# Upload to cloud&#10;echo &amp;#34;Uploading to cloud storage...&amp;#34;&#10;rclone copy &amp;#34;$ZIP_FILE&amp;#34; &amp;#34;$RCLONE_REMOTE:$RCLONE_PATH&amp;#34;&#10;&#10;# Cleanup: remove local backups older than 1 day (optional but recommended)&#10;echo &amp;#34;Cleaning up old local backups...&amp;#34;&#10;find /home/$GHOST_USER/backups -type d -mtime +1 -exec rm -rf {} +&#10;&#10;echo &amp;#34;Backup complete: $ZIP_FILE → $RCLONE_REMOTE:$RCLONE_PATH&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Torne-o executável:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;chmod +x /root/backup-ghost.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Teste manualmente primeiro&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;/root/backup-ghost.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Confira seu armazenamento na nuvem — você deve ver um arquivo como:&#10;theselfhostingart-blog-2025-04-05_03-22.zip&lt;/p&gt;&#10;&lt;h2 id="passo-5-automatize-com-o-cron-backups-diários"&gt;Passo 5: Automatize com o cron (backups diários)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -e&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione esta linha para um &lt;strong&gt;backup diário às 2h da manhã&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;p&gt;cron&lt;code&gt;0 2 * * * /usr/bin/bash /root/backup-ghost.sh &amp;gt;&amp;gt; /var/log/ghost-backup.log 2&amp;gt;&amp;amp;1&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Salve e saia.&lt;/p&gt;&#10;&lt;p&gt;Agora o seu blog Ghost tem &lt;strong&gt;backup automático todos os dias&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="o-que-entra-no-backup"&gt;O que entra no backup?&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Banco de dados completo (posts, usuários, configurações)&lt;/li&gt;&#10;&lt;li&gt;Todas as imagens enviadas&lt;/li&gt;&#10;&lt;li&gt;Temas personalizados&lt;/li&gt;&#10;&lt;li&gt;Tudo o que é preciso para restaurar ou migrar&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Você pode até mandar esse .zip para o suporte do Ghost(Pro) — eles conseguem importá-lo diretamente.&lt;/p&gt;&#10;&lt;h2 id="bônus-restaure-em-caso-de-desastre"&gt;Bônus: restaure em caso de desastre&#10;&lt;/h2&gt;&lt;p&gt;Para restaurar:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Instale um Ghost novo&lt;/li&gt;&#10;&lt;li&gt;Descompacte o backup&lt;/li&gt;&#10;&lt;li&gt;Importe o banco: gunzip &amp;lt; db.sql.gz | mysql -u user -p dbname&lt;/li&gt;&#10;&lt;li&gt;Substitua a pasta content/&lt;/li&gt;&#10;&lt;li&gt;Rode ghost restart&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="créditos-e-agradecimentos"&gt;Créditos e agradecimentos&#10;&lt;/h2&gt;&lt;p&gt;Este método foi inspirado e aprimorado a partir deste excelente post:&#10;&lt;a class="link" href="https://dev.to/kvizdos/how-to-automatically-backup-ghost-blogs-4he1?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;How to Automatically Backup Ghost Blogs – Kenton Vizdos&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Obrigado, Kenton!&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;Agora o seu blog auto-hospedado dorme mais tranquilo à noite. 😴💾&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura!&lt;/p&gt;&#10;</description></item><item><title>Como instalar o NextCloud com OpenLiteSpeed (stack LOMP)</title><link>https://aquasp.blog/pt/how-to-install-nextcloud-with-openlitespeed-lomp-stack/</link><pubDate>Tue, 09 Dec 2025 00:59:45 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-install-nextcloud-with-openlitespeed-lomp-stack/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Hoje vou mostrar como montar o que eu sinceramente acredito ser a &lt;strong&gt;stack de NextCloud mais rápida&lt;/strong&gt; disponível em 2025:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;OpenLiteSpeed&lt;/strong&gt; – o servidor web mais rápido, com cache embutido&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;LSPHP 8.1/8.2&lt;/strong&gt; – a implementação ultrarrápida de PHP da LiteSpeed&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Redis + APCu&lt;/strong&gt; – para cache e travamento (locking) ultrarrápidos&lt;/li&gt;&#10;&lt;li&gt;Roda totalmente &lt;strong&gt;sem root&lt;/strong&gt;, com o seu próprio usuário&lt;/li&gt;&#10;&lt;li&gt;Protegido com cabeçalhos de segurança adequados, HSTS e pasta de dados isolada&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Mesmo que o NextCloud seja comprometido, o invasor ainda não consegue mexer no resto do seu servidor.&lt;/p&gt;&#10;&lt;p&gt;Vamos lá!&lt;/p&gt;&#10;&lt;h2 id="passo-1-proteja-sua-vps-primeiro"&gt;Passo 1: Proteja sua VPS primeiro&#10;&lt;/h2&gt;&lt;p&gt;Antes de tudo, proteja o seu servidor. Siga o meu guia completo aqui:&#10;&lt;a class="link" href="https://aquasp.blog/pt/how-to-make-your-vps-secure/" &gt;Como deixar sua VPS segura&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="passo-2-instale-o-openlitespeed-o-lsphp-o-redis-e-as-ferramentas"&gt;Passo 2: Instale o OpenLiteSpeed, o LSPHP, o Redis e as ferramentas&#10;&lt;/h2&gt;&lt;p&gt;Rode como root:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Update system&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Add OpenLiteSpeed repository&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget -O - https://repo.litespeed.sh | bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Install essentials&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y curl gnupg2 imagemagick ffmpeg redis openlitespeed lsphp81* lsphp82* zip unzip mariadb-server mariadb-client&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;Observação: no Ubuntu 22.04+, o pacote do ImageMagick pode ser libmagickwand-dev + imagemagick. O comando acima funciona na maioria das versões recentes do Debian/Ubuntu.&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;p&gt;Ative e reinicie o Redis:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl enable --now redis-server&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-3-crie-um-usuário-de-sistema-dedicado-para-o-nextcloud"&gt;Passo 3: Crie um usuário de sistema dedicado para o NextCloud&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;adduser --shell /bin/bash files&#10;usermod -aG redis files # Allow access to Redis socket&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-4-baixe-e-extraia-o-nextcloud-como-o-usuário-files"&gt;Passo 4: Baixe e extraia o NextCloud como o usuário &amp;ldquo;files&amp;rdquo;&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;su - files&#10;mkdir -p ~/public_html&#10;cd ~/public_html&#10;&#10;wget https://download.nextcloud.com/server/releases/latest.zip&#10;unzip latest.zip&#10;rsync -av nextcloud/ ./&#10;rm -rf nextcloud latest.zip .htaccess .user.ini&#10;exit&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-5-configure-o-painel-web-de-administração-do-openlitespeed-porta-7080"&gt;Passo 5: Configure o painel web de administração do OpenLiteSpeed (porta 7080)&#10;&lt;/h2&gt;&lt;p&gt;Defina uma senha de administrador:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;/usr/local/lsws/admin/misc/admpass.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora acesse: https://your-vps-ip:7080 e entre.&lt;/p&gt;&#10;&lt;h3 id="configuração-do-virtual-host"&gt;Configuração do Virtual Host&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Apague o virtual host padrão &amp;ldquo;Example&amp;rdquo;&lt;/li&gt;&#10;&lt;li&gt;Adicione um novo Virtual Host:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Virtual Host Name: yourdomain.com&lt;/li&gt;&#10;&lt;li&gt;Virtual Host Root: /home/files/&lt;/li&gt;&#10;&lt;li&gt;Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf&lt;/li&gt;&#10;&lt;li&gt;Document Root: $VH_ROOT/public_html&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;Script Handler → Add:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Suffix: php&lt;/li&gt;&#10;&lt;li&gt;Handler Type: LiteSpeed LVE&lt;/li&gt;&#10;&lt;li&gt;Handler: lsphp81 (ou lsphp82, se preferir o PHP 8.2)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="4"&gt;&#10;&lt;li&gt;Rewrite Rules (forçar HTTPS):&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;RewriteEngine On&#10;RewriteCond %{HTTPS} !=on&#10;RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#10;&lt;li&gt;Cabeçalhos de segurança (Context → Static → adicione um novo context /):&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Strict-Transport-Security &amp;#34;max-age=63072000; includeSubDomains; preload&amp;#34;&#10;Content-Security-Policy &amp;#34;upgrade-insecure-requests&amp;#34;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#10;&lt;li&gt;External App → LSPHP → Edit:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Run as User/Group: files&lt;/li&gt;&#10;&lt;li&gt;PHP_LSAPI_CHILDREN = 100&lt;/li&gt;&#10;&lt;li&gt;LSAPI_AVOID_FORK = 0&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;Listeners:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Apague os listeners padrão&lt;/li&gt;&#10;&lt;li&gt;Adicione HTTP → porta 80&lt;/li&gt;&#10;&lt;li&gt;Adicione HTTPS → porta 443 (Secure = Yes)&lt;/li&gt;&#10;&lt;li&gt;Associe o seu domínio aos dois listeners&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Reinício suave (graceful restart) → OpenLiteSpeed → Graceful Restart&lt;/p&gt;&#10;&lt;h2 id="passo-6-emita-o-ssl-do-lets-encrypt"&gt;Passo 6: Emita o SSL do Let’s Encrypt&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;apt install -y certbot&#10;certbot certonly --webroot -w /home/files/public_html -d yourdomain.com&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Anote os caminhos (você vai precisar deles):&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Fullchain: /etc/letsencrypt/live/yourdomain.com/fullchain.pem&lt;/li&gt;&#10;&lt;li&gt;Privkey: /etc/letsencrypt/live/yourdomain.com/privkey.pem&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Adicione-os em:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Virtual Host → aba SSL&lt;/li&gt;&#10;&lt;li&gt;Listener HTTPS → aba SSL&lt;/li&gt;&#10;&lt;li&gt;Chained Certificate = Yes&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Faça o graceful restart de novo.&lt;/p&gt;&#10;&lt;h2 id="passo-7-renovação-automática-do-ssl"&gt;Passo 7: Renovação automática do SSL&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -e&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione:&lt;/p&gt;&#10;&lt;p&gt;cron&lt;code&gt;0 3 * * * /usr/bin/certbot renew --quiet&lt;/code&gt;&lt;/p&gt;&#10;&lt;h2 id="passo-8-instale-e-proteja-o-mariadbmysql"&gt;Passo 8: Instale e proteja o MariaDB/MySQL&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;mysql_secure_installation&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Depois, crie o banco de dados e o usuário:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;mysql -u root -p&#10;CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;&#10;CREATE USER &amp;#39;ncuser&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;strong-password-here&amp;#39;;&#10;GRANT ALL PRIVILEGES ON nextcloud.* TO &amp;#39;ncuser&amp;#39;@&amp;#39;localhost&amp;#39;;&#10;FLUSH PRIVILEGES;&#10;EXIT;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-9-otimize-o-php-e-ative-o-opcache--apcu"&gt;Passo 9: Otimize o PHP e ative o OPCache + APCu&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# Edit the correct php.ini (adjust path if using lsphp82)&#10;sed -i &amp;#39;/usr/local/lsws/lsphp81/etc/php/8.1/litespeed/php.ini&amp;#39; \&#10; -e &amp;#39;s/memory_limit = .*/memory_limit = 1024M/&amp;#39; \&#10; -e &amp;#39;s/upload_max_filesize = .*/upload_max_filesize = 10G/&amp;#39; \&#10; -e &amp;#39;s/post_max_size = .*/post_max_size = 10G/&amp;#39; \&#10; -e &amp;#39;s/max_execution_time = .*/max_execution_time = 3600/&amp;#39; \&#10; -e &amp;#39;s/opcache.enable=.*/opcache.enable=1/&amp;#39; \&#10; -e &amp;#39;s/;opcache.memory_consumption=.*/opcache.memory_consumption=512/&amp;#39; \&#10; -e &amp;#39;s/;opcache.interned_strings_buffer=.*/opcache.interned_strings_buffer=64/&amp;#39; \&#10; -e &amp;#39;s/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=20000/&amp;#39;&#10;&#10;# Enable APCu CLI&#10;echo &amp;#34;apc.enable_cli = 1&amp;#34; &amp;gt;&amp;gt; /usr/local/lsws/lsphp81/etc/php/8.1/litespeed/php.ini&#10;&#10;pkill -f lsphp&#10;systemctl restart lsws&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-10-configure-o-redis-como-socket-unix"&gt;Passo 10: Configure o Redis como socket Unix&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sed -i &amp;#39;s/port 6379/port 0/&amp;#39; /etc/redis/redis.conf&#10;sed -i &amp;#39;s|# unixsocket /var/run/redis/redis-server.sock|unixsocket /var/run/redis/redis-server.sock|&amp;#39; /etc/redis/redis.conf&#10;sed -i &amp;#39;s/# unixsocketperm 700/unixsocketperm 770/&amp;#39; /etc/redis/redis.conf&#10;sed -i &amp;#39;s/# maxmemory .*/maxmemory 1gb/&amp;#39; /etc/redis/redis.conf&#10;&#10;systemctl restart redis-server&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-11-configuração-final-do-nextcloud"&gt;Passo 11: Configuração final do NextCloud&#10;&lt;/h2&gt;&lt;h3 id="mova-a-pasta-de-dados-para-fora-da-raiz-web-essencial"&gt;Mova a pasta de dados para fora da raiz web (essencial!)&#10;&lt;/h3&gt;&lt;p&gt;Durante a instalação, defina o diretório de dados como: /home/files/data&lt;/p&gt;&#10;&lt;h3 id="edite-o-configphp-depois-do-primeiro-login"&gt;Edite o config.php (depois do primeiro login)&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;su - files&#10;nano /home/files/public_html/config/config.php&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione &lt;strong&gt;logo depois&lt;/strong&gt; de &amp;lsquo;installed&amp;rsquo; =&amp;gt; true,:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;&amp;#39;memcache.local&amp;#39; =&amp;gt; &amp;#39;\\OC\\Memcache\\APCu&amp;#39;,&#10; &amp;#39;memcache.distributed&amp;#39; =&amp;gt; &amp;#39;\\OC\\Memcache\\Redis&amp;#39;,&#10; &amp;#39;memcache.locking&amp;#39; =&amp;gt; &amp;#39;\\OC\\Memcache\\Redis&amp;#39;,&#10; &amp;#39;redis&amp;#39; =&amp;gt; [&#10; &amp;#39;host&amp;#39; =&amp;gt; &amp;#39;/var/run/redis/redis-server.sock&amp;#39;,&#10; &amp;#39;port&amp;#39; =&amp;gt; 0,&#10; ],&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="configure-as-tarefas-em-segundo-plano-cron"&gt;Configure as tarefas em segundo plano (cron)&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;su - files&#10;crontab -e&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione:&lt;/p&gt;&#10;&lt;p&gt;cron&lt;code&gt;*/5 * * * * /usr/local/lsws/lsphp81/bin/php -f /home/files/public_html/cron.php&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;Depois, no NextCloud, vá em Administração → Configurações básicas → Tarefas em segundo plano → selecione &lt;strong&gt;Cron&lt;/strong&gt; (recomendado).&lt;/p&gt;&#10;&lt;h2 id="bônus-deixe-o-occ-fácil-de-usar-para-sempre"&gt;Bônus: deixe o occ fácil de usar para sempre&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;su - files&#10;echo &amp;#34;alias occ=&amp;#39;/usr/local/lsws/lsphp81/bin/php /home/files/public_html/occ&amp;#39;&amp;#34; &amp;gt;&amp;gt; ~/.bashrc&#10;source ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora, de qualquer lugar dentro de ~/public_html:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;cd ~/public_html&#10;occ status&#10;occ maintenance:repair&#10;occ db:add-missing-indices&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="pronto"&gt;Pronto!&#10;&lt;/h2&gt;&lt;p&gt;Agora você tem:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;A stack de NextCloud &lt;strong&gt;mais rápida&lt;/strong&gt; (OpenLiteSpeed + Redis + APCu)&lt;/li&gt;&#10;&lt;li&gt;Totalmente &lt;strong&gt;sem root&lt;/strong&gt; e isolada&lt;/li&gt;&#10;&lt;li&gt;Renovação automática do SSL&lt;/li&gt;&#10;&lt;li&gt;Cabeçalhos de segurança reforçados&lt;/li&gt;&#10;&lt;li&gt;Proteção adequada da pasta de dados&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Aproveite a sua nuvem privada e ultrarrápida!&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 🚀&lt;/p&gt;&#10;</description></item><item><title>Como deixar sua VPS mais segura contra exclusões acidentais</title><link>https://aquasp.blog/pt/how-to-make-your-vps-safer-against-accidental-deletions/</link><pubDate>Tue, 09 Dec 2025 00:31:57 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-make-your-vps-safer-against-accidental-deletions/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Você já apagou um arquivo ou uma pasta sem querer em uma VPS? Essa sensação é horrível. Às vezes você está trabalhando rápido e apaga um arquivo/pasta muito importante. Isso já aconteceu comigo. Hoje quero compartilhar com vocês uma ferramenta incrível: o &lt;code&gt;trash-cli&lt;/code&gt; . Ele adiciona uma lixeira na linha de comando para evitar esses erros humanos.&lt;/p&gt;&#10;&lt;h2 id="instalando-o-trash-cli"&gt;Instalando o trash-cli&#10;&lt;/h2&gt;&lt;p&gt;O &lt;code&gt;trash-cli&lt;/code&gt; é uma ferramenta de linha de comando leve, disponível nos repositórios do Debian, o que a torna ideal para VPSs com poucos recursos.&lt;/p&gt;&#10;&lt;h3 id="passos-da-instalação"&gt;Passos da instalação&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Atualize a sua lista de pacotes:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt update&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Instale o &lt;code&gt;trash-cli&lt;/code&gt;:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install trash-cli&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;&#10;&lt;li&gt;Confira a instalação:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;trash --version&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Se tudo foi instalado corretamente, você verá as informações da versão.&lt;/p&gt;&#10;&lt;p&gt;O processo é rápido e quase não pesa na sua VPS.&lt;/p&gt;&#10;&lt;h2 id="usando-o-trash-cli-para-apagar-com-mais-segurança"&gt;Usando o trash-cli para apagar com mais segurança&#10;&lt;/h2&gt;&lt;p&gt;Depois de instalado, o &lt;code&gt;trash-cli&lt;/code&gt; oferece comandos para gerenciar arquivos com segurança. Ele move os itens para &lt;code&gt;~/.local/share/Trash/&lt;/code&gt; em vez de apagá-los.&lt;/p&gt;&#10;&lt;h3 id="comandos-básicos"&gt;Comandos básicos&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Mandar um arquivo ou diretório para a lixeira&lt;/strong&gt;: &lt;code&gt;trash file.txt&lt;/code&gt; ou &lt;code&gt;trash directory&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Listar os itens na lixeira&lt;/strong&gt;: &lt;code&gt;trash-list&lt;/code&gt; (mostra os arquivos com as datas de exclusão).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Restaurar itens&lt;/strong&gt;: &lt;code&gt;trash-restore&lt;/code&gt; (menu interativo para escolher e recuperar arquivos).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Esvaziar a lixeira&lt;/strong&gt;: &lt;code&gt;trash-empty&lt;/code&gt; (apaga permanentemente todos os itens da lixeira).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Esvaziar itens antigos&lt;/strong&gt;: &lt;code&gt;trash-empty 30&lt;/code&gt; (apaga itens com mais de 30 dias).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Exemplo de fluxo de trabalho:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;trash important_file.txt # Move to trash&#10;trash-list # Check what&amp;#39;s there&#10;trash-restore # Recover if needed&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Isso substitui o uso arriscado do &lt;code&gt;rm&lt;/code&gt; no dia a dia.&lt;/p&gt;&#10;&lt;h2 id="criando-um-alias-do-rm-para-usar-o-trash-cli"&gt;Criando um alias do rm para usar o trash-cli&#10;&lt;/h2&gt;&lt;p&gt;Para deixar o &lt;code&gt;rm&lt;/code&gt; mais seguro por padrão, crie um alias dele para o &lt;code&gt;trash&lt;/code&gt; na configuração do seu shell. Assim, a maioria das exclusões vai para a lixeira.&lt;/p&gt;&#10;&lt;h3 id="configurando-o-alias"&gt;Configurando o alias&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Edite o seu arquivo &lt;code&gt;~/.bashrc&lt;/code&gt;:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Adicione esta linha no final:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;alias rm=&amp;#39;trash&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="3"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Salve e saia (Ctrl+X, Y, Enter).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Recarregue a configuração:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;source ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora, &lt;code&gt;rm file.txt&lt;/code&gt; vai usar o &lt;code&gt;trash&lt;/code&gt; em vez de apagar permanentemente.&lt;/p&gt;&#10;&lt;h2 id="automatizando-o-esvaziamento-da-lixeira-com-o-cron"&gt;Automatizando o esvaziamento da lixeira com o cron&#10;&lt;/h2&gt;&lt;p&gt;Para a lixeira não acumular indefinidamente, automatize o esvaziamento com uma tarefa no cron.&lt;/p&gt;&#10;&lt;h3 id="configurando-o-esvaziamento-semanal"&gt;Configurando o esvaziamento semanal&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Edite o seu crontab:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -e&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;&#10;&lt;li&gt;Adicione esta linha para a exclusão semanal (por exemplo, todo domingo às 2h da manhã):&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;0 2 * * 0 /usr/bin/trash-empty&#10;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;0 2 * * 0&lt;/code&gt;: domingo às 2h da manhã.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;/usr/bin/trash-empty&lt;/code&gt;: limpa toda a lixeira.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="3"&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Salve e saia.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Confira:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -l&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ajuste o agendamento como precisar (por exemplo, troque &lt;code&gt;0&lt;/code&gt; por &lt;code&gt;1-6&lt;/code&gt; para os dias de semana). Para esvaziar só uma parte, use &lt;code&gt;trash-empty 30&lt;/code&gt; para apagar os itens com mais de 30 dias.&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;Instalando o &lt;code&gt;trash-cli&lt;/code&gt;, criando um alias do &lt;code&gt;rm&lt;/code&gt; para o &lt;code&gt;trash&lt;/code&gt; e configurando o esvaziamento automático, você deixa sua VPS muito mais segura contra exclusões acidentais. Essa abordagem adiciona uma camada recuperável sem sacrificar o desempenho. Lembre-se de combiná-la com backups regulares e cuidado ao usar comandos. Se você é novo na administração de VPS, comece aos poucos e teste bem. Para configurações mais avançadas, explore a integração com ferramentas de monitoramento. Fique seguro por aí!&lt;/p&gt;&#10;</description></item><item><title>Como deixar sua VPS segura</title><link>https://aquasp.blog/pt/how-to-make-your-vps-secure/</link><pubDate>Tue, 09 Dec 2025 00:30:29 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-make-your-vps-secure/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Se você acabou de comprar uma VPS e está começando a hospedar seus próprios serviços, esta é uma das &lt;strong&gt;melhorias de segurança mais importantes&lt;/strong&gt; que você pode fazer.&lt;/p&gt;&#10;&lt;p&gt;Ao trocar para autenticação por chave SSH e desativar o login por senha, seu servidor fica praticamente imune a ataques de força bruta — mesmo que alguém descubra sua senha ou que você ainda esteja usando a porta padrão 22.&lt;/p&gt;&#10;&lt;h2 id="passo-1-gere-um-par-de-chaves-ssh-na-sua-máquina-local"&gt;Passo 1: Gere um par de chaves SSH na sua máquina local&#10;&lt;/h2&gt;&lt;h3 id="linux-e-macos"&gt;Linux e macOS&#10;&lt;/h3&gt;&lt;p&gt;Abra um terminal e rode:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-keygen -t rsa -b &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ou (formato mais novo, recomendado):&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-keygen -t ed25519&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Aperte Enter para aceitar o local padrão do arquivo e &lt;strong&gt;deixe a senha da chave (passphrase) em branco&lt;/strong&gt; (é só apertar Enter duas vezes).&lt;/p&gt;&#10;&lt;p&gt;Suas chaves serão salvas como:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Chave privada: ~/.ssh/id_rsa ou ~/.ssh/id_ed25519&lt;/li&gt;&#10;&lt;li&gt;Chave pública: ~/.ssh/id_rsa.pub ou ~/.ssh/id_ed25519.pub&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Nunca compartilhe a chave privada!&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h3 id="windows-powershell"&gt;Windows (PowerShell)&#10;&lt;/h3&gt;&lt;p&gt;Abra o PowerShell e rode:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-keygen.exe -t ed25519&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(ou -t rsa -b 4096 se o ed25519 não for suportado)&lt;/p&gt;&#10;&lt;p&gt;Aperte Enter em todas as perguntas (sem passphrase). As chaves serão criadas em C:\Users\YourUser.ssh\&lt;/p&gt;&#10;&lt;h2 id="passo-2-copie-sua-chave-pública-para-a-vps"&gt;Passo 2: Copie sua chave pública para a VPS&#10;&lt;/h2&gt;&lt;h3 id="linux-e-macos-método-mais-fácil"&gt;Linux e macOS (método mais fácil)&#10;&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-copy-id user@your-vps-ip&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Troque user e your-vps-ip pelo seu nome de usuário e pelo IP do servidor.&lt;/p&gt;&#10;&lt;h3 id="windows"&gt;Windows&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Cole sua chave pública (é uma linha longa que começa com ssh-ed25519 ou ssh-rsa) → salve com &lt;strong&gt;Ctrl+O → Enter → Ctrl+X&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Teste: abra um terminal/PowerShell &lt;strong&gt;novo&lt;/strong&gt; e tente entrar. Deve funcionar &lt;strong&gt;sem pedir senha&lt;/strong&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Edite o arquivo: (Bash)&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano ~/.ssh/authorized_keys&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Crie a pasta .ssh e o arquivo authorized_keys (se ainda não existirem): (Bash)&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir -p ~/.ssh&#10;chmod 700 ~/.ssh&#10;touch ~/.ssh/authorized_keys&#10;chmod 600 ~/.ssh/authorized_keys&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Entre na sua VPS normalmente (com senha): (PowerShell)&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh user@your-vps-ip&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Copie sua chave pública para a área de transferência: (PowerShell)&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Get-Content $HOME\.ssh\id_ed25519.pub | Set-Clipboard&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(ou id_rsa.pub se você usou RSA)&lt;/p&gt;&#10;&lt;h2 id="passo-3-desative-a-autenticação-por-senha"&gt;Passo 3: Desative a autenticação por senha&#10;&lt;/h2&gt;&lt;p&gt;Agora que o login com chave funciona, desative completamente o login por senha.&lt;/p&gt;&#10;&lt;p&gt;Entre na sua VPS (usando sua chave) e edite a configuração do SSH:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /etc/ssh/sshd_config&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Encontre e altere (ou adicione) estas linhas:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;PasswordAuthentication no&#10;ChallengeResponseAuthentication no&#10;UsePAM no&#10;PubkeyAuthentication yes&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Salve e saia.&lt;/p&gt;&#10;&lt;p&gt;Reinicie o serviço SSH:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo systemctl restart sshd&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(ou sudo service ssh restart em sistemas mais antigos)&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Teste final&lt;/strong&gt;: tente entrar a partir de um terminal novo. Só deve funcionar com a sua chave privada — tentativas com senha serão recusadas na hora.&lt;/p&gt;&#10;&lt;h2 id="pronto"&gt;Pronto!&#10;&lt;/h2&gt;&lt;p&gt;Agora sua VPS está protegida contra:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Ataques de força bruta&lt;/li&gt;&#10;&lt;li&gt;Credential stuffing (uso de senhas vazadas em massa)&lt;/li&gt;&#10;&lt;li&gt;Senhas fracas ou vazadas&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Mesmo que um invasor saiba seu usuário e sua senha, ele &lt;strong&gt;não consegue entrar&lt;/strong&gt; sem o arquivo da sua chave privada.&lt;/p&gt;&#10;&lt;p&gt;Dica de mestre: guarde um backup da sua chave privada em local seguro e considere adicionar uma passphrase depois, usando ssh-keygen -p.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 😊&lt;/p&gt;&#10;</description></item><item><title>Como remover os limites de upload do All In One WP Migration</title><link>https://aquasp.blog/pt/how-to-remove-upload-limits-on-all-in-one-wp-migration/</link><pubDate>Tue, 09 Dec 2025 00:25:04 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-remove-upload-limits-on-all-in-one-wp-migration/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Infelizmente, muitas hospedagens impõem limites de upload bem baixos (às vezes só 2–50 MB), e a Unlimited Extension oficial custa US$ 69.&lt;/p&gt;&#10;&lt;p&gt;Se você está nessa situação e precisa de um jeito gratuito de enviar backups enormes (10 GB, 40 GB ou mais), este truque simples vai ajudar.&lt;/p&gt;&#10;&lt;h2 id="a-solução-use-o-plugin-big-file-uploads"&gt;A solução: use o plugin &amp;ldquo;Big File Uploads&amp;rdquo;&#10;&lt;/h2&gt;&lt;p&gt;A versão gratuita do All-in-One WP Migration não limita os uploads artificialmente — ela só respeita o limite que a sua hospedagem ou servidor impõe. A Unlimited Extension paga funciona dividindo o arquivo &lt;code&gt;.wpress&lt;/code&gt; em pedaços menores durante o upload.&lt;/p&gt;&#10;&lt;p&gt;A boa notícia: existe um plugin totalmente gratuito que faz exatamente o mesmo truque de dividir em pedaços!&lt;/p&gt;&#10;&lt;h3 id="guia-passo-a-passo"&gt;Guia passo a passo&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Instale e ative o plugin chamado &lt;strong&gt;Big File Uploads&lt;/strong&gt;&#10;→ Link direto: &lt;a class="link" href="https://wordpress.org/plugins/tuxedo-big-file-uploads/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://wordpress.org/plugins/tuxedo-big-file-uploads/&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;Depois de ativar, vá em:&#10;&lt;strong&gt;Configurações → Big File Uploads&lt;/strong&gt;&#10;(ou encontre na página de Plugins → link “Configurações” embaixo do nome do plugin)&lt;/li&gt;&#10;&lt;li&gt;Você verá o tamanho máximo de upload atual (no começo, ele será igual ao limite padrão da sua hospedagem).&lt;/li&gt;&#10;&lt;li&gt;Mude para o valor que quiser:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;1 GB = 1024 MB&lt;/li&gt;&#10;&lt;li&gt;10 GB = 10240 MB&lt;/li&gt;&#10;&lt;li&gt;40 GB = 40960 MB&#10;(Basta digitar o número em megabytes — não precisa colocar “MB” nem “GB”)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol start="5"&gt;&#10;&lt;li&gt;Clique em &lt;strong&gt;Salvar alterações&lt;/strong&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Pronto! O novo limite vale na hora.&lt;/p&gt;&#10;&lt;p&gt;Agora, quando você voltar em &lt;strong&gt;All-in-One WP Migration → Importar&lt;/strong&gt;, o tamanho máximo de arquivo vai mostrar o novo valor (até 40 GB ou mais funciona perfeitamente).&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;Isto &lt;strong&gt;não&lt;/strong&gt; é um ataque à ServMask — eles criaram um plugin incrível e merecem todo o apoio. Se você puder pagar, compre a Unlimited Extension oficial.&lt;/p&gt;&#10;&lt;p&gt;Mas, se o orçamento estiver apertado e você só precisa migrar ou restaurar um site enorme uma ou duas vezes, o plugin &lt;strong&gt;Big File Uploads&lt;/strong&gt; é uma alternativa 100% gratuita e confiável, que funciona perfeitamente com a versão gratuita do All-in-One WP Migration.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 🙂&lt;/p&gt;&#10;</description></item><item><title>Como rodar o seu próprio nó de Monero</title><link>https://aquasp.blog/pt/how-to-run-your-own-monero-node/</link><pubDate>Tue, 09 Dec 2025 00:07:50 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-run-your-own-monero-node/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Na minha opinião, o Monero é uma das criptomoedas mais importantes. Ele não tem a mesma participação de mercado que o Bitcoin, mas é bem único em um aspecto: &lt;strong&gt;privacidade&lt;/strong&gt;. O Monero é igualzinho a dinheiro vivo — ninguém precisa saber quanto Monero foi enviado nem quem enviou. Nesse ponto, ele é o oposto do Bitcoin. Na verdade, quando o assunto é privacidade, o Bitcoin é &lt;strong&gt;pior que o dinheiro fiduciário&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Você pode ler mais detalhes aqui:&#10;&lt;a class="link" href="https://lukesmith.xyz/articles/monero-maximalism-or-how-bitcoin-is-a-coin/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://lukesmith.xyz/articles/monero-maximalism-or-how-bitcoin-is-a-coin/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Obs.:&lt;/strong&gt; eu &lt;strong&gt;NÃO&lt;/strong&gt; estou recomendando que ninguém invista em Monero. O Monero foi feito para ser uma moeda, mas, como as criptomoedas ainda são extremamente voláteis, muita gente o trata como investimento. Faça sua própria pesquisa — não me responsabilizo por nenhum investimento que você fizer.&lt;/p&gt;&#10;&lt;h2 id="1-escolha-uma-vps-ou-monte-em-casa"&gt;1. Escolha uma VPS ou monte em casa&#10;&lt;/h2&gt;&lt;p&gt;Antes de tudo, você vai precisar de um servidor. Pode usar o seu próprio PC de casa, se preferir, ou uma VPS. A VPS é mais fácil, porque fica online 24/7 e você sempre consegue abrir as portas necessárias.&lt;/p&gt;&#10;&lt;p&gt;Em casa, muitos provedores bloqueiam as portas de entrada, então o seu nó não seria público (ele ainda ajudaria a rede, mas você não conseguiria se conectar a ele de fora com facilidade sem algo como o ngrok).&lt;/p&gt;&#10;&lt;p&gt;Eu, pessoalmente, recomendo a &lt;strong&gt;Contabo&lt;/strong&gt; para rodar um nó de Monero, porque eles têm ótimos preços nos planos de VPS de armazenamento.&#10;Veja os preços aqui: &lt;a class="link" href="https://contabo.com/en/storage-vps/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Contabo Storage VPS&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;A &lt;strong&gt;Storage VPS S&lt;/strong&gt; é mais que suficiente. Hoje a blockchain do Monero ocupa cerca de 175 GB, usa menos de 2 GB de RAM e quase nada de CPU depois de totalmente sincronizada (~3 % de uso).&lt;/p&gt;&#10;&lt;h2 id="2-protegendo-a-vps"&gt;2. Protegendo a VPS&#10;&lt;/h2&gt;&lt;p&gt;Antes de tudo, &lt;strong&gt;desative o login por senha&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Depois, instale e configure o UFW (se ainda não estiver configurado):&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install ufw&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw default deny incoming&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw default allow outgoing&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw allow ssh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw allow &lt;span style="color:#ae81ff"&gt;18080&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw allow &lt;span style="color:#ae81ff"&gt;18089&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw enable&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-criando-um-usuário-dedicado"&gt;3. Criando um usuário dedicado&#10;&lt;/h2&gt;&lt;p&gt;Por segurança, nunca rode o Monero como root. Em vez disso, crie um usuário normal:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;adduser monerouser&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Defina uma senha e aperte Enter no resto das perguntas.&lt;/p&gt;&#10;&lt;h2 id="4-mudando-as-configurações-e-sincronizando-o-nó"&gt;4. Mudando as configurações e sincronizando o nó&#10;&lt;/h2&gt;&lt;p&gt;Troque para o novo usuário:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;su monerouser&#10;cd ~&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Baixe os binários oficiais do Monero CLI (Linux 64 bits):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;wget -c https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.3.4.tar.bz2&#10;mkdir monero&#10;tar -xjvf monero-linux-x64-v0.18.3.4.tar.bz2 -C monero --strip-components=1&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Se precisar, troque a versão na URL/no nome do arquivo pela mais recente em &lt;a class="link" href="https://getmonero.org/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://getmonero.org&lt;/a&gt;.)&lt;/p&gt;&#10;&lt;p&gt;Entre na pasta e inicie o monerod uma vez só para criar os arquivos de configuração (pare depois de alguns segundos com Ctrl+C):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;cd monero&#10;./monerod&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora edite o arquivo de configuração:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano ~/.bitmonero/bitmonero.conf&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cole as configurações recomendadas a seguir:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# P2P full node&#10;public-node=true # Advertises the RPC-restricted port over p2p&#10;&#10;# RPC settings&#10;rpc-restricted-bind-ip=0.0.0.0&#10;rpc-restricted-bind-port=18089&#10;&#10;# Node settings&#10;enforce-dns-checkpointing=true&#10;db-sync-mode=safe # Slow but reliable db writes&#10;enable-dns-blocklist=true # Block known-malicious nodes&#10;no-igd=true # Disable UPnP&#10;no-zmq=true&#10;&#10;# Bandwidth settings (much faster sync + better contribution)&#10;out-peers=32&#10;in-peers=32&#10;limit-rate-up=1048576 # 1 GB/s upload&#10;limit-rate-down=1048576 # 1 GB/s download&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Salve com &lt;strong&gt;Ctrl+O → Enter → Ctrl+X&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Inicie o nó em modo destacado (em segundo plano):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;./monerod --detach&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pronto! Agora é só esperar ele sincronizar por completo.&lt;/p&gt;&#10;&lt;p&gt;Confira o status da sincronização quando quiser com:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;./monerod status&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A sincronização inicial costuma levar algumas horas, dependendo da sua conexão e da velocidade da VPS.&lt;/p&gt;&#10;&lt;p&gt;Depois de totalmente sincronizado, você pode conectar qualquer carteira Monero (Cake Wallet, Monero GUI, Feather etc.) ao seu próprio nó usando o IP da sua VPS e a porta &lt;strong&gt;18089&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="conclusão-e-créditos"&gt;Conclusão e créditos&#10;&lt;/h2&gt;&lt;p&gt;É só isso! A comunidade do Monero incentiva muito que cada um rode o próprio nó completo. Isso deixa a rede mais descentralizada e dá a você o máximo de privacidade.&lt;/p&gt;&#10;&lt;p&gt;Este guia não teria sido possível sem estes excelentes materiais:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://www.getmonero.org/resources/user-guides/vps_run_node.html?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://www.getmonero.org/resources/user-guides/vps_run_node.html&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://www.coincashew.com/coins/overview-xmr/guide-or-how-to-run-a-full-node?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://www.coincashew.com/coins/overview-xmr/guide-or-how-to-run-a-full-node&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Obrigado pela leitura! 🙂&lt;/p&gt;&#10;</description></item><item><title>Como hospedar sua própria instância do Piped</title><link>https://aquasp.blog/pt/how-to-self-host-your-own-piped-instance/</link><pubDate>Mon, 08 Dec 2025 23:58:10 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-self-host-your-own-piped-instance/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;O Piped é um front-end alternativo e de código aberto para o YouTube, focado em privacidade. Sem rastreamento do Google, sem anúncios (nem nos vídeos que normalmente têm anúncios que não dá para pular), e funciona perfeitamente com o SponsorBlock e o DeArrow.&lt;/p&gt;&#10;&lt;p&gt;Hospedar sua própria instância com Docker é incrivelmente fácil e leva menos de 20 minutos.&lt;/p&gt;&#10;&lt;h2 id="requisitos"&gt;Requisitos&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Um domínio (ou subdomínio)&lt;/li&gt;&#10;&lt;li&gt;Uma VPS KVM barata com suporte a Docker (evite OpenVZ — kernel antigo)&lt;/li&gt;&#10;&lt;li&gt;~US$ 3–6/mês é mais que suficiente (1 CPU, 1–2 GB de RAM)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Ótimos provedores baratos em 2025:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;RackNerd&lt;/li&gt;&#10;&lt;li&gt;Hostinger (meu link de afiliado, se quiser apoiar: &lt;a class="link" href="https://hostinger.com.br/?REFERRALCODE=waterdownfall&amp;amp;ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://hostinger.com.br?REFERRALCODE=waterdownfall&lt;/a&gt;)&lt;/li&gt;&#10;&lt;li&gt;Cloudcone, Hetzner Cloud, BuyVM etc.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="passo-1-proteja-e-prepare-sua-vps"&gt;Passo 1: Proteja e prepare sua VPS&#10;&lt;/h2&gt;&lt;p&gt;(Só chaves SSH, firewall etc. — faça isso primeiro!)&lt;/p&gt;&#10;&lt;p&gt;Depois, instale o Docker (exemplo para Ubuntu/Debian):&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y ca-certificates curl gnupg lsb-release&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Add Docker repo&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /etc/apt/keyrings&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;deb [arch=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;dpkg --print-architecture&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt; signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;lsb_release -cs&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt; stable&amp;#34;&lt;/span&gt; &amp;gt; /etc/apt/sources.list.d/docker.list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="passo-2-implante-o-piped-com-a-configuração-oficial-em-docker"&gt;Passo 2: Implante o Piped com a configuração oficial em Docker&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;cd /opt&#10;git clone https://github.com/TeamPiped/Piped-Docker&#10;cd Piped-Docker&#10;./configure-instance.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Durante o script:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Escolha o &lt;strong&gt;Caddy&lt;/strong&gt; como proxy reverso (o mais fácil, com SSL automático)&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Informe seu domínio e os subdomínios:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Frontend → piped.yourdomain.com&lt;/li&gt;&#10;&lt;li&gt;API do backend → pipedapi.yourdomain.com&lt;/li&gt;&#10;&lt;li&gt;Proxy → pipedproxy.yourdomain.com&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="passo-3-aponte-o-dns-para-sua-vps"&gt;Passo 3: Aponte o DNS para sua VPS&#10;&lt;/h2&gt;&lt;p&gt;Crie três registros A no seu provedor de DNS:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;piped.yourdomain.com → VPS_IP&#10;pipedapi.yourdomain.com → VPS_IP&#10;pipedproxy.yourdomain.com → VPS_IP&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-4-suba-tudo"&gt;Passo 4: Suba tudo&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;docker compose up -d&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pronto!&#10;Depois que o DNS propagar (normalmente em menos de 10 minutos), o seu YouTube privado estará no ar em:&lt;/p&gt;&#10;&lt;p&gt;&lt;a class="link" href="https://piped.yourdomain.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://piped.yourdomain.com&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;O Caddy cuida automaticamente do SSL gratuito do Let’s Encrypt — sem precisar mexer no certbot manualmente.&lt;/p&gt;&#10;&lt;h2 id="passo-5-opcional-confira-os-logs"&gt;Passo 5: (Opcional) Confira os logs&#10;&lt;/h2&gt;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# See what Caddy is doing&#10;docker logs -f caddy&#10;&#10;# Or any other container&#10;docker logs -f piped-frontend&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="dicas-bônus"&gt;Dicas bônus&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;Quer deixar pública? É só compartilhar a URL — qualquer pessoa pode usar a sua instância.&lt;/li&gt;&#10;&lt;li&gt;Quer deixar privada? Bloqueie com regras de firewall do Cloudflare ou com autenticação básica no Caddy.&lt;/li&gt;&#10;&lt;li&gt;Use junto com o app &lt;strong&gt;LibreTube&lt;/strong&gt; (Android) para ter a experiência completa sem Google.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Agora você tem o seu próprio YouTube sem anúncios, sem rastreamento e com SponsorBlock — totalmente sob o seu controle.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura!&lt;/p&gt;&#10;</description></item><item><title>Como configurar o GRUB para dual boot no Ubuntu 23.10 (solução)</title><link>https://aquasp.blog/pt/how-to-setup-grub-for-dual-boot-on-ubuntu-23-10-fix/</link><pubDate>Mon, 08 Dec 2025 23:53:06 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-setup-grub-for-dual-boot-on-ubuntu-23-10-fix/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Menu do GRUB não aparece → Windows não aparece na inicialização&lt;/p&gt;&#10;&lt;p&gt;Acabou de instalar o Xubuntu (ou Ubuntu) 23.10 junto com o Windows e agora ele entra direto no Linux sem mostrar o menu do GRUB?&#10;Calma — esse é o novo comportamento padrão. A partir das versões recentes do Ubuntu, o &lt;code&gt;GRUB_TIMEOUT_STYLE&lt;/code&gt; vem definido como hidden e o tempo de espera é de 0 segundos, então o menu é pulado por completo, a menos que você segure Shift durante a inicialização.&lt;/p&gt;&#10;&lt;p&gt;Aqui está a solução definitiva em duas linhas.&lt;/p&gt;&#10;&lt;h2 id="a-solução-leva-30-segundos"&gt;A solução (leva 30 segundos)&#10;&lt;/h2&gt;&lt;p&gt;Abra um terminal e edite a configuração do GRUB:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/default/grub&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Garanta que estas linhas estejam presentes e exatamente assim (adicione-as se estiverem faltando):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;GRUB_TIMEOUT_STYLE=menu&#10;GRUB_TIMEOUT=10&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Opcional, mas recomendado — deixe o menu mais bonito e 100% confiável:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;GRUB_TERMINAL=console&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Exemplo completo da seção relevante:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;# Show the GRUB menu every time&#10;GRUB_TIMEOUT_STYLE=menu&#10;GRUB_TIMEOUT=10 # seconds to wait before auto-booting the default entry&#10;GRUB_TERMINAL=console&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Salve (Ctrl+O → Enter → Ctrl+X) e atualize o GRUB:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo update-grub&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reinicie e agora você verá o menu completo do GRUB, com o Ubuntu/Xubuntu e o Windows listados.&#10;Você pode trocar o 10 por qualquer número que quiser (ou até -1 para esperar indefinidamente até você escolher uma opção).&lt;/p&gt;&#10;&lt;h2 id="por-que-isso-acontece"&gt;Por que isso acontece&#10;&lt;/h2&gt;&lt;p&gt;A Canonical decidiu esconder o menu por padrão para ter uma inicialização &amp;ldquo;mais limpa&amp;rdquo; em máquinas com um único sistema operacional.&#10;Para quem usa dual boot, isso só atrapalha — esta solução restaura o comportamento clássico de forma permanente.&lt;/p&gt;&#10;&lt;p&gt;É só isso — aproveite de novo o acesso fácil aos dois sistemas operacionais!&lt;/p&gt;&#10;&lt;p&gt;(Solução original da comunidade do AskUbuntu)&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura!&lt;/p&gt;&#10;</description></item><item><title>Como instalar o WordPress em LEMP com Redis e WP-CLI no Debian 11</title><link>https://aquasp.blog/pt/how-to-setup-wordpress-on-lemp-with-redis-and-wp-cli-on-debian-11/</link><pubDate>Mon, 08 Dec 2025 23:47:36 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-setup-wordpress-on-lemp-with-redis-and-wp-cli-on-debian-11/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Este é o jeito mais rápido, mais seguro e que mais economiza recursos para hospedar o WordPress por conta própria em 2025.&#10;Vamos usar uma stack LEMP de verdade (Linux + Nginx + MySQL/MariaDB + PHP-FPM) com isolamento de PHP por site, cache de objetos com Redis, SSL automático e WP-CLI — tudo ajustado para velocidade e segurança.&lt;/p&gt;&#10;&lt;p&gt;Vamos lá.&lt;/p&gt;&#10;&lt;h2 id="passo-0-proteja-e-atualize-sua-vps"&gt;Passo 0: Proteja e atualize sua VPS&#10;&lt;/h2&gt;&lt;p&gt;(Se ainda não fez isso, siga primeiro um guia de proteção de VPS — só chaves SSH, firewall, fail2ban etc.)&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt autoremove --purge&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;reboot&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="passo-1-instale-a-stack-principal"&gt;Passo 1: Instale a stack principal&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# Nginx&#10;apt install nginx -y&#10;systemctl enable nginx&#10;&#10;# MariaDB (better than MySQL on Debian)&#10;apt install mariadb-server -y&#10;systemctl enable mariadb&#10;&#10;# PHP 8.3 + all needed extensions (using ondrej/sury repo)&#10;apt install ca-certificates apt-transport-https lsb-release -y&#10;wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor &amp;gt; /usr/share/keyrings/sury-php.gpg&#10;echo &amp;#34;deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main&amp;#34; &amp;gt; /etc/apt/sources.list.d/sury-php.list&#10;apt update&#10;apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip php8.3-intl php8.3-imagick php8.3-redis -y&#10;systemctl enable php8.3-fpm&#10;&#10;# Redis&#10;curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg&#10;echo &amp;#34;deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main&amp;#34; &amp;gt; /etc/apt/sources.list.d/redis.list&#10;apt update &amp;amp;&amp;amp; apt install redis-server -y&#10;systemctl enable redis-server&#10;&#10;# Certbot + WP-CLI&#10;apt install python3-certbot-nginx -y&#10;curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar&#10;chmod +x wp-cli.phar &amp;amp;&amp;amp; mv wp-cli.phar /usr/local/bin/wp&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-2-proteja-o-mariadb-e-crie-o-banco-de-dados"&gt;Passo 2: Proteja o MariaDB e crie o banco de dados&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;mysql_secure_installation&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;mysql -u root -p&#10;CREATE DATABASE wp_yoursite;&#10;CREATE USER &amp;#39;wp_yoursite&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;strongpassword&amp;#39;;&#10;GRANT ALL ON wp_yoursite.* TO &amp;#39;wp_yoursite&amp;#39;@&amp;#39;localhost&amp;#39;;&#10;FLUSH PRIVILEGES;&#10;EXIT;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-3-isole-o-php-fpm-por-site-segurança--estabilidade"&gt;Passo 3: Isole o PHP-FPM por site (segurança + estabilidade)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;cd /etc/php/8.3/fpm/pool.d/&#10;cp www.conf yoursite.conf&#10;nano yoursite.conf&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Substitua:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;[www] → [yoursite]&lt;/li&gt;&#10;&lt;li&gt;user = www-data → user = yoursiteuser (vamos criar esse usuário daqui a pouco)&lt;/li&gt;&#10;&lt;li&gt;group = www-data → group = yoursiteuser&lt;/li&gt;&#10;&lt;li&gt;listen = /run/php/php8.3-fpm.sock → listen = /run/php/php8.3-fpm-yoursite.sock&lt;/li&gt;&#10;&lt;li&gt;Mude o gerenciador de processos de dynamic → ondemand (economiza RAM)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart php8.3-fpm&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Vai falhar até o usuário existir — tudo bem.)&lt;/p&gt;&#10;&lt;h2 id="passo-4-otimize-o-php-e-ative-o-opcache"&gt;Passo 4: Otimize o PHP e ative o OPcache&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;sed -i &amp;#34;s/memory_limit = .*/memory_limit = 1024M/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/upload_max_filesize = .*/upload_max_filesize = 10240M/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/post_max_size = .*/post_max_size = 10240M/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/max_execution_time = .*/max_execution_time = 600/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/;opcache.enable=1/opcache.enable=1/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/;opcache.memory_consumption=.*/opcache.memory_consumption=512/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=20000/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;sed -i &amp;#34;s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/&amp;#34; /etc/php/8.3/fpm/php.ini&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-5-crie-o-usuário-do-sistema-e-o-diretório-do-site"&gt;Passo 5: Crie o usuário do sistema e o diretório do site&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;adduser yoursiteuser --shell /bin/bash&#10;su yoursiteuser&#10;mkdir ~/public_html &amp;amp;&amp;amp; cd ~/public_html&#10;echo &amp;#34;cd ~/public_html&amp;#34; &amp;gt;&amp;gt; ~/.bashrc&#10;exit&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-6-configuração-do-nginx-rápida-e-segura"&gt;Passo 6: Configuração do Nginx (rápida e segura)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;nano /etc/nginx/sites-available/yoursite.conf&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;upstream php-yoursite {&#10; server unix:/run/php/php8.3-fpm-yoursite.sock;&#10;}&#10;&#10;server {&#10; listen 80;&#10; listen [::]:80;&#10; server_name yourdomain.com www.yourdomain.com;&#10; root /home/yoursiteuser/public_html;&#10; index index.php index.html;&#10;&#10; client_max_body_size 10G;&#10;&#10; location / {&#10; try_files $uri $uri/ /index.php?$args;&#10; }&#10;&#10; location ~ \.php$ {&#10; include fastcgi_params;&#10; fastcgi_pass php-yoursite;&#10; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&#10; }&#10;&#10; location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?|ttf|eot)$ {&#10; expires max;&#10; log_not_found off;&#10; }&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;ln -s /etc/nginx/sites-available/yoursite.conf /etc/nginx/sites-enabled/&#10;nginx -t &amp;amp;&amp;amp; systemctl reload nginx&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-7-instale-o-wordpress-via-wp-cli-como-o-usuário-do-site"&gt;Passo 7: Instale o WordPress via WP-CLI (como o usuário do site)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;su yoursiteuser&#10;cd ~/public_html&#10;&#10;wp core download&#10;wp config create --dbname=wp_yoursite --dbuser=wp_yoursite --dbpass=&amp;#39;strongpassword&amp;#39; --locale=en_US&#10;wp core install --url=https://yourdomain.com --title=&amp;#34;Your Site&amp;#34; --admin_user=admin --admin_password=&amp;#39;strongpass&amp;#39; --admin_email=you@domain.com&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-8-ssl-com-lets-encrypt-renovação-automática"&gt;Passo 8: SSL com Let’s Encrypt (renovação automática)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;certbot --nginx -d yourdomain.com -d www.yourdomain.com&#10;# Choose redirect to HTTPS when asked&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione o cron de renovação automática:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;crontab -e&#10;# Add:&#10;0 0 * * 0 certbot renew --quiet&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-9-ative-o-cache-de-objetos-com-redis"&gt;Passo 9: Ative o cache de objetos com Redis&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# As root&#10;usermod -aG redis yoursiteuser&#10;chmod 770 /var/run/redis/redis-server.sock&#10;&#10;# Optimize Redis config&#10;sed -i &amp;#39;s/port 6379/port 0/&amp;#39; /etc/redis/redis.conf&#10;sed -i &amp;#39;s|# unixsocket /run/redis/redis-server.sock|unixsocket /var/run/redis/redis-server.sock|&amp;#39; /etc/redis/redis.conf&#10;sed -i &amp;#39;s/# unixsocketperm 700/unixsocketperm 770/&amp;#39; /etc/redis/redis.conf&#10;sed -i &amp;#39;s/# maxmemory .*/maxmemory 1024mb/&amp;#39; /etc/redis/redis.conf&#10;systemctl restart redis-server&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;# As yoursiteuser&#10;cd ~/public_html&#10;wp plugin install redis-cache --activate&#10;wp config set WP_REDIS_SCHEME unix&#10;wp config set WP_REDIS_PATH &amp;#39;/var/run/redis/redis-server.sock&amp;#39;&#10;wp redis enable&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="pronto"&gt;Pronto!&#10;&lt;/h2&gt;&lt;p&gt;Agora você tem:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Pool do PHP-FPM totalmente isolado (1 usuário = 1 site = nenhum estrago entre sites)&lt;/li&gt;&#10;&lt;li&gt;Cache de objetos com Redis via socket Unix&lt;/li&gt;&#10;&lt;li&gt;OPcache + limites de upload enormes&lt;/li&gt;&#10;&lt;li&gt;Renovação automática do SSL&lt;/li&gt;&#10;&lt;li&gt;O roteamento mais rápido possível no Nginx&lt;/li&gt;&#10;&lt;li&gt;WP-CLI pronto para usar&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;O seu wp-admin vai parecer instantâneo, e o site vai aguentar o tráfego como um campeão — mesmo numa VPS de US$ 5/mês.&lt;/p&gt;&#10;&lt;p&gt;Próximos passos:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Instale um plugin de cache de página (qualquer um gratuito serve)&lt;/li&gt;&#10;&lt;li&gt;Configure o Cloudflare (opcional, mas recomendado)&lt;/li&gt;&#10;&lt;li&gt;Backups regulares&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Aproveite o seu WordPress privado e ultrarrápido!&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 😊&lt;/p&gt;&#10;</description></item><item><title>Como montar o seu próprio servidor de e-mail</title><link>https://aquasp.blog/pt/how-to-setup-your-own-email-server/</link><pubDate>Mon, 08 Dec 2025 23:35:02 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-setup-your-own-email-server/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Quer ter o seu próprio e-mail ultraprivado, como &lt;a class="link" href="" &gt;name@yourdomain.com&lt;/a&gt;, com uma interface de webmail bonita?&#10;Este guia mostra como montar um servidor de e-mail completo em menos de uma hora usando o lendário script &lt;strong&gt;EmailWiz&lt;/strong&gt; do Luke Smith + o webmail &lt;strong&gt;Roundcube&lt;/strong&gt; — tudo numa VPS de US$ 2–3/mês.&lt;/p&gt;&#10;&lt;p&gt;Tudo é gratuito, de código aberto e 100% sob o seu controle.&lt;/p&gt;&#10;&lt;h2 id="passo-0-arrume-uma-vps-barata"&gt;Passo 0: Arrume uma VPS barata&#10;&lt;/h2&gt;&lt;p&gt;Bons provedores com promoções frequentes:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Contabo&lt;/li&gt;&#10;&lt;li&gt;Seção “Offers” do LowEndTalk&lt;/li&gt;&#10;&lt;li&gt;Hostinger (meu link de afiliado, se quiser me apoiar -&amp;gt; &lt;a class="link" href="https://hostinger.com.br/?REFERRALCODE=waterdownfall&amp;amp;ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://hostinger.com.br?REFERRALCODE=waterdownfall&lt;/a&gt;)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Requisitos:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Qualquer localização (EUA funciona bem)&lt;/li&gt;&#10;&lt;li&gt;Debian 10 ou 11 (vamos usar o Debian 10 neste guia)&lt;/li&gt;&#10;&lt;li&gt;Pelo menos 1 GB de RAM (2 GB ou mais recomendado)&lt;/li&gt;&#10;&lt;li&gt;Defina o hostname no cadastro como o seu domínio (por exemplo, sobremail.com)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Espere a implantação → pegue a senha de root no e-mail → entre via SSH.&lt;/p&gt;&#10;&lt;h2 id="passo-1-proteção-básica-da-vps"&gt;Passo 1: Proteção básica da VPS&#10;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@your-vps-ip&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade -y&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Troque a senha de root:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;passwd&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Crie e envie uma chave SSH (faça isso a partir da sua máquina local):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-copy-id root@your-vps-ip&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora desative o login por senha:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano /etc/ssh/sshd_config&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Altere:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;PasswordAuthentication no&#10;UsePAM no&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Depois:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart sshd&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora só a sua chave SSH funciona — muito mais seguro.&lt;/p&gt;&#10;&lt;h2 id="passo-2-instale-o-emailwiz-o-script-mágico"&gt;Passo 2: Instale o EmailWiz (o script mágico)&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;apt install curl nginx python3-certbot-nginx -y&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Aponte estes registros DNS para o IP da sua VPS:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;yourdomain.com → IP da VPS (registro A)&lt;/li&gt;&#10;&lt;li&gt;mail.yourdomain.com → IP da VPS (registro A)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Rode o script do Luke:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;curl -LO lukesmith.xyz/emailwiz.sh&#10;sh emailwiz.sh&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Siga as perguntas:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Responda Yes/Y para tudo&lt;/li&gt;&#10;&lt;li&gt;Quando pedir o “System mail name” → digite SÓ yourdomain.com (NÃO mail.yourdomain.com!)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Espere ~5–10 minutos. Quando terminar, ele te dá três registros DNS para adicionar:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Registro TXT do DKIM (mail._domainkey.yourdomain.com)&lt;/li&gt;&#10;&lt;li&gt;Registro TXT do DMARC (_dmarc.yourdomain.com)&lt;/li&gt;&#10;&lt;li&gt;Registro TXT do SPF (domínio raiz)&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Adicione-os no seu provedor de DNS (Cloudflare, Namecheap etc.).&lt;/p&gt;&#10;&lt;h2 id="passo-3-configure-o-dns-reverso-essencial-para-a-entregabilidade"&gt;Passo 3: Configure o DNS reverso (essencial para a entregabilidade!)&#10;&lt;/h2&gt;&lt;p&gt;No painel da Cloudcone → Networking → rDNS → defina como yourdomain.com&#10;&lt;strong&gt;NÃO ative o IPv6&lt;/strong&gt; (a Cloudcone ainda não suporta rDNS em IPv6 — isso vai prejudicar a entregabilidade).&lt;/p&gt;&#10;&lt;h2 id="passo-4-crie-sua-primeira-caixa-de-e-mail"&gt;Passo 4: Crie sua primeira caixa de e-mail&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;useradd -G mail -m yourusername&#10;passwd yourusername&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Agora o seu e-mail é: &lt;a class="link" href="mailto:yourusername@yourdomain.com" &gt;yourusername@yourdomain.com&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;Teste no Thunderbird/cliente IMAP:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;IMAP: mail.yourdomain.com (porta 993, SSL/TLS)&lt;/li&gt;&#10;&lt;li&gt;SMTP: mail.yourdomain.com (porta 465, SSL/TLS)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="passo-5-instale-o-webmail-roundcube"&gt;Passo 5: Instale o webmail Roundcube&#10;&lt;/h2&gt;&lt;p&gt;Adicione o backports + o repositório do PHP 8.x:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2&#10;echo &amp;#34;deb https://packages.sury.org/php/ $(lsb_release -sc) main&amp;#34; | tee /etc/apt/sources.list.d/sury-php.list&#10;wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -&#10;apt update&#10;apt install -y php8.0-fpm php8.0-common php8.0-gd php8.0-imap php8.0-mysql php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-intl mariadb-server&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Proteja o MySQL:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;mysql_secure_installation&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Crie o banco de dados do Roundcube:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;mysql -u root -p&#10;CREATE DATABASE roundcube;&#10;CREATE USER &amp;#39;roundcubeuser&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED BY &amp;#39;strongpassword&amp;#39;;&#10;GRANT ALL ON roundcube.* TO &amp;#39;roundcubeuser&amp;#39;@&amp;#39;localhost&amp;#39;;&#10;FLUSH PRIVILEGES;&#10;EXIT;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Baixe e extraia o Roundcube (a versão completa mais recente):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;cd /var/www&#10;wget https://github.com/roundcube/roundcubemail/releases/download/1.6.9/roundcubemail-1.6.9-complete.tar.gz&#10;tar xvf roundcubemail-1.6.9-complete.tar.gz&#10;mv roundcubemail-1.6.9 roundcube&#10;rm roundcubemail-1.6.9-complete.tar.gz&#10;chown -R www-data:www-data /var/www/roundcube/temp /var/www/roundcube/logs&#10;mysql roundcube &amp;lt; /var/www/roundcube/SQL/mysql.initial.sql&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Configuração do Nginx para o Roundcube (/etc/nginx/sites-enabled/roundcube):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;server {&#10; listen 80;&#10; listen [::]:80;&#10; server_name yourdomain.com;&#10; root /var/www/roundcube;&#10; index index.php;&#10;&#10; location / {&#10; try_files $uri $uri/ /index.php;&#10; }&#10;&#10; location ~ \.php$ {&#10; include fastcgi_params;&#10; fastcgi_pass unix:/run/php/php8.0-fpm.sock;&#10; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&#10; }&#10;&#10; location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {&#10; expires 360d;&#10; access_log off;&#10; }&#10;}&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Teste e recarregue o Nginx, depois obtenha o SSL:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nginx -t &amp;amp;&amp;amp; systemctl reload nginx&#10;certbot --nginx -d yourdomain.com&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Acesse &lt;a class="link" href="https://yourdomain.com/installer" target="_blank" rel="noopener"&#10; &gt;https://yourdomain.com/installer&lt;/a&gt; → siga o assistente:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Banco de dados: roundcube, usuário roundcubeuser, a senha que você definiu&lt;/li&gt;&#10;&lt;li&gt;Host IMAP: localhost&lt;/li&gt;&#10;&lt;li&gt;Host SMTP: localhost&lt;/li&gt;&#10;&lt;li&gt;Host padrão: mail.yourdomain.com&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Ative todos os plugins &lt;strong&gt;menos o Enigma&lt;/strong&gt; (ele quebra as identidades em versões mais antigas).&lt;/p&gt;&#10;&lt;p&gt;Ao terminar, apague o instalador:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;rm -rf /var/www/roundcube/installer&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-6-ajustes-de-qualidade-de-vida"&gt;Passo 6: Ajustes de qualidade de vida&#10;&lt;/h2&gt;&lt;p&gt;Edite /var/www/roundcube/config/config.inc.php:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;// Login with just username (no need to type @domain.com)&#10;$config[&amp;#39;username_domain&amp;#39;] = &amp;#39;yourdomain.com&amp;#39;;&#10;&#10;// Stay logged in for 6 months&#10;$config[&amp;#39;session_lifetime&amp;#39;] = 259200;&#10;&#10;// Disable Enigma if you enabled it&#10;// Remove &amp;#39;enigma&amp;#39; from $config[&amp;#39;plugins&amp;#39;] array&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Aumente o tamanho dos anexos:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano /etc/php/8.0/fpm/php.ini&#10;&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;upload_max_filesize = 50M&#10;post_max_size = 50M&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Depois:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart php8.0-fpm&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="passo-7-proteção-contra-força-bruta-com-o-fail2ban"&gt;Passo 7: Proteção contra força bruta com o Fail2Ban&#10;&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;apt install fail2ban -y&#10;cd /var/www/roundcube/plugins&#10;wget https://github.com/texxasrulez/roundcube_fail2ban/archive/refs/tags/1.4.zip&#10;unzip 1.4.zip&#10;mv roundcube_fail2ban-1.4 fail2ban&#10;rm 1.4.zip&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ative na configuração do Roundcube (config.inc.php):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;$config[&amp;#39;plugins&amp;#39;][] = &amp;#39;fail2ban&amp;#39;;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione a jail (/etc/fail2ban/jail.local – crie se não existir):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;[roundcube]&#10;enabled = true&#10;port = http,https&#10;filter = roundcube&#10;action = iptables-multiport[name=roundcube, port=&amp;#34;http,https&amp;#34;]&#10;logpath = /var/www/roundcube/logs/errors.log&#10;maxretry = 5&#10;bantime = 3600&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Crie o filtro (/etc/fail2ban/filter.d/roundcube.conf):&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;[Definition]&#10;failregex = IMAP Error: Login failed for .* from &amp;lt;HOST&amp;gt;&#10;ignoreregex =&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reinicie:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;systemctl restart fail2ban php8.0-fpm&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Pronto! Agora o seu webmail está protegido.&lt;/p&gt;&#10;&lt;h2 id="resultado-final"&gt;Resultado final&#10;&lt;/h2&gt;&lt;p&gt;Agora você tem:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Servidor de e-mail completo com DKIM, SPF e DMARC&lt;/li&gt;&#10;&lt;li&gt;Webmail Roundcube bonito e rápido&lt;/li&gt;&#10;&lt;li&gt;Zero envolvimento do Google/Microsoft&lt;/li&gt;&#10;&lt;li&gt;Login uma vez a cada 6 meses&lt;/li&gt;&#10;&lt;li&gt;Proteção contra força bruta&lt;/li&gt;&#10;&lt;li&gt;Tudo por ~US$ 50/ano&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Bem-vindo à verdadeira liberdade no e-mail.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 😊&lt;/p&gt;&#10;</description></item><item><title>Como usar IA com privacidade no navegador Brave (2 métodos)</title><link>https://aquasp.blog/pt/how-to-use-ai-privately-at-brave-browser-2-methods/</link><pubDate>Mon, 08 Dec 2025 23:15:59 +0000</pubDate><guid>https://aquasp.blog/pt/how-to-use-ai-privately-at-brave-browser-2-methods/</guid><description>&lt;hr&gt;&#10;&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;O Brave Browser 1.69 trouxe um recurso revolucionário: agora você pode conectar o &lt;strong&gt;Leo&lt;/strong&gt; (o assistente de IA integrado do Brave) a &lt;strong&gt;qualquer&lt;/strong&gt; modelo que quiser — inclusive modelos totalmente locais ou APIs de terceiros.&#10;Isso significa ter uma barra lateral de IA sempre disponível, sem assinatura e com controle total sobre privacidade e custo.&lt;/p&gt;&#10;&lt;p&gt;Aqui estão os dois melhores métodos que testei (um ultraprivado e outro mais inteligente, porém na nuvem).&lt;/p&gt;&#10;&lt;h2 id="método-1--privacidade-máxima-rode-um-modelo-local-com-o-ollama-sem-precisar-de-gpu"&gt;Método 1 – Privacidade máxima: rode um modelo local com o Ollama (sem precisar de GPU)&#10;&lt;/h2&gt;&lt;p&gt;Dá para rodar um modelo surpreendentemente capaz totalmente offline, mesmo em um hardware bem modesto.&#10;O ponto ideal hoje é o &lt;strong&gt;Gemma 2 2B, do Google&lt;/strong&gt; — ele é minúsculo (~1,4 GB), roda muito bem na CPU e funciona perfeitamente mesmo com só 4–6 GB de RAM livres.&lt;/p&gt;&#10;&lt;h3 id="passo-1-instale-o-ollama"&gt;Passo 1: Instale o Ollama&#10;&lt;/h3&gt;&lt;p&gt;Baixe e instale o Ollama pelo site oficial: &lt;a class="link" href="https://ollama.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://ollama.com&lt;/a&gt;&#10;(Ele tem pacotes nativos para Windows, macOS e Linux.)&lt;/p&gt;&#10;&lt;h3 id="passo-2-baixe-o-gemma-2-2b"&gt;Passo 2: Baixe o Gemma 2 2B&#10;&lt;/h3&gt;&lt;p&gt;Abra um terminal e rode:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ollama pull gemma2:2b&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(Se você usa Docker: docker exec -it ollama ollama pull gemma2:2b)&lt;/p&gt;&#10;&lt;h3 id="passo-3-confira-se-está-rodando"&gt;Passo 3: Confira se está rodando&#10;&lt;/h3&gt;&lt;p&gt;Abra &lt;a class="link" href="http://localhost:11434/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;http://localhost:11434&lt;/a&gt; no seu navegador.&#10;Você deve ver “Ollama is running” — é só disso que você precisa.&lt;/p&gt;&#10;&lt;h3 id="passo-4-adicione-o-modelo-ao-brave-leo"&gt;Passo 4: Adicione o modelo ao Brave Leo&#10;&lt;/h3&gt;&lt;ol&gt;&#10;&lt;li&gt;Abra o Brave → Configurações → Leo&lt;/li&gt;&#10;&lt;li&gt;Clique em &lt;strong&gt;Adicionar novo modelo&lt;/strong&gt;&lt;/li&gt;&#10;&lt;li&gt;Preencha os detalhes exatamente assim:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Label&lt;/strong&gt; → o que você quiser (por exemplo, “Gemma 2 2B Local”)&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Model Request Name&lt;/strong&gt; → gemma2:2b&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Server Endpoint&lt;/strong&gt; → http://localhost:11434/v1/chat/completions&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;API Key&lt;/strong&gt; → deixe em branco&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;(Opcional, mas recomendado) Defina este modelo como &lt;strong&gt;padrão&lt;/strong&gt; para novas conversas.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Pronto! Agora você tem uma IA totalmente privada e offline dentro do Brave, que quase não usa recursos.&lt;/p&gt;&#10;&lt;h2 id="método-2--respostas-mais-inteligentes-nuvem-use-o-cryptotalksai-pague-pelo-uso-sem-assinatura"&gt;Método 2 – Respostas mais inteligentes (nuvem): use o CryptoTalks.ai (pague pelo uso, sem assinatura)&#10;&lt;/h2&gt;&lt;p&gt;Se você quer acesso aos melhores modelos (GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Flash, Llama 3.1 405B etc.) sem criar contas na OpenAI/Anthropic/Google, o CryptoTalks.ai é hoje a melhor opção.&#10;Você paga só pelo que usa e pode colocar saldo na conta com Bitcoin ou Lightning.&lt;/p&gt;&#10;&lt;h3 id="passo-1-crie-uma-conta-e-pegue-seu-token"&gt;Passo 1: Crie uma conta e pegue seu token&#10;&lt;/h3&gt;&lt;p&gt;Acesse &lt;a class="link" href="https://cryptotalks.ai/signup?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://cryptotalks.ai/signup&lt;/a&gt; → cadastre-se → copie seu token de API (guarde-o em segurança!).&lt;/p&gt;&#10;&lt;h3 id="passo-2-coloque-um-pouquinho-de-crédito"&gt;Passo 2: Coloque um pouquinho de crédito&#10;&lt;/h3&gt;&lt;p&gt;Deposite qualquer valor via Bitcoin ou Lightning. Mesmo US$ 1–2 duram muito tempo para uso pessoal.&lt;/p&gt;&#10;&lt;h3 id="passo-3-adicione-os-modelos-ao-brave-leo"&gt;Passo 3: Adicione o(s) modelo(s) ao Brave Leo&#10;&lt;/h3&gt;&lt;p&gt;Mesmo processo de antes, só com valores diferentes:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;Label&lt;/strong&gt; → por exemplo, “Claude 3.5 Sonnet”, “GPT-4o” etc.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;Model Request Name&lt;/strong&gt; → o ID exato do modelo na documentação deles, por exemplo:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;openai/chatgpt-4o-latest&lt;/li&gt;&#10;&lt;li&gt;anthropic/claude-3.5-sonnet&lt;/li&gt;&#10;&lt;li&gt;google/gemini-flash-1.5&lt;/li&gt;&#10;&lt;li&gt;meta-llama/llama-3.1-405b-instruct&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;Server Endpoint&lt;/strong&gt; → &lt;a class="link" href="https://cryptotalks.ai/v1/chat/completions/" target="_blank" rel="noopener"&#10; &gt;https://cryptotalks.ai/v1/chat/completions/&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;API Key&lt;/strong&gt; → cole o seu token&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Você pode adicionar quantos modelos quiser e alternar entre eles na hora pela barra lateral do Leo.&lt;/p&gt;&#10;&lt;p&gt;Dica de mestre: confira os rankings atuais de modelos em &lt;a class="link" href="https://artificialanalysis.ai/models?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://artificialanalysis.ai/models&lt;/a&gt; para escolher o melhor para o que você precisa.&lt;/p&gt;&#10;&lt;h2 id="uso-no-dia-a-dia"&gt;Uso no dia a dia&#10;&lt;/h2&gt;&lt;p&gt;Com o Leo + o seu próprio modelo, você pode:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Resumir artigos longos ou vídeos do YouTube com um clique&lt;/li&gt;&#10;&lt;li&gt;Explicar trechos de código complexos&lt;/li&gt;&#10;&lt;li&gt;Escrever rascunhos de e-mails ou mensagens&lt;/li&gt;&#10;&lt;li&gt;Traduzir na hora&lt;/li&gt;&#10;&lt;li&gt;Tudo sem sair do navegador e sem mandar dados para as big techs&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Quando estou na bateria e não quero nenhum consumo extra de energia → mudo para o Gemma 2 2B local.&#10;Quando preciso do máximo de inteligência → mudo para o Claude 3.5 Sonnet ou o GPT-4o via CryptoTalks.&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;O Brave acabou de transformar cada navegador em uma estação de trabalho de IA privada e personalizável.&#10;Escolha o Método 1 para 100% de privacidade e custo zero, ou o Método 2 quando quiser as melhores respostas disponíveis hoje.&lt;/p&gt;&#10;&lt;p&gt;De um jeito ou de outro — bem-vindo ao futuro da navegação.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 😊&lt;/p&gt;&#10;</description></item><item><title>Cache de página, cache de objetos e cache de CDN – entendendo todos os tipos de cache</title><link>https://aquasp.blog/pt/page-cache-object-cache-and-cdn-cache-understanding-all-types-of-caching/</link><pubDate>Mon, 08 Dec 2025 23:13:04 +0000</pubDate><guid>https://aquasp.blog/pt/page-cache-object-cache-and-cdn-cache-understanding-all-types-of-caching/</guid><description>&lt;hr&gt;&#10;&lt;h2 id="entendendo-os-diferentes-tipos-de-cache-principalmente-para-escalar-sites-com-cms"&gt;Entendendo os diferentes tipos de cache (principalmente para escalar sites com CMS)&#10;&lt;/h2&gt;&lt;p&gt;Se você já se perguntou o que as pessoas querem dizer quando falam em “cache de página”, “cache de objetos” ou “cache de CDN”, este post é para você. Essas são as três principais camadas de cache, que fazem uma diferença enorme na hora de escalar o WordPress, o WooCommerce ou qualquer outro CMS.&lt;/p&gt;&#10;&lt;h2 id="o-que-é-cache-de-página"&gt;O que é cache de página?&#10;&lt;/h2&gt;&lt;p&gt;O cache de página (também chamado de &lt;strong&gt;cache de página inteira&lt;/strong&gt; ou &lt;strong&gt;cache de HTML&lt;/strong&gt;) é exatamente o que o nome diz: a página HTML inteira já renderizada é salva como um arquivo estático.&lt;/p&gt;&#10;&lt;p&gt;Em um site realmente estático (HTML + CSS + JS puros), não há necessidade de cache de página, porque todos os arquivos já são estáticos.&#10;Mas, com um CMS como o WordPress, cada requisição normalmente dispara PHP → tema → plugins → consultas ao banco de dados → saída em HTML. Esse processo consome CPU e leva tempo.&lt;/p&gt;&#10;&lt;p&gt;O cache de página inteira pula tudo isso. O primeiro visitante dispara o processo completo de PHP+MySQL, o HTML resultante é salvo, e todos os visitantes seguintes recebem na hora o HTML estático já gerado — sem PHP, sem consultas ao banco de dados, com quase zero de CPU.&lt;/p&gt;&#10;&lt;p&gt;Resultado: carga no servidor de 10 a 100× menor e páginas carregando muito mais rápido.&lt;/p&gt;&#10;&lt;h2 id="o-que-é-cache-de-objetos"&gt;O que é cache de objetos?&#10;&lt;/h2&gt;&lt;p&gt;O cache de objetos guarda os resultados de consultas caras ao banco de dados (ou de qualquer processamento lento) em uma memória rápida (geralmente Redis ou Memcached).&lt;/p&gt;&#10;&lt;p&gt;Pense nele como um intermediário superrápido entre o seu código PHP e o banco de dados.&lt;/p&gt;&#10;&lt;p&gt;Exemplo com o WordPress:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;O WordPress precisa da lista de posts publicados → ele pergunta ao MySQL.&lt;/li&gt;&#10;&lt;li&gt;Primeira requisição: o MySQL faz o trabalho e devolve os dados, e o cache de objetos os salva na RAM.&lt;/li&gt;&#10;&lt;li&gt;As próximas 10 000 requisições: o cache de objetos devolve na hora os mesmos dados direto da memória → o MySQL dorme em paz.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;O cache de objetos é esperto — ele se invalida sozinho quando os dados mudam (por exemplo, quando você publica um post novo).&lt;/p&gt;&#10;&lt;p&gt;Por que você ainda precisa dele, mesmo com o cache de página inteira:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Usuários logados (incluindo o painel do WordPress, as páginas de conta do WooCommerce etc.) não podem ter a página inteira em cache para todo mundo.&lt;/li&gt;&#10;&lt;li&gt;Essas páginas ainda passam pelo PHP e pelo MySQL → o cache de objetos as deixa toleráveis, em vez de dolorosamente lentas.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Cache de objetos + cache de página inteira juntos formam a combinação clássica para tráfego alto.&lt;/p&gt;&#10;&lt;h2 id="o-que-é-cache-de-cdn"&gt;O que é cache de CDN?&#10;&lt;/h2&gt;&lt;p&gt;Uma CDN (Content Delivery Network, ou rede de distribuição de conteúdo) copia seus arquivos estáticos (CSS, JS, imagens, fontes) — e, se você quiser, também suas páginas HTML inteiras — para servidores “PoP” espalhados pelo mundo.&lt;/p&gt;&#10;&lt;p&gt;Sem CDN: um visitante no Japão baixa tudo do seu servidor de origem que fica, digamos, no Brasil → latência alta.&lt;/p&gt;&#10;&lt;p&gt;Com CDN:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Os arquivos estáticos são entregues pelo PoP mais próximo (muitas vezes a menos de 30 ms).&lt;/li&gt;&#10;&lt;li&gt;Se você também ativar o cache de página inteira na CDN, a página HTML inteira também é entregue por esse PoP próximo → o servidor de origem nem é tocado nas páginas em cache.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;É por isso que alguns sites carregam instantaneamente de qualquer lugar do planeta.&lt;/p&gt;&#10;&lt;h2 id="exemplo-real-o-fluxo-de-tráfego-do-wordpress"&gt;Exemplo real: o fluxo de tráfego do WordPress&#10;&lt;/h2&gt;&lt;h3 id="sem-nenhum-cache"&gt;Sem nenhum cache&#10;&lt;/h3&gt;&lt;p&gt;Visitante → servidor web → PHP → dezenas de arquivos de plugins → consultas ao MySQL → HTML → visitante&#10;→ CPU alta, TTFB lento, bate fácil nos limites de recursos.&lt;/p&gt;&#10;&lt;h3 id="só-com-cache-de-página-inteira"&gt;Só com cache de página inteira&#10;&lt;/h3&gt;&lt;p&gt;Primeiro visitante: o mesmo caminho lento de cima (mas o HTML é salvo).&#10;Os próximos 10 000 visitantes: o servidor web entrega na hora o HTML pronto → quase zero de CPU.&lt;/p&gt;&#10;&lt;h3 id="só-com-cache-de-objetos"&gt;Só com cache de objetos&#10;&lt;/h3&gt;&lt;p&gt;Toda requisição ainda roda PHP + plugins, mas as consultas ao banco são respondidas pela RAM em vez do disco → mais rápido que sem cache, mas ainda pesado.&lt;/p&gt;&#10;&lt;h3 id="com-cache-de-página-inteira--cache-de-objetos"&gt;Com cache de página inteira + cache de objetos&#10;&lt;/h3&gt;&lt;ul&gt;&#10;&lt;li&gt;Visitantes anônimos → HTML estático (superrápido, quase sem carga)&lt;/li&gt;&#10;&lt;li&gt;Usuários logados → o PHP roda, mas o cache de objetos deixa as consultas ao banco instantâneas → carga administrável&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="adicione-por-cima-uma-cdn-com-cache-de-página-inteira"&gt;Adicione por cima uma CDN com cache de página inteira&#10;&lt;/h3&gt;&lt;p&gt;Agora até o HTML estático é entregue a partir de pontos de borda no mundo todo. O seu servidor de origem pode basicamente tirar um cochilo até que algo realmente precise de PHP (por exemplo, envio de formulários, invalidação de cache).&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;Aqui está a hierarquia, do mais impactante para o menos (para a maioria dos sites com CMS):&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Cache de página inteira na CDN&lt;/strong&gt; → o mais rápido para os visitantes, escala para milhões de acessos com quase nenhuma carga na origem.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Cache de página inteira na origem&lt;/strong&gt; → ainda é um ganho enorme se você não puder fazer cache na CDN.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Cache de objetos (Redis/Memcached)&lt;/strong&gt; → obrigatório para usuários logados, WooCommerce, painéis etc.&lt;/li&gt;&#10;&lt;li&gt;Todo o resto (OPcache, cache do navegador etc.) → bom de ter, geralmente já vem ativado por padrão.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Se você for fazer uma coisa só: ative um cache de página inteira decente (e leve-o para a sua CDN, se possível).&#10;Se você tem tráfego de usuários logados ou uma loja: adicione o cache de objetos com Redis/Memcached.&lt;/p&gt;&#10;&lt;p&gt;É isso — as três camadas de cache que movem basicamente todo site WordPress com tráfego alto no planeta.&lt;/p&gt;&#10;&lt;p&gt;Espero que isso tenha esclarecido as coisas!&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura! 😊&lt;/p&gt;&#10;</description></item><item><title>Análise do Pop!_OS 22.04 depois de 6 meses de uso</title><link>https://aquasp.blog/pt/pop-os-22-04-review-after-6-months-of-use/</link><pubDate>Mon, 08 Dec 2025 22:28:25 +0000</pubDate><guid>https://aquasp.blog/pt/pop-os-22-04-review-after-6-months-of-use/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;O &lt;strong&gt;Pop!_OS&lt;/strong&gt; é uma das distros Linux mais usadas. Ele também é uma recomendação para iniciantes, gamers e até para usuários experientes.&lt;/p&gt;&#10;&lt;p&gt;Mas será que vale a pena? No post de hoje, vou contar a minha experiência usando ele, da instalação até o uso no dia a dia.&lt;/p&gt;&#10;&lt;h2 id="instalação"&gt;Instalação&#10;&lt;/h2&gt;&lt;p&gt;O Pop tem um dos melhores instaladores que existem, tenho que admitir. Ele é simples, bonito e tem cara de moderno. A instalação é bem simples: você só clica em alguns botões para configurar o idioma e algumas outras opções. Também dá para criptografar o disco durante a instalação, o que ajuda se você viaja muito e guarda informações confidenciais no notebook (como senhas pessoais, documentos, fotos etc.).&lt;/p&gt;&#10;&lt;p&gt;Pelo processo de instalação, dou nota 9/10 ao Pop. Por que não 10? Bom, ele não tem uma opção para fazer dual boot automaticamente. Se você usa o Windows, por exemplo, precisa fazer isso manualmente. Fora isso, funciona muito bem e faz um ótimo trabalho para te dar uma experiência agradável.&lt;/p&gt;&#10;&lt;h2 id="primeira-inicialização"&gt;Primeira inicialização&#10;&lt;/h2&gt;&lt;p&gt;A primeira inicialização do Pop também é uma ótima experiência. Você cria o seu usuário e a sua senha e entra normalmente no seu novo ambiente Gnome. O Pop te ajuda a personalizar algumas opções (modo escuro, posição da dock e contas online). São todas ótimas opções para iniciantes.&lt;/p&gt;&#10;&lt;p&gt;Os apps padrão também são bem integrados ao sistema, e tudo parece estar no lugar certo.&lt;/p&gt;&#10;&lt;p&gt;No geral, dou nota 10/10 para a pós-instalação; não vejo nada para melhorar aqui, eles simplesmente mandaram muito bem.&lt;/p&gt;&#10;&lt;h2 id="detalhes-que-tornam-o-pop_"&gt;&lt;strong&gt;Detalhes que tornam o Pop!_OS especial&lt;/strong&gt;&#10;&lt;/h2&gt;&lt;p&gt;Esta provavelmente é a melhor parte do Pop, e é o que faz dele uma escolha muito, muito sólida. Estas são algumas características que são &lt;strong&gt;raras&lt;/strong&gt; de encontrar em outras distros:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/pop-os/system76-scheduler?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;System76 Scheduler&lt;/a&gt; - Você sabia que o Pop vem com otimizações de CPU por padrão? Isso mesmo. Por padrão, o Pop reduz a latência e melhora o desempenho dos apps, principalmente quando o notebook está carregando. Isso também é ótimo para jogos, já que você não precisa mais do &lt;a class="link" href="https://github.com/FeralInteractive/gamemode?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;gamemode&lt;/a&gt;.&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/pop-os/system76-power?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;System76-Power&lt;/a&gt; - Por padrão, o Pop oferece três modos de bateria: Economia, Equilibrado e Alto desempenho. Isso é incrível, porque no Pop as otimizações de bateria já vêm aplicadas por padrão. Você não precisa do TLP e tem uma interface gráfica fácil para controlar o modo da bateria. Simplesmente sensacional.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;O swappiness vem definido como 10&lt;/strong&gt;. Na maioria das distros Linux que já usei, o swappiness vem em 60. Isso significa que a sua distro começa a usar o swap quando o uso de RAM chega a 40%. No Pop, o swap só é usado quando você está usando cerca de 90% da RAM. Isso é incrível e deixa tudo muito mais fluido, já que o swap é bem lento, mesmo em um SSD NVMe.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;O kernel não é o mesmo do Ubuntu 22.04&lt;/strong&gt;. O Pop faz um ótimo trabalho em manter o kernel atualizado. Isso é ótimo principalmente se você usa um desktop/notebook mais novo. Até onde sei, o Ubuntu 22.04 está entregando o kernel 5.15.x. O Pop!_OS já está no 6.1.x&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Atalhos personalizados.&lt;/strong&gt; No começo, eu odiei, mas depois de experimentar o &amp;ldquo;jeito Pop&amp;rdquo;, adorei e hoje até mudo os atalhos padrão de outras distros! Por exemplo, em vez de alt + f4 (que normalmente exige as duas mãos), o Pop usa &amp;ldquo;windows + q&amp;rdquo;, que é mais acessível e fácil de usar. Em vez de ctrl + alt + t para abrir o terminal, no Pop você pode usar &amp;ldquo;windows + t&amp;rdquo;. Isso é muito bom e ajuda quando você trabalha com muita multitarefa (praticamente qualquer pessoa que trabalha com CS vai adorar).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Atualizações de firmware fáceis.&lt;/strong&gt; O Pop vem com uma opção dentro das configurações do Gnome para fazer atualizações de hardware. Isso é ótimo, porque te dá mais controle e mais detalhes sobre essas atualizações.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Recuperação como opção.&lt;/strong&gt; No Pop, você pode ter uma &amp;ldquo;cópia da ISO&amp;rdquo; nas configurações e &amp;ldquo;renovar o sistema&amp;rdquo; se um dia precisar. Pode ser útil se você quebrar alguma coisa e quiser restaurar o sistema sem usar um pendrive.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;systemd-boot em vez do GRUB.&lt;/strong&gt; Para mim, isso não faz diferença, mas muita gente parece elogiar o systemd-boot. Acho que ele proporciona uma inicialização mais rápida e é &amp;ldquo;mais simples de configurar&amp;rdquo; (estou acostumado com o GRUB, então para mim o GRUB é mais fácil, mas quase não personalizo nada na inicialização).&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;PipeWire em vez de PulseAudio.&lt;/strong&gt; Durante anos, um dos softwares de que as pessoas mais reclamavam era o PulseAudio. Ele travava, dava pau, não reconhecia dispositivos etc. O PipeWire é o novato, mais enxuto e com latência menor. Muita gente também o elogia. Eu também prefiro o PipeWire, porque ele parece mais simples e melhor de usar do que o PulseAudio.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Temas do Flatpak funcionando direito, e nada de Snap&lt;/strong&gt;. Os Snaps estão sendo &amp;ldquo;empurrados&amp;rdquo; pelas distros Ubuntu, mas muita gente não gosta deles. Alguns não gostam do fato de o servidor não ser de código aberto, outros reclamam dos bugs, do espaço usado, e outros das atualizações automáticas (que não dá para desativar). Eu também prefiro os Flatpaks, e é ótimo ver que, no Pop, os Flatpaks parecem aplicativos nativos e o Flathub vem adicionado por padrão. Também é bom ver que a Pop_Shop se integra bem com os Flatpaks.&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://github.com/pop-os/popsicle?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;&lt;strong&gt;O Pop criou o Popsicle&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt; Isso provavelmente não recebe a atenção que merece, mas, cara! É MARAVILHOSO ter um gravador de ISO por padrão. E este é tão bonito e se integra tão bem com o Pop. Gosto mais dele do que do Balena Etcher e de outros softwares comuns no Linux para criar pendrives inicializáveis.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="pontos-negativos-do-pop"&gt;Pontos negativos do Pop&#10;&lt;/h2&gt;&lt;p&gt;Embora o Pop seja incrível, também vejo alguns pontos negativos nele. A maioria é pessoal, então talvez você nem os veja como pontos negativos.&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Gnome. Eu simplesmente não gosto nada do Gnome. Parece pesado e muda o tempo todo com as atualizações grandes, quebrando extensões e a experiência do usuário. A parte boa é que o Pop está desenvolvendo o seu próprio ambiente desktop em Rust, que vai ser &lt;strong&gt;SENSACIONAL&lt;/strong&gt; quando for lançado.&lt;/li&gt;&#10;&lt;li&gt;A Pop_Shop usa 0,5 GB de RAM parada. Isso talvez não seja um problema em computadores com mais RAM, mas, quando você tem menos, é meio ruim. Se você tem 4 GB de RAM, por exemplo (o que ainda é comum em países de terceiro mundo), vai sentir a diferença. Dá para desativar a Pop_Shop, mas, sinceramente, o uso parada deveria ser menor.&lt;/li&gt;&#10;&lt;li&gt;O tracker-miner-fs pode sugar sua CPU se você baixar pastas com muitas subpastas. Uma vez, baixei o backup de um site WordPress e o extraí. Ele tinha muitas subpastas. Notei o notebook mais lento, mas não sabia o que estava acontecendo. Quando olhei o gerenciador de tarefas, o tracker-miner estava em ação, sugando toda a CPU para tentar indexar aquelas subpastas. Tentei resetar o tracker-miner, limpar, ver o status, mas ele não respondia. No fim, desativei, já que &lt;a class="link" href="https://www.reddit.com/r/pop_os/comments/10q046k/trackerminerfs3_is_killing_my_performance/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;um desenvolvedor do Pop disse que era 100% seguro&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="desempenho-geral-depois-de-6-meses"&gt;Desempenho geral depois de 6 meses&#10;&lt;/h2&gt;&lt;p&gt;Depois de 6 meses usando o Pop, posso dizer que fiquei bem satisfeito com o desempenho. Tive um problema em que, por alguns segundos, o mouse ficava lento e o áudio travava, mas provavelmente foi por algo que eu fiz (ou talvez porque meu hardware não lida bem com a criptografia. Estou num notebook com Ryzen 5 5500U, 12 GB de RAM e SSD NVMe de 256 GB).&lt;/p&gt;&#10;&lt;p&gt;Por causa dos problemas com o tracker-miner e desse travamento, decidi deixar o Pop e experimentar o Linux Mint XFCE por um tempo (adoro o XFCE e o Mint é estável o suficiente, então resolvi dar uma chance). Provavelmente vou fazer uma análise dele também depois de usar por um tempo.&lt;/p&gt;&#10;&lt;p&gt;No geral, usar o Pop foi um prazer, e consegui fazer muito trabalho bom nele. Trabalho com CS/DevOps, então na maior parte do tempo eu estava conversando com clientes ou usando scripts bash no servidor, e para isso o Pop funcionou bem. Para jogos, também funcionou bem, então não tenho do que reclamar e com certeza recomendaria para a maioria das pessoas. O Pop &lt;strong&gt;tem os melhores padrões que já vi&lt;/strong&gt;. É a distro que menos precisei ajustar, porque ela já vem com tudo o que preciso e uso.&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;O Pop é incrível! Se você gosta do Gnome, experimente. Ele vai te dar um ótimo desempenho, e todas as otimizações que importam já vêm prontas de fábrica. A bateria vai durar bem em notebooks, e os drivers provavelmente estarão otimizados para jogos. O Vulkan também vem ativado por padrão.&lt;/p&gt;&#10;&lt;p&gt;Meu pai usa o Pop no notebook dele (eu que instalei) e adora.&lt;/p&gt;&#10;&lt;p&gt;Com certeza vou experimentar o Pop de novo quando lançarem o novo ambiente desktop deles. Enquanto isso, vou aproveitar a minha experiência com o XFCE.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura :)&lt;/p&gt;&#10;</description></item><item><title>7 coisas que você deve fazer depois de instalar o Xubuntu 22.04</title><link>https://aquasp.blog/pt/top-7-things-that-you-should-do-after-installing-xubuntu-22-04/</link><pubDate>Mon, 08 Dec 2025 22:24:22 +0000</pubDate><guid>https://aquasp.blog/pt/top-7-things-that-you-should-do-after-installing-xubuntu-22-04/</guid><description>&lt;h2 id="introdução"&gt;Introdução&#10;&lt;/h2&gt;&lt;p&gt;Recentemente fiz uma análise do Pop!_OS 22.04 depois de usá-lo por bastante tempo. Adorei, mas queria experimentar outra coisa a longo prazo e acabei escolhendo o Ubuntu 22.04 — mais especificamente o sabor Xubuntu, com XFCE.&lt;/p&gt;&#10;&lt;p&gt;Sempre que instalo um sistema do zero, faço algumas coisas para garantir que ele fique ágil, rode bem os jogos e (em notebooks) tenha a melhor duração de bateria possível.&lt;/p&gt;&#10;&lt;p&gt;Antes de começar qualquer um dos passos abaixo, recomendo fortemente &lt;strong&gt;fazer uma atualização completa do sistema&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="instale-o-kernel-liquorix"&gt;Instale o kernel Liquorix&#10;&lt;/h2&gt;&lt;p&gt;O Liquorix é um kernel Linux para entusiastas, otimizado para a responsividade no desktop, para trabalhos de áudio/vídeo de baixa latência e para reduzir as variações no tempo de quadro nos jogos.&lt;/p&gt;&#10;&lt;p&gt;O kernel padrão do Ubuntu é de uso geral e precisa funcionar bem tanto em desktops quanto em servidores. O Liquorix pega o mesmo código-fonte do kernel Linux e aplica patches e opções de compilação voltados para o desktop. O resultado é visivelmente mais ágil, principalmente sob carga pesada ou ao alternar rápido entre janelas (alt-tab) nos jogos.&lt;/p&gt;&#10;&lt;p&gt;Instalar no Ubuntu/Debian é um comando só:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;curl &amp;#39;https://liquorix.net/install-liquorix.sh&amp;#39; | sudo bash&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reinicie depois e você já estará usando o kernel novo.&lt;/p&gt;&#10;&lt;h2 id="instale-os-drivers-gráficos-mais-recentes"&gt;Instale os drivers gráficos mais recentes&#10;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Para quem usa Nvidia:&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo add-apt-repository ppa:graphics-drivers/ppa&#10;sudo dpkg --add-architecture i386&#10;sudo apt update&#10;sudo apt install -y nvidia-driver-560 libvulkan1 libvulkan1:i386&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Para quem usa AMD ou Intel (PPA do Kisak – Mesa mais recente):&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo add-apt-repository ppa:kisak/kisak-mesa&#10;sudo dpkg --add-architecture i386&#10;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade&#10;sudo apt install libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mesmo em uma versão LTS mais antiga, isso traz os drivers de código aberto mais novos e o suporte a Vulkan.&lt;/p&gt;&#10;&lt;h2 id="reduza-o-swappiness"&gt;Reduza o swappiness&#10;&lt;/h2&gt;&lt;p&gt;O Pop!_OS define vm.swappiness=10 por padrão (o swap só é usado quando a RAM está ~90% cheia). O Ubuntu/Xubuntu vem com 60, o que é agressivo demais para uso em desktop.&lt;/p&gt;&#10;&lt;p&gt;Mude de forma permanente:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo nano /etc/sysctl.conf&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione esta linha no final:&lt;/p&gt;&#10;&lt;p&gt;text&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;vm.swappiness=10&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Salve e saia. A mudança vale na hora ou na próxima reinicialização.&lt;/p&gt;&#10;&lt;h2 id="instale-utilitários-essenciais"&gt;Instale utilitários essenciais&#10;&lt;/h2&gt;&lt;p&gt;Estas são as ferramentas que instalo em toda instalação nova:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Redshift&lt;/strong&gt; – filtro de luz azul&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Flameshot&lt;/strong&gt; – a melhor ferramenta de captura de tela&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;AppImageLauncher&lt;/strong&gt; – integra AppImages ao seu menu&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Gamemode&lt;/strong&gt; – ganhos enormes de FPS em muitos jogos&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;TLP&lt;/strong&gt; – essencial para notebooks (muitas vezes dobra a duração da bateria)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;sudo apt install redshift flameshot appimagelauncher gamemode tlp tlp-rdw&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Ative o TLP se precisar: sudo tlp start)&lt;/p&gt;&#10;&lt;h2 id="instale-seus-apps-favoritos-do-dia-a-dia"&gt;Instale seus apps favoritos do dia a dia&#10;&lt;/h2&gt;&lt;p&gt;Minhas escolhas pessoais:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Brave Browser (Chromium focado em privacidade)&lt;/li&gt;&#10;&lt;li&gt;VLC (de preferência via AppImage/Flatpak/Snap, para evitar dependências pesadas do Qt no XFCE)&lt;/li&gt;&#10;&lt;li&gt;LibreOffice&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="crie-aliases-úteis"&gt;Crie aliases úteis&#10;&lt;/h2&gt;&lt;p&gt;Abra o seu .bashrc:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;nano ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Adicione alguns aliases úteis no final, por exemplo:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;alias apply_filter=&amp;#39;redshift -O 1900&amp;#39;&#10;alias update=&amp;#39;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y&amp;#39;&#10;alias please=&amp;#39;sudo $(history -p !!)&amp;#39; # rerun last command with sudo&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Recarregue o arquivo:&lt;/p&gt;&#10;&lt;p&gt;Bash&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;source ~/.bashrc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="personalize-a-aparência-opcional"&gt;Personalize a aparência (opcional)&#10;&lt;/h2&gt;&lt;p&gt;O Xubuntu + XFCE é extremamente personalizável. Uso uma configuração bem minimalista e controlo quase tudo com atalhos de teclado. Você pode configurá-los em &lt;strong&gt;Configurações → Gerenciador de janelas&lt;/strong&gt; e &lt;strong&gt;Configurações → Teclado → Atalhos de aplicativos&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;Os três maiores ganhos de desempenho — kernel Liquorix, drivers gráficos mais recentes e swappiness baixo — fazem uma diferença enorme. Exemplo real: &lt;em&gt;Life is Strange: True Colors&lt;/em&gt; saltou de ~23 FPS com travadas nas configurações padrão para 40+ FPS estáveis depois de aplicar essas mudanças.&lt;/p&gt;&#10;&lt;p&gt;Se você está tendo lentidões ou travamentos aleatórios no Xubuntu/Ubuntu, tente estes passos primeiro. Eles resolvem uma quantidade surpreendente de problemas.&lt;/p&gt;&#10;&lt;p&gt;Obrigado pela leitura!&lt;/p&gt;&#10;</description></item><item><title>A Zcash está perdendo</title><link>https://aquasp.blog/pt/zcash-is-losing/</link><pubDate>Mon, 08 Dec 2025 22:11:49 +0000</pubDate><guid>https://aquasp.blog/pt/zcash-is-losing/</guid><description>&lt;hr&gt;&#10;&lt;h2 id="a-zcash-não-é-o-projeto-mais-importante-do-mundo-e-está-perdendo"&gt;A Zcash NÃO é o projeto mais importante do mundo, e está perdendo.&#10;&lt;/h2&gt;&lt;p&gt;A Zcash nasceu como um projeto para corrigir a maior falha do Bitcoin: a privacidade. Mas lançar uma moeda nova não é fácil, e não se trata só dos aspectos técnicos.&lt;/p&gt;&#10;&lt;p&gt;Uma criptomoeda séria deveria ser dinheiro, e ela precisa ser melhor do que o que temos hoje com os governos; caso contrário, era melhor continuar usando o dólar. Isso significa que, embora os aspectos técnicos de qualquer criptomoeda sejam importantes, ela também deve ser confiável, digna de confiança e o mais estável possível. A principal falha do dinheiro do governo é a inflação. Os governos normalmente adoram gastar dinheiro e podem cobrar um imposto oculto imprimindo mais. Quando se imprime dinheiro, a quantidade de bens e serviços na sociedade continua a mesma, mas há mais dinheiro em circulação.&lt;/p&gt;&#10;&lt;p&gt;Isso significa que o seu dinheiro passa a valer menos. Quem ganha nesse caso é o governo, ou quem gastar primeiro o dinheiro recém-impresso, porque o mercado vai se ajustar, levando a preços mais altos de serviços e bens.&lt;/p&gt;&#10;&lt;h3 id="o-problema-da-zcash"&gt;O problema da Zcash&#10;&lt;/h3&gt;&lt;p&gt;A Zcash parece boa. Ela usa a tecnologia zk-SNARKs para comprovar transações e armazená-las de forma privada, o que significa que, quando você envia transações, tudo fica oculto (ninguém consegue ver quem enviou, o valor enviado nem quem recebeu). Parece incrível, né? Então vamos comprar Zcash!!&lt;/p&gt;&#10;&lt;p&gt;Não. E por que não?&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;1. A Zcash foi lançada com uma configuração confiável (trusted setup)&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Isso mesmo. Quando a Zcash foi lançada, ela usou uma configuração confiável para dar o pontapé inicial na rede. Nesse evento, vários participantes criaram juntos os parâmetros criptográficos, sem que nenhuma parte tivesse controle total. Partia-se do pressuposto de que pelo menos um participante destruiria a sua parte das chaves secretas, para garantir a privacidade. &lt;strong&gt;Se os participantes juntassem os seus parâmetros, poderiam, em teoria, criar Zcash ilimitada e rastrear transações blindadas&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Agora, preciso ser justo. Hoje a Zcash roda no NU5 (Network Upgrade 5). Essa atualização &lt;strong&gt;removeu a configuração confiável, garantindo que, depois de maio de 2022, a Zcash não dependa de confiar em mais ninguém&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Mas, ao mesmo tempo, até onde sei, &lt;strong&gt;não há como provar que todos destruíram os seus parâmetros e que nenhuma Zcash foi gerada ou rastreada.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;2. A Zcash não é privada por padrão.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Considerando as atualizações mais recentes (sem usar &lt;strong&gt;Sprout&lt;/strong&gt; nem &lt;strong&gt;Sapling&lt;/strong&gt;), os usuários podem deixar a Zcash em um endereço público (t-address) ou em um endereço blindado (de preferência &lt;strong&gt;Orchard&lt;/strong&gt;). Então, se alguns usuários quiserem usar a Zcash igualzinho ao Bitcoin, eles podem.&lt;/p&gt;&#10;&lt;p&gt;A Zcash tenta resolver isso recomendando carteiras que respeitam a privacidade. Por exemplo, a carteira Zashi tenta blindar os seus fundos por padrão. O problema disso? A Zcash não é muito usada, então comprar Zcash de pessoa para pessoa ou em uma exchange descentralizada como a Bisq ou a Haveno Reto é muito difícil.&lt;/p&gt;&#10;&lt;p&gt;Então você precisa comprar em uma exchange que não respeita a privacidade, como a Binance ou a Coinbase. E, claro, essas exchanges não suportam endereços blindados. Você precisa usar o seu endereço transparente para receber a Zcash antes de blindá-la.&lt;/p&gt;&#10;&lt;p&gt;De alguma forma, a Zcash acredita que consegue oferecer privacidade total e, ao mesmo tempo, obedecer aos governos e às leis contra a privacidade. A comunidade e os usuários da Zcash estão acostumados a comprar as suas moedas por meios não privados. Se o governo decidir que blindar a sua Zcash é ilegal, você não vai conseguir comprar e blindar as suas moedas, porque o governo sabe que o t-address está ligado a você, e, se você fizer uma transação de blindagem, acabou de cometer um crime.&lt;/p&gt;&#10;&lt;p&gt;Eles podem até bloquear moedas &amp;ldquo;contaminadas&amp;rdquo;: se uma Zcash já foi blindada alguma vez, ela pode ser considerada &amp;ldquo;contaminada&amp;rdquo; e bloqueada nas exchanges. Durante o protesto do comboio no Canadá, o governo tentou apreender Bitcoin, mas, como a carteira não era custodial, não conseguiu. Eles logo perceberam que podiam pedir a todas as exchanges para recusar esses Bitcoins &amp;ldquo;sujos&amp;rdquo;.&lt;/p&gt;&#10;&lt;p&gt;Agora você deve estar se perguntando em que o Monero é diferente. Bom, o Monero é privado por padrão, o que significa que os usuários não precisam se preocupar em blindar e &amp;ldquo;desblindar&amp;rdquo; moedas. E toda loja que aceita Monero faz isso pela privacidade, ao contrário da Zcash, em que lojistas e exchanges podem aceitar Zcash só em endereços transparentes.&lt;/p&gt;&#10;&lt;p&gt;E sim, como você deve ter pensado, alguns governos e exchanges baniram o Monero, o que na verdade foi bom para ele. Por quê? Porque agora ele está anos-luz à frente da Zcash. O Monero tem um ecossistema de verdade. Você pode comprar bens e serviços diretamente com Monero, pode comprar Monero sem nenhuma exchange, e o Monero sabe sobreviver em um ambiente sem aprovação legal.&lt;/p&gt;&#10;&lt;p&gt;Por exemplo, você pode comprar gift cards na &lt;a class="link" href="https://www.coinsbee.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Coinsbee&lt;/a&gt; ou na &lt;a class="link" href="https://cakepay.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Cake Pay&lt;/a&gt; diretamente com Monero, vender serviços e produtos por Monero diretamente no &lt;a class="link" href="https://xmrbazaar.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;XMRBazaar&lt;/a&gt;, encontrar vários tipos de serviços que aceitam Monero no &lt;a class="link" href="https://monerica.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Monerica&lt;/a&gt;, usar IA com privacidade pagando com Monero no &lt;a class="link" href="https://nano-gpt.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;Nano-GPT&lt;/a&gt; ou negociar Monero com privacidade e sem KYC na &lt;a class="link" href="https://retoswap.com/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;RetoSwap&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;E isso é só o começo. O uso do Monero vem crescendo, e o objetivo é conseguir viver totalmente com Monero para alcançar a liberdade financeira.&lt;/p&gt;&#10;&lt;p&gt;Então, ser privado por padrão é definitivamente a escolha superior. O dinheiro vivo é privado por padrão, igualzinho ao Monero.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;3. A Zcash é muito centralizada&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Isso mesmo. Talvez você não saiba, mas um único pool de mineração da Zcash, a ViaBTC, tem &lt;a class="link" href="https://miningpoolstats.stream/zcash?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;quase 70%&lt;/a&gt; do poder de mineração.&lt;/p&gt;&#10;&lt;p&gt;Isso significa que, se a ViaBTC começar a agir de má-fé, ela poderia, em teoria, gastar a mesma ZEC duas vezes ou censurar transações.&lt;/p&gt;&#10;&lt;p&gt;A Zcash tem um plano para resolver isso, mas, por enquanto, é uma promessa e não algo que já está no ar. Eles querem criar uma camada de PoS (proof-of-stake, prova de participação) para garantir que os usuários tenham mais controle sobre a validação das transações.&lt;/p&gt;&#10;&lt;p&gt;Ainda não tenho uma opinião formada sobre essa camada de PoS, então vou evitar falar dela.&lt;/p&gt;&#10;&lt;p&gt;O ponto continua válido, porém: a Zcash é muito centralizada. E não só por causa do pool de mineração. Dá para ver claramente que a comunidade no Reddit não é muito ativa; você não vê pessoas promovendo e rodando nós de Zcash como vê na comunidade do Monero. Os grupos da comunidade normalmente são formados por instituições ligadas à Zcash.&lt;/p&gt;&#10;&lt;p&gt;A Zcash precisa se esforçar em marketing para convencer as pessoas a usá-la, enquanto o Monero tem adoção natural, e os usuários espalham a palavra de graça. Existem vários sites e podcasts da comunidade, e você realmente vê pessoas usando a moeda, em vez de só comprar e torcer por uma alta enorme de preço.&lt;/p&gt;&#10;&lt;p&gt;Existem vários guias sobre como usar uma carteira Monero, como rodar um nó, como gastar etc. Com a Zcash, o que você normalmente encontra são promessas de que &amp;ldquo;a tecnologia é incrível e vai valer mais que o Bitcoin&amp;rdquo;.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;4. A Zcash tem uma taxa para os desenvolvedores&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Se você estivesse propondo um dinheiro global para ser usado por todo mundo, acharia justo destinar 20% do dinheiro minerado para pagar o desenvolvimento?&lt;/p&gt;&#10;&lt;p&gt;Eu acho que não, e a maioria das pessoas também acha que não. A Zcash fez exatamente isso. 20% das moedas mineradas vão diretamente para instituições da Zcash que, em tese, desenvolvem e divulgam a Zcash.&lt;/p&gt;&#10;&lt;p&gt;Com essa proposta, os desenvolvedores e a governança da moeda não precisam conquistar a confiança dos usuários. Eles são remunerados por padrão e obviamente vão vender a Zcash por moeda fiduciária, já que esse é basicamente o salário deles, e eles têm contas para pagar.&lt;/p&gt;&#10;&lt;p&gt;Com isso em mente, possíveis investidores e usuários sempre vão temer uma venda em massa da criptomoeda quando o preço disparar.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;5. A experiência de uso da Zcash ainda é péssima&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;A Zcash ainda é meio complexa para o usuário comum. Para resolver isso, o jeito recomendado de usar a Zcash hoje é com a Zashi, que tenta blindar as transações por padrão.&lt;/p&gt;&#10;&lt;p&gt;A Zashi tem alguns problemas sérios, porém. O primeiro é o idioma. Só o inglês é suportado. Sério mesmo? A carteira mais recomendada só suporta inglês? A Zcash foi feita para ser usada só nos EUA/Reino Unido? É uma pena que um projeto com taxa de desenvolvimento não consiga fazer uma carteira multilíngue. A Cake Wallet, a Stack Wallet e a Monerujo não tinham nenhuma taxa de desenvolvimento, mas suportam vários idiomas. Qual é a sua desculpa, Zashi?&lt;/p&gt;&#10;&lt;p&gt;O segundo problema é que a Zashi não parece ser estável, principalmente com quantias maiores de Zcash. Recentemente, um usuário relatou que &lt;a class="link" href="https://x.com/0xakramus/status/1977322983829242320?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;não consegue gastar a sua Zcash&lt;/a&gt;.&#10;Isso acontece porque a Zashi só deixa você gastar Zcash blindada, e a carteira não consegue blindar a Zcash dele.&lt;/p&gt;&#10;&lt;p&gt;Sei que isso não é especificamente falta de habilidade, porque não faz muito tempo, quando eu estava testando a Zcash, tive um problema parecido. Recebi Zcash na Zashi, mas não consegui blindá-la. Não lembro exatamente o que fiz para resolver (eu estava testando a Ywallet e a Nighthawk), mas com certeza não foi uma boa primeira impressão da Zcash. Lembro de testar o recebimento de Zcash em um celular mais antigo e em um mais novo (os dois usando a Zashi), e o celular mais novo conseguiu receber e blindar as moedas com facilidade, mas o mais antigo sofreu.&lt;/p&gt;&#10;&lt;p&gt;Não sei se foi coincidência, mas pareceu que a Zashi é pesada no celular. Nunca tive esse problema com o Monero.&lt;/p&gt;&#10;&lt;p&gt;Claro, sincronizar o Monero leva um tempo, mas funciona em segundo plano sem problemas na Monerujo, é só esperar. Fica ainda mais rápido se você tiver um nó de Monero local rodando em casa, o que eu suspeito que 99% dos usuários de Zcash não têm.&lt;/p&gt;&#10;&lt;p&gt;Hoje, a Zashi também precisa estar sincronizada para ser usada direito, e isso leva muito tempo e exige que você deixe a tela ligada.&lt;/p&gt;&#10;&lt;p&gt;As duas moedas precisam ser mais fáceis de usar, mas o Monero ainda é melhor que a Zcash em interface. Os usuários não precisam se preocupar com pools Sapling ou Orchard nem ter problemas para &amp;ldquo;blindar&amp;rdquo; as suas moedas.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;6. Comportamento do preço&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;Por causa do lançamento com configuração confiável e da taxa de desenvolvimento, a Zcash provavelmente está destinada a ser uma moeda de pump. Sem adoção no mundo real, o preço dela pode ser manipulado para subir, mas é pouco provável que esses ganhos durem.&lt;/p&gt;&#10;&lt;p&gt;Os entusiastas de criptomoedas estão de olho na Zcash agora por causa de uma alta enorme de preço, mas duvido que isso se sustente. Se você olhar o gráfico de preço da Zcash num período maior, ele ainda parece ridículo. Já no Monero, um período maior mostra um crescimento constante e lento ao longo do tempo.&lt;/p&gt;&#10;&lt;h2 id="conclusão"&gt;Conclusão&#10;&lt;/h2&gt;&lt;p&gt;A Zcash é péssima. Depois de estudá-la melhor, chamá-la de Ztrash é o certo a fazer. Fazer diferente não seria honesto.&lt;/p&gt;&#10;&lt;h2 id="créditos"&gt;Créditos&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://lukesmith.xyz/articles/monero-and-other-privacy-coins/?ref=aquasp.blog" target="_blank" rel="noopener"&#10; &gt;https://lukesmith.xyz/articles/monero-and-other-privacy-coins/&lt;/a&gt;&lt;/p&gt;&#10;</description></item></channel></rss>