Português

Blog · Guias de deploy

Como fazer deploy de um site Eleventy em 2026: um comando, HTTPS e um Dockerfile que fica com você

Pela equipe da Pethost · · Atualizado em · 9 min de leitura

Você tem um site Eleventy que faz build no seu notebook e quer colocá-lo no ar em um endereço com HTTPS. No Pethost, isso é um comando, pethost deploy, rodado na pasta que tem o package.json. Ele escreve o Dockerfile para você, roda seu script de build e serve o _site. Um site pequeno, feito como os primeiros passos do Eleventy ensinam, teve o build feito e foi iniciado em 24 segundos na primeira vez.

Em resumo
  • Um script: "build": "npx @11ty/eleventy" no package.json, como a própria página de deploy do Eleventy recomenda.
  • Um comando: pethost deploy na pasta que tem o package.json. Ele escreve um Dockerfile que roda o script e serve o _site.
  • Endereços limpos funcionam: /about/ responde 200, /about leva até ele, e um endereço que não é uma página responde 404.
  • O endereço: https://my-site.yourname.pethost.app, com HTTPS na hora. Seu próprio domínio é um registro DNS.
  • O preço: € 9,99 por mês por 2 vCPU, 3 GB e 30 GB, para este site e todos os seus outros projetos. Não existe plano gratuito.

O que você precisa para fazer deploy de um site Eleventy em 2026

Três coisas: o site, o comando pethost e uma conta no Pethost.

O site aqui é feito como os primeiros passos do Eleventy ensinam, com duas páginas em Markdown:

mkdir my-site && cd my-site
npm init -y
npm pkg set type="module"
npm install @11ty/eleventy
echo '# Heading' > index.md
echo '# About' > about.md

Adicione o script de build. A página de deploy do Eleventy o recomenda para todo provedor que faz o build do site para você, e é assim que o pethost sabe que este é um site Eleventy com build feito por um comando:

"scripts": {
  "build": "npx @11ty/eleventy"
}

O comando é um programa, instalado com uma linha. Todos os comandos dele estão na referência da CLI.

curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell

A conta precisa de um plano. Se você não entrou, o pethost deploy abre o seu navegador e faz o seu login. Se você ainda não tem um plano, ele mostra onde escolher um e espera.

Faça o deploy do site Eleventy com um comando

Vá até a pasta que tem o package.json e rode pethost deploy. Esta é a tela inteira, para o site acima:

$ cd my-site
$ pethost deploy
Name it [my-site]:    it will live at https://my-site.sam.pethost.app
✓ Packed 5 files, 55 KB   (left out node_modules)
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Eleventy site detected, wrote Dockerfile.
✓ Packed 6 files, 56 KB   (left out node_modules)
✓ Uploaded straight to your machine
✓ Built and started in 24 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80
✓ app listens on 80 → https://my-site.sam.pethost.app
  It answers 200.

https://my-site.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
  1. Ele pergunta uma coisa O nome do projeto, que é a primeira palavra do endereço. Enter usa o nome da pasta.
  2. A máquina não encontra nada para rodar A pasta vai direto para a sua máquina, sem o node_modules. A linha com o X é a resposta dela: um projeto roda a partir de um Dockerfile ou de um arquivo Compose, e a pasta ainda não tem nenhum dos dois.
  3. O pethost escreve o Dockerfile Ele viu o @11ty/eleventy no package.json e um script que o roda, e envia a pasta de novo.
  4. A máquina faz o build e o inicia Depois o pethost acessa o próprio endereço e mostra o que ele respondeu: 200.

O arquivo .pethost diz qual projeto é esta pasta. Faça o commit dele junto com o Dockerfile, e o próximo deploy não pergunta nada.

O Dockerfile que o pethost escreve para o Eleventy

Este é o arquivo como foi escrito na pasta do site, inteiro:

# Written by pethost deploy for this Eleventy site: package.json builds it with "npx
# @11ty/eleventy", which writes _site, Node 24 (no .nvmrc names another), npm installs
# it (package-lock.json).
# It is yours now: change it as you like. pethost does not write it again.

FROM node:24 AS build
WORKDIR /app

COPY . .

# Every dependency: what builds the project, and may start it, is among the ones for
# development.
RUN --mount=type=cache,target=/root/.npm \
    npm install

RUN npm run build

# The site is files: Caddy serves them on port 80.
FROM caddy:2
COPY --from=build /app/_site /srv

