Instalação

Há várias formas de instalar o Databasus: script automatizado (recomendado), docker run simples, Docker Compose, Helm para Kubernetes ou Docker Compose com Caddy para produção.

Requisitos de sistema

O Databasus precisa dos seguintes recursos mínimos para funcionar corretamente:

  • CPU: pelo menos 1 núcleo de CPU
  • RAM: mínimo de 500 MB de RAM
  • Armazenamento: 5 GB para a instalação, mais o espaço de que precisar para os backups
  • Docker: Docker Engine 20.10+ e Docker Compose v2.0+

Opção 1: script de instalação (recomendado, apenas Linux)

O script de instalação vai:

  • ✅ Instalar o Docker com Docker Compose (se ainda não estiverem instalados)
  • ✅ Configurar o Databasus
  • ✅ Ativar a inicialização automática após reiniciar o sistema
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash

Neste caso, o Databasus é instalado no diretório /opt/databasus.

Opção 2: docker run simples

A forma mais fácil de executar o Databasus:

docker run -d \
  --name databasus \
  -p 4005:4005 \
  -v ./databasus-data:/databasus-data \
  --restart unless-stopped \
  databasus/databasus:latest

Este único comando vai:

  • ✅ Iniciar o Databasus
  • ✅ Salvar todos os dados no diretório ./databasus-data
  • ✅ Reiniciar automaticamente após reiniciar o sistema

Opção 3: configuração com Docker Compose

Crie um arquivo docker-compose.yml com a seguinte configuração:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped

Depois execute:

docker compose up -d

Observe que a inicialização pode levar até ~2 minutos.

Opção 4: Kubernetes com Helm

Para implantações em Kubernetes, instale diretamente a partir do registro OCI. Escolha o método de acesso adequado ao seu ambiente.

Com ClusterIP + port-forward (desenvolvimento)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace

Acesso via port-forward:

kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005

Com LoadBalancer (ambientes de nuvem)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set service.type=LoadBalancer

Obtenha o IP externo e acesse o Databasus:

kubectl get svc databasus-service -n databasus
# Access at http://<EXTERNAL-IP>:4005

Com Ingress (acesso por domínio)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=backup.example.com

Para mais opções (NodePort, TLS, HTTPRoute para Gateway API), consulte a documentação do Helm chart.

Execução com reverse proxy Caddy

Para produção, você pode usar o Caddy como reverse proxy para ter certificados HTTPS automáticos e acesso seguro ao Databasus. Abaixo está uma configuração completa de Docker Compose com Caddy.

Docker Compose com Caddy

Crie um arquivo docker-compose.yml:

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped
    # No port exposed - Caddy handles external access

  caddy:
    container_name: caddy
    image: caddy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy-data:/data
      - ./caddy-config:/config
    restart: unless-stopped
    depends_on:
      - databasus

Crie um Caddyfile no mesmo diretório:

backup.example.com {
    reverse_proxy databasus:4005
}

Depois inicie os serviços:

docker compose up -d

Esta configuração oferece:

  • ✅ HTTPS automático com certificados Let's Encrypt
  • ✅ Redirecionamento de HTTP para HTTPS
  • ✅ Reverse proxy para o Databasus
  • ✅ Dados persistentes tanto do Caddy quanto do Databasus

Substitua backup.example.com pelo seu domínio real. Confirme que o DNS do domínio aponta para o endereço IP do seu servidor antes de iniciar os serviços.

Primeiros passos

Depois da instalação:

  1. Inicie e acesse o Databasus: suba o Databasus e abra http://localhost:4005
  2. Crie a primeira tarefa de backup: clique em "New Backup" e configure a conexão com a sua base de dados PostgreSQL
  3. Configure o agendamento: defina a frequência dos backups (por hora, dia, semana, mês ou cron)
  4. Escolha o destino de armazenamento: indique onde salvar os backups (disco local, S3, Google Drive, etc.)
  5. Configure as notificações: adicione canais (Slack, Telegram, Discord) para receber alertas sobre o estado dos backups
  6. Comece a fazer backup: salve a configuração e acompanhe a execução do primeiro backup!

Health checks

Health check no Docker

Um health check embutido é ativado automaticamente para docker run e Docker Compose. O container é marcado como healthy assim que o Databasus começa a responder a requisições (após um curto período de inicialização). Ele verifica apenas se a aplicação responde, por isso o container não é reiniciado por condições não críticas, como pouco espaço em disco.

Endpoint de monitoramento / status

Para monitoramento de uptime e painéis de status:

GET http://<host>:4005/api/v1/system/health

Retorna 200 quando está tudo bem, ou 503 com o motivo quando algo precisa de atenção: base de dados interna, cache, uso de disco (acima de 95%), ferramentas cliente de base de dados, agendador de backups e atividade do agente de verificação. Sem autenticação, e o CORS está aberto para monitores baseados em navegador.

⚠️ Importante: serve apenas para monitoramento e alertas, não como liveness probe de container ou Kubernetes — retorna 503 em estados degradados mas funcionais (por exemplo, um disco quase cheio), o que reiniciaria um container que está funcionando.

Kubernetes

Use uma liveness/readiness probe que execute databasus healthcheck; reserve o endpoint /api/v1/system/health para monitoramento externo.

Como atualizar o Databasus?

Atualizar a instalação em Docker

Para atualizar o Databasus em execução via Docker, é preciso pará-lo, limpar o cache do Docker e reiniciar o container.

  1. Vá ao diretório onde o Databasus está instalado (normalmente /opt/databasus)
  2. Pare o container: docker compose stop
  3. Limpe o cache do Docker: docker system prune -a
  4. Reinicie o container: docker compose up -d

Isso baixa a versão mais recente do Databasus do Docker Hub (se você não tiver fixado a versão no arquivo docker-compose.yml).

Atualizar a instalação via Helm

Para atualizar o Databasus em Kubernetes via Helm, use o comando upgrade:

helm upgrade databasus oci://ghcr.io/databasus/charts/databasus -n databasus

Se tiver valores personalizados, adicione -f values.yaml ou use flags --set para preservar a sua configuração. O Helm faz uma atualização gradual (rolling update) para a nova versão.

Migrar do Postgresus

Databasus é o novo nome do Postgresus. Se você usa o Postgresus atualmente, pode continuar com ele ou migrar para o Databasus.

Importante: apenas renomear a imagem Docker não basta, porque o Postgresus e o Databasus usam pastas de dados e nomes de base de dados interna diferentes.

Para migrar:

  1. Pare o container do Postgresus: docker compose stop
  2. Instale o Databasus por qualquer um dos métodos acima (use um caminho de volume diferente, ./databasus-data)
  3. Recrie manualmente as suas bases de dados, armazenamentos e notificadores no Databasus

Durante a migração, o Postgresus e o Databasus podem funcionar lado a lado, com portas e caminhos de volume diferentes.

Resolução de problemas

O container não inicia

Se o container não iniciar, verifique os logs:

docker logs databasus

Porta já em uso

Se a porta 4005 já estiver em uso, você pode mudá-la no docker-compose.yml:

ports:
  - "8080:4005" # Change 8080 to any available port

Erros de permissão

Se você encontrar problemas de permissões no diretório de dados:

sudo chown -R $USER:$USER ./databasus-data
chmod -R 755 ./databasus-data