
v0.35.1 no Ubuntu 16.04/18.04. Hexo 8.x pede Node ≥ 20.19. Abaixo: nvm 0.40.7, LTS atual, hexo-cli sem sudo, e o fluxo oficial (init, server, generate). Este site rodou Hexo por anos e migrou para WordPress em 2026 — o gerador continua útil para blog estático.Hexo é um gerador de site estático 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á na 8.1.2. O CLI oficial continua npm install -g hexo-cli — mas without root.
Node via nvm (não use sudo npm)
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:
sudo apt update
sudo apt install -y build-essential git curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm use --lts
node -v
npm -v
Se aparecer EACCES no npm global, o prefixo está errado — não corrija com sudo. nvm já aponta o npm para ~/.nvm. Alternativa: fnm.
npm install -g hexo-cli
hexo version
Primeiro blog
hexo init clona o starter (tema Landscape) e instala deps com npm, yarn ou pnpm — o que estiver no PATH:
hexo init ~/src/blog
cd ~/src/blog
hexo new "Olá, Hexo"
hexo server
Abre http://localhost:4000. O rascunho fica em source/_posts/, Markdown + front-matter. Gerar estático:
hexo generate
# ou: hexo g
ls public/
The public/ é o que o nginx ou o Pages servem. Não commite essa pasta — o .gitignore do starter já a ignora.
Publicar
GitHub Pages, em 2026, é Action, não só hexo-deployer-git no gh-pages. O docs oficial: hexo.io/docs/github-pages. Deploy por rsync/git ainda existe:
npm install hexo-deployer-git --save
# _config.yml → deploy: type: git / repo: / branch:
hexo clean && hexo deploy
Um nginx na VPS: root /caminho/do/blog/public; and hexo generate no cron ou no CI. Sem PHP, sem MariaDB.
O que ficou
Node LTS, hexo-cli no usuário, hexo init, hexo s, hexo g. O nvm 0.35 e o Ubuntu 16.04 do post original não. Docs: hexo.io/docs · github.com/hexojs/hexo.