{"id":129,"date":"2017-04-16T10:54:00","date_gmt":"2017-04-16T13:54:00","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2017\/04\/install-hexo-on-ubuntu\/"},"modified":"2026-09-08T02:28:46","modified_gmt":"2026-09-08T05:28:46","slug":"install-hexo-on-ubuntu","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2017\/04\/install-hexo-on-ubuntu\/","title":{"rendered":"Instalando Hexo no Ubuntu"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro despejando uma pilha de arquivos de texto no funil do Hexo, que os transforma no site pronto exibido no notebook\" src=\"\/wp-content\/uploads\/2026\/09\/hexo-v3.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<div style=\"background:#fff8e1;border-left:4px solid #8b1a1a;padding:.8em 1em;margin:1em 0\"><strong>Nota (2026):<\/strong> O howto original instalava Node com nvm <code data-no-translation=\"\">v0.35.1<\/code> no Ubuntu 16.04\/18.04. Hexo 8.x pede Node <strong>\u2265 20.19<\/strong>. Abaixo: nvm 0.40.7, LTS atual, <code data-no-translation=\"\">hexo-cli<\/code> sem sudo, e o fluxo oficial (init, server, generate). Este site rodou Hexo por anos e migrou para WordPress em 2026 \u2014 o gerador continua \u00fatil para blog est\u00e1tico.<\/div>\n<p>Hexo \u00e9 um gerador de site est\u00e1tico em Node.js: Markdown entra, HTML sai, sem banco. GitHub Pages, Netlify, um nginx apontando para <code data-no-translation=\"\">public\/<\/code>. Em setembro de 2026 o pacote npm <code data-no-translation=\"\">hexo<\/code> est\u00e1 na <strong>8.1.2<\/strong>. O CLI oficial continua <code data-no-translation=\"\">npm install -g hexo-cli<\/code> \u2014 mas <em>without<\/em> root.<\/p>\n<p><!-- more --><\/p>\n<p><iframe style=\"width:100%;aspect-ratio:16\/9;border:0\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/Ii4le3TJqTw\" allowfullscreen loading=\"lazy\"><\/iframe><\/p>\n<h2>Node via nvm (n\u00e3o use sudo npm)<\/h2>\n<p>Hexo 8.0+ exige Node 20.19 ou mais novo. O apt do Ubuntu atrasa. nvm 0.40.7 (18 de agosto de 2026) instala o LTS no seu home:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">sudo apt update\nsudo apt install -y build-essential git curl\ncurl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.40.7\/install.sh | bash\nsource ~\/.bashrc\nnvm install --lts\nnvm use --lts\nnode -v\nnpm -v\n<\/code><\/pre>\n<p>Se aparecer <code data-no-translation=\"\">EACCES<\/code> no npm global, o prefixo est\u00e1 errado \u2014 n\u00e3o corrija com sudo. nvm j\u00e1 aponta o npm para <code data-no-translation=\"\">~\/.nvm<\/code>. Alternativa: <a href=\"https:\/\/github.com\/Schniz\/fnm\">fnm<\/a>.<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">npm install -g hexo-cli\nhexo version\n<\/code><\/pre>\n<h2>Primeiro blog<\/h2>\n<p><code data-no-translation=\"\">hexo init<\/code> clona o starter (tema Landscape) e instala deps com npm, yarn ou pnpm \u2014 o que estiver no PATH:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">hexo init ~\/src\/blog\ncd ~\/src\/blog\nhexo new \"Ol\u00e1, Hexo\"\nhexo server\n<\/code><\/pre>\n<p>Abre <code data-no-translation=\"\">http:\/\/localhost:4000<\/code>. O rascunho fica em <code data-no-translation=\"\">source\/_posts\/<\/code>, Markdown + front-matter. Gerar est\u00e1tico:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">hexo generate\n# ou: hexo g\nls public\/\n<\/code><\/pre>\n<p>The <code data-no-translation=\"\">public\/<\/code> \u00e9 o que o nginx ou o Pages servem. N\u00e3o commite essa pasta \u2014 o <code data-no-translation=\"\">.gitignore<\/code> do starter j\u00e1 a ignora.<\/p>\n<h2>Publicar<\/h2>\n<p>GitHub Pages, em 2026, \u00e9 Action, n\u00e3o s\u00f3 <code data-no-translation=\"\">hexo-deployer-git<\/code> no <code data-no-translation=\"\">gh-pages<\/code>. O docs oficial: <a href=\"https:\/\/hexo.io\/docs\/github-pages\">hexo.io\/docs\/github-pages<\/a>. Deploy por rsync\/git ainda existe:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">npm install hexo-deployer-git --save\n# _config.yml \u2192 deploy: type: git \/ repo: \/ branch:\nhexo clean &amp;&amp; hexo deploy\n<\/code><\/pre>\n<p>Um nginx na VPS: <code data-no-translation=\"\">root \/caminho\/do\/blog\/public;<\/code> and <code data-no-translation=\"\">hexo generate<\/code> no cron ou no CI. Sem PHP, sem MariaDB.<\/p>\n<h2>O que ficou<\/h2>\n<p>Node LTS, <code data-no-translation=\"\">hexo-cli<\/code> no usu\u00e1rio, <code data-no-translation=\"\">hexo init<\/code>, <code data-no-translation=\"\">hexo s<\/code>, <code data-no-translation=\"\">hexo g<\/code>. O nvm 0.35 e o Ubuntu 16.04 do post original n\u00e3o. Docs: <a href=\"https:\/\/hexo.io\/docs\/\">hexo.io\/docs<\/a> \u00b7 <a href=\"https:\/\/github.com\/hexojs\/hexo\">github.com\/hexojs\/hexo<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Hexo \u00e9 um gerador de site est\u00e1tico em Node.js: Markdown entra, HTML sai, sem banco. GitHub Pages, Netlify, um nginx apontando para public\/. Em setembro de 2026 o pacote npm hexo est\u00e1 na 8.1.2. O CLI oficial continua npm install &#8230; <a title=\"Instalando Hexo no Ubuntu\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2017\/04\/install-hexo-on-ubuntu\/\" aria-label=\"Read more about Instalando Hexo no Ubuntu\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[33],"tags":[54,68,4,35],"class_list":["post-129","post","type-post","status-publish","format-standard","hentry","category-howtos","tag-hexo","tag-html","tag-linux","tag-www"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=129"}],"version-history":[{"count":6,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/129\/revisions"}],"predecessor-version":[{"id":1075,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/129\/revisions\/1075"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}