---
title: "Como fazer deploy de um site Jekyll em 2026"
description: "Faça o deploy de um site Jekyll com um Dockerfile curto e um comando: o Ruby roda o jekyll build e o Caddy serve o _site com HTTPS, por € 9,99 por mês."
---

[Blog](https://pethost.dev/pt/blog/) · Guias de deploy

# Como fazer deploy de um site Jekyll em 2026: um Dockerfile, um comando e HTTPS

Pela equipe da Pethost · 25 de outubro de 2026 · 11 min de leitura

Você tem um site Jekyll que faz build no seu notebook com `bundle exec jekyll build` e quer colocá-lo no ar em um endereço com HTTPS. No Pethost, isso leva um Dockerfile de 38 linhas, que você copia desta página, e um comando, `pethost deploy`. O site que o `jekyll new` cria ficou no ar em 34 segundos na primeira vez, e em 3 segundos depois de uma alteração.

**Em resumo**

- **Um arquivo:** um Dockerfile em duas etapas. O Ruby 4.0 roda `bundle install` e `JEKYLL_ENV=production bundle exec jekyll build`, e depois o Caddy serve o `_site`.
- **Um comando:** `pethost deploy` na pasta que tem o `_config.yml`. 34s na primeira vez, 3s para o deploy seguinte.
- **Os endereços do Jekyll funcionam:** `/about/` responde 200, `/about` leva até ele, um post responde com ou sem `.html`, e uma página que não existe mostra o próprio `404.html` do site.
- **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 Jekyll em 2026

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

**O site** aqui é o que o guia de início rápido do Jekyll cria. O Jekyll pede o Ruby 2.7.0 ou mais recente; nós o criamos com o Ruby 4.0.9:

```
gem install jekyll bundler
jekyll new my-site
cd my-site
```

O `jekyll new` escreve um `Gemfile` com o Jekyll 4.4.1, o tema minima e o plugin jekyll-feed, roda `bundle install`, que escreve o `Gemfile.lock`, e adiciona uma página inicial, uma página “sobre”, um post de boas-vindas, um `404.html` e um `.gitignore` que deixa o `_site` de fora. Mantenha o `Gemfile.lock`: o build instala exatamente as gems que ele indica.

**O comando** é um programa, instalado com uma linha. Todos os comandos dele estão na [referência da CLI](https://pethost.dev/docs/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.

## Por que um site Jekyll precisa de um Dockerfile no Pethost

No Pethost, um projeto roda a partir de um Dockerfile ou de um arquivo Compose. Para os tipos de projeto que ele conhece, como um [site Eleventy](https://pethost.dev/pt/blog/deploy-eleventy-site/), o `pethost deploy` escreve o Dockerfile sozinho. O Jekyll não está entre eles, então, na pasta que o `jekyll new` criou, o deploy para na resposta da máquina. Esta é a tela inteira:

```
$ pethost deploy
Name it [my-site]:              it will live at https://my-site.sam.pethost.app
✓ Packed 8 files, 17 KB
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
  Your coding agent writes one in a minute: "Write a Dockerfile for this app".
  Then run pethost deploy again.     How Pethost runs a folder: https://pethost.dev/docs/api/#CreateProject
```

Nada foi criado: nenhum projeto, nenhum endereço. Adicione o arquivo abaixo e rode o mesmo comando.

## O Dockerfile para um site Jekyll

Salve isto como `Dockerfile` na pasta que tem o `_config.yml`. Este é o arquivo inteiro:

```
# Jekyll builds the site into _site, and Caddy serves it.
FROM ruby:4.0 AS build
WORKDIR /site

# The gems first: a change to a page does not install them again.
COPY Gemfile Gemfile.lock ./
RUN bundle install

COPY . .
RUN JEKYLL_ENV=production bundle exec jekyll build

# The site is files: Caddy serves them on port 80.
FROM caddy:2
COPY --from=build /site/_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
```

A primeira etapa faz o build do site como você faz no seu notebook:

- **`ruby:4.0`** é a imagem completa do Ruby, com um compilador C. Algumas gems do Jekyll, como eventmachine e bigdecimal, compilam ao serem instaladas: na `ruby:4.0-slim`, que não tem compilador, o `bundle install` falhou. Se o seu site fixa um Ruby no `.ruby-version`, coloque o mesmo aqui.
- **As gems vêm primeiro.** O `Gemfile` e o `Gemfile.lock` são copiados sozinhos, então uma alteração em uma página ou em um post reaproveita as gems que a máquina já instalou. Um lock escrito em um Mac também funciona: fizemos o build do site com um lock que indicava só o macOS, e o `bundle install` escolheu sozinho as gems para Linux.
- **`JEKYLL_ENV=production`** é o build que a própria etapa de deploy do Jekyll indica. O que os seus layouts mostram só em produção, como analytics, entra nas páginas.

A segunda etapa é o pequeno servidor web que o `pethost` escreve para todo site feito de arquivos. Ele serve o `_site`, a pasta de saída do Jekyll, e nada da imagem do Ruby vai junto: o site rodou com 15 MB de memória.

## Faça o deploy do site Jekyll com um comando

Rode `pethost deploy` de novo, agora com o Dockerfile na pasta. Esta é a tela inteira:

```
$ pethost deploy
Name it [my-site]:              it will live at https://my-site.sam.pethost.app
✓ Packed 9 files, 18 KB
✓ Uploaded straight to your machine
✓ Built and started in 34 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 pasta vai direto para a sua máquina** Nove arquivos: o que o `jekyll new` escreveu, e o Dockerfile. A linha que começa com `·` é a máquina dizendo o que fez sozinha: ela encontrou um Dockerfile e nenhum arquivo Compose, então escreveu um.
3. **A máquina faz o build e o inicia** Os 34 segundos incluem baixar as imagens do Ruby e do Caddy, que a máquina ainda não tinha. 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.

### Os endereços do Jekyll funcionam?

O Jekyll escreve o `about.markdown` em `_site/about/index.html`, e um post no endereço que o permalink padrão dele dá, `/:categories/:year/:month/:day/:title:output_ext`. Perguntamos ao site no ar o que um visitante pergunta:

**O que o site Jekyll no ar respondeu**

| Endereço | Resposta |
| --- | --- |
| `/` | 200, a página inicial com a lista de posts |
| `/about/` | 200, a página |
| `/about` | 308, um redirecionamento para `/about/` |
| `/jekyll/update/2026/10/25/welcome-to-jekyll.html` | 200, o post de boas-vindas |
| `/jekyll/update/2026/10/25/welcome-to-jekyll` | 200, o mesmo post |
| `/feed.xml` | 200, o feed Atom |
| `/nothing` | 404, a própria página do site: “Page not found :(” |

As páginas, o feed e a folha de estilos chegaram comprimidos a um navegador que pediu isso.

## Defina a url do site, altere uma página e faça o deploy de novo

O `jekyll new` deixa a `url` vazia no `_config.yml`, então os links do feed ficaram sem host: `/jekyll/update/2026/10/25/welcome-to-jekyll.html`. Um leitor de feeds precisa do endereço inteiro. Defina-o, e o título do site junto:

```
title: My site
url: "https://my-site.sam.pethost.app"
```

Depois rode o mesmo comando. O segundo deploy levou 3 segundos, porque a máquina guarda as camadas do build: as gems não foram instaladas de novo.

```
$ pethost deploy
my-site (.pethost)
✓ Packed 10 files · uploaded · built and started in 3 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
```

Os links do feed agora começam com `https://my-site.sam.pethost.app/`, e os títulos das páginas dizem “My site”.

### Faça o deploy do site Jekyll a partir do GitHub a cada push

Coloque a pasta em um repositório, com o Dockerfile e o `.pethost`; o `_site` fica de fora, como diz o `.gitignore` do Jekyll. Depois conecte o repositório uma vez:

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

A máquina baixa cada commit e faz o build dele com o mesmo Dockerfile. 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](https://pethost.dev/pt/blog/hosting-for-ai-coding-agents/).

## Use seu próprio domínio no site Jekyll

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. Um certificado do Let's Encrypt chega sozinho assim que o nome resolve, e se renova sozinho. Depois defina a `url` no `_config.yml` com o novo endereço e faça o deploy de novo, para que o feed e os links das páginas usem esse endereço. `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. O site Jekyll depois do build são arquivos atrás do Caddy, em 15 MB dessa memória, então o plano tem espaço para o backend de um formulário de comentários, um banco de dados e os seus outros projetos. Não há [taxa por projeto](https://pethost.dev/pt/blog/unlimited-projects-flat-monthly-fee/) e nada é medido: um segundo blog não custa nada a mais, e o mês em que um post chega à primeira página de um fórum também não.

- **€ 9,99** por mês por todos os seus projetos, nada medido
- **34s** para fazer o build e iniciar o site, incluindo baixar as imagens
- **3s** para o deploy depois de uma alteraçã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, sem nenhum script nas suas páginas. 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. Nada hiberna, então um leitor [nunca espera um cold start](https://pethost.dev/pt/blog/always-on-hosting-no-cold-starts/). Os planos estão na parte de [preços](https://pethost.dev/pt/#pricing) da página inicial.

**Quais posts 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.](https://pethost.dev/shots/traffic.webp)

### O Pethost é a melhor escolha para

- **Quem tem um blog e faz mais do que um blog**: o site Jekyll, um app e o banco de dados dele em um só plano, em uma só fatura
- **Desenvolvedores com vários sites**, um site de documentação e uma página de projeto para cada um, por um preço fixo
- **Quem deixa o agente fazer o deploy**: o Claude Code ou o Codex faz o deploy do site e lê os logs dele
- **Equipes pequenas** que mantêm 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 Jekyll precisa de Dockerfile para fazer deploy no Pethost?

Sim. No Pethost, um projeto roda a partir de um Dockerfile ou de um arquivo Compose, e o `pethost deploy` não escreve um para o Jekyll. As 38 linhas desta página são o arquivo inteiro: o Ruby faz o build do site, e o Caddy serve o `_site`.

### Qual versão do Ruby o Dockerfile do Jekyll usa?

A que a primeira linha dele indica: `ruby:4.0`, que era o Ruby 4.0.9 quando fizemos o build. O Jekyll pede o Ruby 2.7.0 ou mais recente, e um site que fixa uma versão no `.ruby-version` deve indicar a mesma lá.

### Por que os links do feed do meu Jekyll são relativos?

Porque a `url` está vazia no `_config.yml`, como o `jekyll new` a deixa. Defina-a com o endereço do site, por exemplo `url: "https://my-site.sam.pethost.app"`, e faça o deploy de novo: os links do feed passam a ter o endereço inteiro.

### Dá para fazer deploy de um site Jekyll 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 faz o build do site com o mesmo Dockerfile e o deploy dele, e `pethost rollback` volta para um commit anterior.

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

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. Um certificado do Let's Encrypt chega sozinho assim que o nome resolve, e se renova sozinho.

### Quanto custa hospedar um site Jekyll 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 do site que o `jekyll new` criou, com o Jekyll 4.4.1 e o minima 2.5.2, o Ruby 4.0.9 e o Bundler 4.0.23, e o pethost 0.2.4, em uma máquina de teste nossa que não tinha nem a imagem do Ruby nem a do Caddy antes do primeiro deploy. A conta nelas é a de exemplo, `sam`.

1. [Jekyll: início rápido](https://jekyllrb.com/docs/)
2. [Jekyll: instalação e requisitos](https://jekyllrb.com/docs/installation/)
3. [Jekyll: passo a passo, deploy](https://jekyllrb.com/docs/step-by-step/10-deployment/)
4. [Jekyll: permalinks](https://jekyllrb.com/docs/permalinks/)
5. [pethost, a linha de comando do Pethost](https://pethost.dev/docs/cli/)

## 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](https://console.pethost.dev/)

## Continue lendo

- 25 de outubro de 2026 [Como fazer deploy de um app Streamlit em 2026: um comando, HTTPS e um Dockerfile que fica com você](https://pethost.dev/pt/blog/deploy-streamlit-app/) Faça o deploy de um app Streamlit com um comando: o pethost deploy escreve o Dockerfile, roda streamlit run e serve o app com HTTPS, por € 9,99 por mês.
- 24 de outubro de 2026 [Como fazer deploy de um app PHP em 2026: Laravel, Symfony ou páginas PHP puras com um comando](https://pethost.dev/pt/blog/deploy-php-app/) Faça deploy de um app PHP com um comando: o pethost deploy escreve o Dockerfile de Laravel, Symfony ou páginas PHP puras e o serve com HTTPS por € 9,99 por mês.
- 10 de outubro de 2026 [Como fazer deploy de um app Gin em 2026: um comando, HTTPS e um Dockerfile que fica com você](https://pethost.dev/pt/blog/deploy-gin-app/) Faça o deploy de um app Go Gin com um comando: o pethost deploy escreve o Dockerfile, faz o build do programa e o serve com HTTPS, por € 9,99 por mês.
- 10 de outubro de 2026 [Como fazer deploy de um app Go Fiber em 2026: um comando, HTTPS e um Dockerfile que fica com você](https://pethost.dev/pt/blog/deploy-fiber-app/) Faça o deploy de um app Go Fiber com um comando: o pethost deploy escreve o Dockerfile, faz o build em 45 segundos e o serve com HTTPS, por € 9,99 por mês.

[Todos os artigos](https://pethost.dev/pt/blog/) · [Sobre a Pethost](https://pethost.dev/about/) · [Preços](https://pethost.dev/pt/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

- [Postgres](https://pethost.dev/pt/postgres/)

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