COPY <<'EOF' /etc/caddy/Caddyfile
:80 {
	root * /srv
	# A browser that takes its answers compressed gets them so.
	encode
	# Names that begin with a dot are no pages;
	# .well-known is the one such folder that is there for visitors.
	@own {
		path */.*
		not path /.well-known/*
	}
	error @own 404
	# A page's address works without its ".html", and a folder's leads to its index.html.
	try_files {path} {path}.html {path}/
	file_server
	# An address that is no page: the site's own 404.html, if it has one.
	handle_errors 404 {
		rewrite * /404.html
		file_server
	}
}
EOF
EXPOSE 80

As primeiras linhas dizem o que o pethost leu na sua pasta. Três coisas vêm de lá:

A segunda metade é um pequeno servidor web para o _site, a pasta de saída padrão do Eleventy. Se a máquina não consegue fazer o build ou iniciar o Dockerfile que o pethost escreveu, o pethost tira o arquivo da sua pasta e diz o que falhou.

Os endereços limpos do Eleventy funcionam?

O Eleventy escreve o about.md em _site/about/index.html, então o endereço da página é /about/. Perguntamos ao site no ar o que um visitante pergunta:

O que o site Eleventy no ar respondeu
EndereçoResposta
/200, a página inicial
/about/200, a página
/about308, um redirecionamento para /about/
/nothing404

Se o seu site tem um 404.html na raiz do _site, um endereço que não é uma página mostra esse arquivo.

Altere uma página e faça o deploy de novo

Edite uma página e rode o mesmo comando. O segundo deploy levou 4 segundos, porque a máquina guarda as camadas do build e o cache do npm:

$ pethost deploy
my-site (.pethost)
✓ Packed 7 files · uploaded · built and started in 4 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env, port 80
  · kept the project's x-pethost
  It answers 200.
https://my-site.sam.pethost.app

Para fazer o build e o deploy a cada push, conecte o repositório uma vez:

pethost github sam/my-site          # from now on, every push deploys itself

O Pethost lê só os repositórios que você deu ao GitHub App dele. Se um deploy der errado, pethost rollback coloca de volta a versão anterior, e a sua máquina guarda as três versões antes da atual. Um agente de IA pode fazer tudo isso por você pelo servidor MCP do Pethost: como um agente faz o deploy de um projeto e cuida dele. O mesmo comando faz o deploy de um site VitePress.

Use seu próprio domínio no site

Qualquer nome sob o domínio da sua conta já é um endereço na hora, com HTTPS. Um domínio seu leva um comando e um registro DNS:

pethost domain add www.example.com

O comando mostra o registro a criar: um CNAME do seu nome para o nome da sua máquina. O certificado chega sozinho assim que o nome resolve, e se renova sozinho. pethost password coloca uma página de senha na frente do site inteiro, para um site que ainda não é público.

O que você recebe pelo preço

O Pethost custa € 9,99 por mês por tudo o que você hospeda, com 2 vCPU, 3 GB de memória e 30 GB de disco. Um site Eleventy depois do build são arquivos atrás de um pequeno servidor web, então a máquina tem espaço para o backend de um formulário de contato, um banco de dados e os seus outros projetos. Não há taxa por projeto e nada é medido: o segundo site não custa nada a mais, e um mês com muitos leitores também não.

O que já vem feito para você: HTTPS com certificados que se renovam sozinhos, deploys a partir do GitHub, backups noturnos guardados por 14 dias, SSH em qualquer container, e cada requisição contada. O painel mostra os caminhos mais acessados dos últimos 30 dias, que, para um blog, é a lista dos posts que as pessoas leem de verdade. A máquina está sempre ligada, então uma página nunca espera um cold start. Os planos estão na parte de preços da página inicial.

Quais páginas as pessoas leem. Os dez caminhos mais acessados de um projeto, com sua fatia e tempos de resposta, e o log de requisições individuais.
O painel do Pethost: os dez caminhos mais acessados de um projeto, com fatia, contagem e tempos de resposta, e o log de requisições individuais.

O Pethost é a melhor escolha para

  • Quem tem um blog e algo mais: o site Eleventy, um app e um banco de dados em uma máquina, em uma só fatura
  • Desenvolvedores solo com vários projetos paralelos, cada um com seu próprio site
  • Quem deixa o agente fazer o deploy: o Claude Code ou o Codex coloca o site no ar e lê os logs dele
  • Equipes pequenas que querem um site atrás de uma página de senha até o lançamento

Procure outra opção se

  • Sua aplicação precisa de várias regiões ou de autoscaling

Perguntas

Um site Eleventy precisa de Dockerfile para fazer deploy?

No Pethost, um projeto roda a partir de um Dockerfile ou de um arquivo Compose, e você não precisa escrevê-lo: em uma pasta que não tem nenhum dos dois, o pethost deploy escreve o Dockerfile de um site Eleventy e faz o deploy. O arquivo fica na sua pasta, e você pode alterá-lo.

Qual comando de build o deploy do Eleventy usa?

O seu próprio script build do package.json, por exemplo "build": "npx @11ty/eleventy". O Dockerfile roda npm run build e serve o _site, a pasta de saída padrão do Eleventy.

Por que o pethost deploy não escreveu um Dockerfile para o meu site Eleventy?

Ele escreve um quando o package.json tem o @11ty/eleventy e um script que o roda. Adicione "build": "npx @11ty/eleventy" aos scripts e rode o comando de novo.

Dá para fazer deploy de um site Eleventy do GitHub a cada push?

Sim. Faça o deploy da pasta uma vez com pethost deploy e depois rode pethost github owner/repository. A partir daí, cada push no repositório faz o build e o deploy sozinho, e pethost rollback volta para um commit anterior.

Como usar um domínio próprio com HTTPS em um site Eleventy?

Rode pethost domain add www.example.com e crie o único registro DNS que ele mostra, um CNAME para o nome da sua máquina. O certificado chega sozinho assim que o nome resolve, e se renova sozinho.

Quanto custa hospedar um site Eleventy no Pethost?

€ 9,99 por mês no Starter, com 2 vCPU, 3 GB e 30 GB e sem taxa por projeto: seus outros sites, apps e bancos de dados também rodam lá. Não existe plano gratuito. Os preços são sem IVA.

As telas são deploys de um site de duas páginas feito como os primeiros passos do Eleventy ensinam, com o Eleventy 3.1.6 e o pethost 0.2.1, em uma máquina de teste nossa que nunca tinha feito build de nada. A conta nelas é a de exemplo, sam.

  1. Eleventy: primeiros passos
  2. Eleventy: deploy e hospedagem
  3. pethost, a linha de comando do Pethost

Coloque seus projetos no ar hoje

Publique apps, bots e bancos de dados pelo seu agente, pelo GitHub ou pelo navegador, quantos couberem, a um preço fixo. Nada medido, nada cobrado à parte.

Hospede tudo por € 9,99/mês