---
title: "Como fazer deploy de um site VitePress em 2026"
description: "Faça o deploy de um site VitePress com um comando: o pethost deploy escreve o Dockerfile, faz o build do site e o serve com HTTPS, por € 9,99 por mês."
---

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

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

Pela equipe da Pethost · 10 de outubro de 2026 · Atualizado em 25 de outubro de 2026 · 9 min de leitura

Você tem um site VitePress 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ê, faz o build do site e mostra o endereço dele. O starter do próprio VitePress teve o build feito e foi iniciado em 43 segundos na primeira vez.

**Em resumo**

- **Um comando:** `pethost deploy` na pasta que tem o `package.json`. Não há arquivo de configuração para escrever nem configurações de build para preencher.
- **O que ele faz:** encontra o script que roda `vitepress build`, escreve um Dockerfile que o roda e serve o `docs/.vitepress/dist`.
- **O endereço:** `https://my-docs.yourname.pethost.app`, com HTTPS na hora. Seu próprio domínio é um registro DNS.
- **O Dockerfile é seu:** ele fica na pasta para você guardar e alterar, e o pethost nunca o escreve de novo.
- **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 VitePress em 2026

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

**O site** é uma pasta como os primeiros passos do VitePress a deixam: `npm add -D vitepress`, depois `npx vitepress init`. O assistente coloca as páginas em `docs/` e três scripts no `package.json`:

```
"scripts": {
  "docs:dev": "vitepress dev ./docs",
  "docs:build": "vitepress build ./docs",
  "docs:preview": "vitepress preview ./docs"
}
```

**O comando** é um programa, instalado com uma linha:

```
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 VitePress com um comando

Vá até a pasta que tem o `package.json` e rode `pethost deploy`. Esta é a tela inteira, para o starter que o `vitepress init` escreve:

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

https://my-docs.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 `vitepress` no `package.json` e um script que roda `vitepress build`, 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 VitePress

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

```
# Written by pethost deploy for this VitePress site: package.json builds it with
# "vitepress build ./docs", which writes docs/.vitepress/dist, 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 docs:build

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

- **O gerenciador de pacotes** é o que o seu lockfile indica: npm, pnpm, Yarn ou Bun.
- **A versão do Node** é a que o `.nvmrc` ou o `.node-version` indica, e o Node 24 quando não há nenhum dos dois.
- **A pasta a servir** segue o script: `vitepress build ./docs` escreve `docs/.vitepress/dist`, e `vitepress build` sozinho escreve `.vitepress/dist`.

A segunda metade é um pequeno servidor web para as páginas depois do build. Perguntamos ao starter no ar o que um visitante pergunta. A página inicial, `/markdown-examples` e `/markdown-examples.html` responderam 200 cada uma, e um endereço que não é uma página respondeu 404 com a própria página “404” do VitePress.

Mais duas coisas mantêm um arquivo errado longe de você. 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. E se a sua configuração define `base` como um caminho do tipo `/docs/`, o pethost não escreve nada e diz por quê: no Pethost, um site fica na raiz do próprio endereço, então defina `base` como `"/"` e faça o deploy de novo.

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

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

```
$ pethost deploy
my-docs (.pethost)
✓ Packed 8 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-docs.sam.pethost.app
```

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

```
pethost github sam/my-docs          # 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](https://pethost.dev/pt/blog/hosting-for-ai-coding-agents/).

## Use seu próprio domínio na documentação

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 docs.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 uma documentação que ainda não é pública.

## 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 VitePress depois do build são arquivos atrás de um pequeno servidor web, então a máquina tem espaço para a aplicação que a documentação descreve, o banco de dados dela e os seus outros projetos. Não há [taxa por projeto](https://pethost.dev/pt/blog/unlimited-projects-flat-monthly-fee/) e nada é medido: o segundo site não custa nada a mais.

- **€ 9,99** por mês por todos os seus projetos, nada medido
- **43s** para fazer o build e iniciar o starter, na primeira vez
- **0** arquivos para escrever manualmente

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 site de documentação, é a lista das páginas que as pessoas leem de verdade. A máquina está sempre ligada, então uma página [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 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.](https://pethost.dev/shots/traffic.webp)

### O Pethost é a melhor escolha para

- **Desenvolvedores que mantêm a documentação ao lado do app**: a API, o banco de dados dela e o site VitePress 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 a documentação 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 VitePress 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 VitePress e faz o deploy. O arquivo fica na sua pasta, e você pode alterá-lo.

### Qual gerenciador de pacotes e versão do Node o build do VitePress usa?

Os que a sua pasta indica. O gerenciador de pacotes é o do seu lockfile: npm, pnpm, Yarn ou Bun. A versão do Node é a do `.nvmrc` ou do `.node-version`, e o Node 24 quando não há nenhum dos dois.

### Dá para fazer deploy do VitePress pelo 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 deploy sozinho, e `pethost rollback` volta para um commit anterior.

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

Rode `pethost domain add docs.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 VitePress 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.

### Por que o pethost deploy recusa um site VitePress que define base?

Um site com build feito com `base` definido como um caminho do tipo `/docs/` procura seus estilos e scripts sob esse caminho. No Pethost, um site fica na raiz do próprio endereço, então o pethost não escreve Dockerfile para ele e avisa. Defina `base` como `"/"` e faça o deploy de novo.

As telas são deploys do site que o `vitepress init` escreve, com o VitePress 1.6.4 e o pethost 0.2.1, em uma máquina de teste nossa. A conta nelas é a de exemplo, `sam`.

1. [VitePress: primeiros passos](https://vitepress.dev/guide/getting-started)
2. [VitePress: faça o deploy do seu site](https://vitepress.dev/guide/deploy)
3. [pethost, a linha de comando do Pethost](https://github.com/pethost-dev/cli#readme)

## 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

- 10 de outubro de 2026 [Como fazer deploy de um site Eleventy em 2026: um comando, HTTPS e um Dockerfile que fica com você](https://pethost.dev/pt/blog/deploy-eleventy-site/) Faça o deploy de um site Eleventy (11ty) com um comando: o pethost deploy escreve o Dockerfile, faz o build do _site e o serve com HTTPS, por € 9,99 por mês.
- 25 de setembro de 2026 [Provedores de hospedagem com servidor MCP oficial em 2026: deploy, logs e rollback comparados](https://pethost.dev/pt/blog/hosting-with-mcp-server/) 18 de 19 plataformas de hospedagem têm servidor MCP oficial em 2026, e duas têm ferramenta de rollback. As do Pethost fazem deploy, leem logs e restauram.
- 16 de setembro de 2026 [Hospedagem para agentes de código com IA em 2026: deixe o Claude Code ou o Codex fazer deploy e debug em produção](https://pethost.dev/pt/blog/hosting-for-ai-coding-agents/) Para o Claude Code ou o Codex fazerem deploy e debug em produção sozinhos, a hospedagem precisa dar cinco coisas ao agente. O Pethost dá, por € 9,99 por mês.
- 27 de setembro de 2026 [Hospedagem europeia com Postgres a preço fixo em 2026: o que € 10 por mês compram](https://pethost.dev/pt/blog/european-hosting-postgres-flat-price/) Um app com Postgres na UE a preço mensal fixo custa € 9,99 no Pethost: 3 GB para todo projeto que couber. Onze provedores, com preços.

[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/)
