Configuração de Storage

BackupAlly suporta múltiplos backends de armazenamento.

Backends Disponíveis

Backend Driver Status
Sistema de arquivos local local Disponível
AWS S3 s3 Disponível
Backblaze B2 b2 Disponível
MinIO minio Disponível

Múltiplos Storages

Cada task pode enviar backups para múltiplos destinos:

[[storage]]
id = "primary"
driver = "s3"
# ...

[[storage]]
id = "secondary"
driver = "b2"
# ...

Os uploads são feitos em paralelo para todos os storages configurados.

Local

Sistema de arquivos local.

[[storage]]
id = "local-backup"
driver = "local"
path = "/backup/data"
permissions = "0750"
retention = "daily 7, weekly 4"
Campo Tipo Obrigatório Descrição
path string Sim Diretório de destino
permissions string Não Permissões (padrão: 0750)
retention string Não Política de retenção

Só path basta (desde 0.35.0). O driver local não exige mais bucket — antes, uma task que só declarava path falhava ao carregar com missing field bucket, mesmo bucket não fazendo sentido nenhum para filesystem local.

Para storage download/restore --from-storage conseguirem achar o arquivo a partir da raiz do storage (não só pelo nome), use raízes absolutas e profundas e dedicadas ao BackupAlly, nunca uma raiz rasa como /var — ver limitações de segurança.

AWS S3

Amazon S3 e serviços compatíveis.

[[storage]]
id = "s3-backup"
driver = "s3"
bucket = "my-backups"
region = "us-east-1"
path = "backups/${hostname}/${target}/${date}"
access_key = "${secret:aws_access_key}"
secret_key = "${secret:aws_secret_key}"
storage_class = "STANDARD_IA"
server_side_encryption = "AES256"
retention = "daily 7, weekly 4, monthly 6"
Campo Tipo Obrigatório Descrição
bucket string Sim Nome do bucket
region string Sim Região AWS
path string Não Prefixo no bucket
access_key string Sim AWS Access Key
secret_key string Sim AWS Secret Key
storage_class string Não Classe de storage
server_side_encryption string Não Criptografia S3
endpoint string Não Endpoint customizado
retention string Não Política de retenção

Storage Classes

Classe Uso
STANDARD Acesso frequente
STANDARD_IA Acesso infrequente
ONEZONE_IA Zona única, infrequente
GLACIER Arquivamento longo prazo
GLACIER_IR Glacier instant retrieval
DEEP_ARCHIVE Arquivamento muito longo prazo

Criptografia S3

Opção Descrição
AES256 SSE-S3 (gerenciado pela AWS)
aws:kms SSE-KMS (chave KMS)

Backblaze B2

Backblaze B2 Cloud Storage.

[[storage]]
id = "b2-backup"
driver = "b2"
bucket = "my-backups"
path = "backups/${hostname}/${date}"
key_id = "${secret:b2_key_id}"
application_key = "${secret:b2_app_key}"
lifecycle_days = 30
retention = "daily 7, weekly 4"
Campo Tipo Obrigatório Descrição
bucket string Sim Nome do bucket
path string Não Prefixo no bucket
key_id string Sim B2 Key ID
application_key string Sim B2 Application Key
lifecycle_days int Não Dias para lifecycle
retention string Não Política de retenção

Criando Credenciais B2

  1. Acesse Backblaze B2
  2. Crie um bucket
  3. Vá em "App Keys"
  4. Crie uma nova Application Key
  5. Copie Key ID e Application Key

MinIO

MinIO e outros serviços S3-compatible.

[[storage]]
id = "minio-backup"
driver = "minio"
endpoint = "https://minio.internal:9000"
bucket = "backups"
path = "daily/${hostname}"
access_key = "${secret:minio_access_key}"
secret_key = "${secret:minio_secret_key}"
use_ssl = true
retention = "daily 7"
Campo Tipo Obrigatório Descrição
endpoint string Sim URL do MinIO
bucket string Sim Nome do bucket
path string Não Prefixo no bucket
access_key string Sim Access Key
secret_key string Sim Secret Key
use_ssl bool Não Usar HTTPS (padrão: true)
retention string Não Política de retenção

Variáveis em Path

Use variáveis dinâmicas no campo path:

path = "backups/${hostname}/${target}/${database_name}/${year}/${month}/${day}"

Ver Variáveis de Template para lista completa.

${database_name} só existe nos drivers que rodam por banco: mysql e postgres com database = "*". Em clickhouse, mongodb e fileset a variável não é preenchida e iria literal para o storage — desde a 0.31.0 o task validate recusa a task nesse caso, com a dica do path fixo (#14).

Retenção

Configure políticas de retenção por storage:

retention = "daily 7, weekly 4, monthly 6"

Ver Políticas de Retenção para detalhes.

Exemplos

Backup Local + S3

[[storage]]
id = "local"
driver = "local"
path = "/backup/quick"
retention = "3"

[[storage]]
id = "s3"
driver = "s3"
bucket = "prod-backups"
region = "us-east-1"
path = "databases/${target}"
access_key = "${secret:aws_access_key}"
secret_key = "${secret:aws_secret_key}"
storage_class = "STANDARD_IA"
retention = "daily 7, weekly 4, monthly 12"

S3 + B2 (Redundância)

[[storage]]
id = "s3-primary"
driver = "s3"
bucket = "primary-backups"
region = "us-east-1"
retention = "daily 7, weekly 4"

[[storage]]
id = "b2-secondary"
driver = "b2"
bucket = "secondary-backups"
retention = "daily 7, weekly 4"

MinIO Self-hosted

[[storage]]
id = "minio"
driver = "minio"
endpoint = "https://minio.local:9000"
bucket = "backups"
access_key = "${secret:minio_key}"
secret_key = "${secret:minio_secret}"
retention = "daily 30"
By Borlot.com.br on 11/02/2026