# Regras e limites

## O que pode ir num hotsite

Arquivos estáticos: HTML, CSS, JavaScript, imagens, fontes, PDF, JSON. O site
é servido como está, com cache de uma semana para arquivos de mídia e código.
Um `404.html` na raiz vira a página de erro.

**Nada roda no servidor.** Arquivos `.php`, `.cgi`, `.py`, `.sh` e similares
são recusados na hora do upload, e mesmo que um passasse, o servidor responde
404 para eles. Isso é de propósito: hotsites são estáticos. Se o projeto
precisa de PHP ou banco, ele pertence à trilha de WordPress no multisite de rapadura.net. Veja
[Sites WordPress](wordpress.md).

**Segredos são recusados.** `.env`, chaves (`.pem`, `.key`, `id_rsa`), pastas
`.ssh`/`.aws`, `wp-config.php` e parecidos barram a publicação inteira, com a
lista do que foi encontrado. A solução é publicar só a pasta de saída do
build, nunca a raiz do repositório.

Pastas de ruído (`.git`, `node_modules`, `.cache`, `vendor`) são ignoradas em
silêncio.

## Nomes

- Um hotsite é `nome.zona`. Zonas: `rapadura.net` e `phpcomrapadura.org`.
- O nome tem de 1 a 63 caracteres: letras minúsculas, dígitos e hifens
  simples. Nada de `--`, acento ou ponto.
- Nomes reservados (`www`, `mail`, `panel`, `agents`, `api`, `blog`, `admin`,
  entre outros) e nomes já usados por outro site no servidor são recusados.
- Um nome apagado recentemente fica reservado para restauração; escolha outro.

## Limites

| o quê | padrão |
|---|---|
| sites por pessoa | 20 |
| tamanho por site | 500 MB |
| tamanho por arquivo | 100 MB |
| arquivos por site | 20.000 |
| versões guardadas | 20 (as mais antigas são apagadas, a versão no ar nunca) |

`rapadura zones` mostra os valores em vigor. Precisa de mais? Fale com o
administrador.

## Segurança e acesso

- Ninguém recebe SSH, painel ou senha de servidor. Só a CLI.
- Login é pelo GitHub, por convite. Cada máquina ganha um token próprio,
  guardado em `~/.config/rapadura/credentials.json` com permissão `0600`.
- Tokens expiram em 90 dias e podem ser revogados a qualquer hora
  (`rapadura logout` revoga o da máquina atual).
- Você só enxerga e altera os seus sites. O administrador enxerga todos.
- Toda ação fica no registro de auditoria: quem, o quê, em qual site, quando.
- **Nunca** cole o seu token em chat, commit, issue ou log. Se vazou, revogue.

## Versões e volta

Cada publicação é uma versão imutável, numerada a partir de 1. A troca de
versão é atômica: ou o site inteiro muda, ou nada muda. Antes de dizer que
deu certo, o gateway valida a configuração, recarrega o servidor e confere
que a nova versão está realmente sendo servida. Se qualquer etapa falhar, a
versão anterior continua no ar e o erro volta para você.
