# Começar

Conferido com o código em 2026-10-30 (versão 0.1.0).

O SeeDropHost publica sites que já estão prontos: um HTML, um `.zip` ou uma pasta. Ainda não existe uma instância pública hospedada, então o primeiro passo é subir um servidor — no seu computador (abaixo) ou numa VPS ([guia de VPS, em inglês](/docs/self-host/)).

> **Nota:** a cobrança dos planos hospedados abre com o primeiro servidor público ([preços](/pt/precos/)). Tudo abaixo roda na sua máquina, sem custo da nossa parte.

## 1. Suba o servidor

Precisa do Node.js 24 (ele roda TypeScript direto, sem etapa de build).

```bash
git clone <endereco-do-repositorio> seedrophost && cd seedrophost
npm install
npm run dev
```

O modo de desenvolvimento (`SDH_DEV=1`) usa o token `dev-token` e atende:

- painel e API: `http://localhost:8787`
- sites: `http://<site>.localhost:8787`

Nos comandos abaixo, defina:

```bash
export SDH_API_URL=http://localhost:8787
export SDH_TOKEN=dev-token
```

## 2. Crie um site

```bash
curl -X POST "$SDH_API_URL/v1/sites" \
  -H "Authorization: Bearer $SDH_TOKEN" -H "content-type: application/json" \
  -d '{"name":"meu-site"}'
```

Ou `npx sdh create meu-site`. Nome: letras minúsculas, números e hífen, até 63 caracteres, sem `--`.

## 3. Publique — escolha um dos três jeitos

### Um único HTML

```bash
curl --data-binary @index.html -H "content-type: text/html" \
  -H "Authorization: Bearer $SDH_TOKEN" \
  "$SDH_API_URL/v1/sites/meu-site/deploys/html"
```

O arquivo vira o `/index.html` do site.

### Um .zip

```bash
curl --data-binary @site.zip -H "content-type: application/zip" \
  -H "Authorization: Bearer $SDH_TOKEN" \
  "$SDH_API_URL/v1/sites/meu-site/deploys/zip"
```

Se tudo dentro do zip estiver numa única pasta, essa pasta vira a raiz do site.

### Uma pasta (linha de comando)

```bash
npx sdh deploy ./dist --site meu-site
```

Resultado esperado (os números variam):

```text
✓ deploy dpl-… pronto em 0.4s
  12 arquivos, 12 enviados (o resto já estava guardado)
  prévia:  http://dpl-…--meu-site.localhost:8787
  no ar:   http://meu-site.localhost:8787
  SEO/GEO: nota 91/100, 3 ponto(s) a melhorar
```

Rode o mesmo comando de novo: `0 enviados` — só sobe o que mudou.

## 4. Leia o resultado

A resposta da API (e `npx sdh deploys meu-site`) traz:

- `urls.site`: o endereço no ar; `urls.deploy`: o endereço exato deste deploy.
- `deploy.report.seo.score` (0 a 100) e `issues`: o que corrigir para buscadores e respostas de IA.
- `deploy.report.forms`: formulários encontrados no HTML.
- `deploy.report.rules.problems`: linhas do `_redirects` / `_headers` que não foram entendidas.

## 5. Primeiro rascunho, depois publicar

Acrescente `?draft=1` (API) ou `--draft` (linha de comando). Nada muda para quem visita; você recebe um endereço de prévia que não entra no Google (`noindex`).

```bash
npx sdh deploy ./dist --site meu-site --draft
npx sdh publish meu-site dpl-…
```

## Desfazer

Todo deploy continua guardado. Para voltar, publique um anterior:

```bash
npx sdh deploys meu-site          # veja o id do deploy anterior
npx sdh publish meu-site dpl-anterior
```

## Sem conta (se o servidor permitir)

Quando quem opera o servidor liga `SDH_ANON_DROP=1`, qualquer pessoa publica sem token. O site fica no ar por 24 horas, a menos que seja reivindicado.

```bash
curl --data-binary @site.zip -H "content-type: application/zip" "$SDH_API_URL/v1/drop"
# ou: npx sdh drop ./dist
```

A resposta traz `url`, `expires_at` e um `claim_token` que aparece uma única vez. Para manter o site, reivindique com um token: `npx sdh reivindicar <claim_token> --nome meu-site`. Sites sem conta nunca entram no Google e não recebem formulários. Veja os [limites (em inglês)](/docs/limits/).

## Próximos passos

- [Migrar do Netlify](/pt/docs/migrar-do-netlify/)
- Em inglês: [API HTTP](/docs/api/) · [Linha de comando](/docs/cli/) · [MCP para agentes](/docs/mcp/) · [VPS](/docs/self-host/)
