# Cópias de segurança

Cópia completa e semanal de cada VPS sem o desligar, com 4 guardadas, cópia à mão e transferência com link de 72 horas.

Fonte: https://ardumaker.com/pt/docs/backups/

- Categoria: Servidores e infraestrutura
- Estado: Disponível
- Requisitos: Um VPS da empresa (ligado ou desligado); Para ver as cópias: acesso ao VPS; Para pedir uma cópia, uma transferência ou alterar a exclusão: ser admin da empresa
- Ferramentas MCP (Só leem): `listar_backups_vps`, `ver_backup_vps`, `ver_estado_descarga_backup_vps`
- Ferramentas MCP (Destrutivas): `crear_backup_vps`, `crear_descarga_backup_vps`, `configurar_backups_vps`

## O que permite fazer?

- Ter uma cópia automática de cada VPS a cada 7 dias, sem o desligar.
- Pedir uma cópia fora de horário.
- Baixar uma cópia completa em um `.tar` com um link que expira às 72 horas.
- Excluir um VPS das cópias automáticas, ou voltar a incluí-lo.
- Conservar para sempre a última cópia de um VPS que é eliminado.

## Quando convém usar?

- Antes de uma mudança grande (migrar uma base, atualizar o sistema): pedir uma cópia à mão.
- Para levar uma imagem completa do VPS para fora da ArduMaker.
- Para um VPS de testes que não precisa de cópia: excluí-lo.

## Como funciona na ArduMaker?

### O ciclo

- Cada VPS ativo ou desligado entra no ciclo a cada 7 dias.
- Tira-se um snapshot a quente: o VPS continua a funcionar.
- As cópias são processadas uma de cada vez, porque uma cópia carrega o disco e a rede do host, que atende outros VPS.
- Se uma cópia falhar, tenta-se de novo com espera crescente (30 minutos, 1 hora, 2 horas… até 24 horas).
- Conservam-se as últimas 4 cópias; as anteriores são apagadas sozinhas.
- Antes de a salvar verifica-se a integridade; uma cópia que não coincide é descartada.

### Cópia à mão e transferência

1. Um admin pede a cópia (`crear_backup_vps`). Não corre no pedido: fica na fila e o processo de cópias pega nela; demora minutos.
2. Depois de concluída, um admin pede a transferência (`crear_descarga_backup_vps`). A plataforma prepara o arquivo e envia por correio um link a quem a pediu.
3. O estado da transferência passa por `pending`, `staging` e `ready` (ou `expired`, `failed`). Com `ready` aparece a `url`.
4. O link expira às 72 horas.

> **PELIGRO:** O link de transferência é a credencial da imagem completa do VPS: discos, chaves e bases. Deve ser entregue apenas a quem o pediu.

## O que muda realmente?

- Nada muda dentro do VPS: o snapshot temporário é apagado no fim, mesmo se falhar.
- A cópia fica no armazenamento da ArduMaker, fora do host do VPS.
- Ao eliminar um VPS, a sua última cópia é guardada para sempre; se essa cópia não puder ser feita, o VPS não é apagado e fica parado com um alerta.
- Excluir um VPS deixa de o copiar; as cópias existentes ficam, mas deixam de ser renovadas.

## O que há em uma cópia

Um único `.tar`, porque as peças soltas não restauram nada:

| Arquivo | Conteúdo |
| --- | --- |
| `LEEME.md` | Como restaurar à mão, com o nome do VPS e os seus domínios |
| `instancia.tar.gz` | A instância completa, com os seus snapshots e redirecionamentos de porta |
| `nginx/` | A configuração nginx dos domínios do VPS no host |
| `letsencrypt/` | Os certificados dos domínios próprios |
| `manifiesto.json` | Plano, domínios, repositórios e empresa; os domínios sem certificado na cópia, em `ssl_domains_excluidos` |
| `SHA256SUMS` | Somas para detetar corrupção parcial |

Os certificados da plataforma (zona da ArduMaker) não viajam na cópia: quem restaurar noutro lado precisa de um próprio. Não há uma ferramenta para restaurar automaticamente: o `LEEME.md` explica o procedimento manual.

## Esquema

**Uma cópia, de ponta a ponta**

```text
Snapshot a quente (o VPS continua a funcionar)
  ↓
Exportação (instância + nginx + certificados + manifesto)
  ↓
Verificação (somas de controlo)
  ↓
Armazenamento da ArduMaker (guardam-se as últimas 4)
  ↓
Transferência (opcional) (link por correio, 72 h)
```

## Resultado esperado

- `listar_backups_vps` devolve as cópias da mais nova para a mais velha, com estado, tamanho, data e se há uma transferência preparada.
- `ver_backup_vps` mostra o que contém cada cópia segundo o seu manifesto.
- Um membro vê só as cópias concluídas; um admin da empresa vê também as tentativas falhadas, mas não o motivo técnico, que fala de infraestrutura compartilhada.

```bash
sha256sum -c SHA256SUMS
```

## Erros e resolução

| Resposta | Causa | O que fazer |
| --- | --- | --- |
| 400 VPS excluído | O VPS está excluído das cópias | Incluí-lo com `configurar_backups_vps` |
| 409 | Já há uma cópia na fila ou a correr | Esperar que termine |
| 429 | Pediu-se outra cópia há menos de 60 minutos, ou há 3 transferências ativas na empresa | Esperar, ou baixar ou deixar expirar transferências |
| 400 ao pedir transferência | A cópia não está concluída ou não tem arquivo | Escolher uma cópia concluída |
| 404 `Backup not found` | Não existe, ou é uma tentativa falhada que um membro não pode ver | Pedir a um admin |

Pedir a transferência duas vezes devolve a mesma enquanto estiver ativa. `crear_backup_vps` e `crear_descarga_backup_vps` aceitam `idempotency_key`. Não é possível apagar uma cópia a partir do MCP.

## Relação com MCP

Sim, nos perfis `/mcp` e `/mcp/vps`.

| Ferramenta | Tipo | Permissão |
| --- | --- | --- |
| `listar_backups_vps`, `ver_backup_vps` | Leitura | Acesso ao VPS |
| `ver_estado_descarga_backup_vps` | Leitura | Admin (a resposta traz o link) |
| `crear_backup_vps` | Escrita | Admin; uma por hora por VPS |
| `crear_descarga_backup_vps` | Escrita (dado sensível) | Admin |
| `configurar_backups_vps` | Escrita | Admin |

Não há ferramenta para apagar cópias: é irreversível e deixa o VPS com uma cópia a menos. Referência em [/mcp/docs](https://ardumaker.com/pt/mcp/docs) e exemplos em [/mcp/vps](https://ardumaker.com/pt/mcp/vps).

## Funcionalidades relacionadas

- [Servidores VPS](https://ardumaker.com/pt/docs/vps/)
- [Certificados SSL](https://ardumaker.com/pt/docs/ssl/)
- [Nginx](https://ardumaker.com/pt/docs/nginx/)
- [Tarefas agendadas](https://ardumaker.com/pt/docs/cron/)
- [Planos de VPS](https://ardumaker.com/pt/docs/planes-vps/)
