Pular para o conteúdo principal

Guia de Instalação

A aplicação pode ser implantada usando Docker, Portainer Stacks, ou Podman. Após a instalação, você pode querer configurar o TIMEZONE, conforme descrito em Configurar Fuso Horário e precisa configurar os servidores Duplicati para enviar logs de backup para duplistatus, conforme descrito na seção Configuração do Duplicati.

Pré-requisitos​

Certifique-se de ter o seguinte instalado:

Autenticação​

duplistatus a partir da versão 0.9.x requer autenticação de usuário. Uma conta admin padrão é criada automaticamente ao instalar a aplicação pela primeira vez ou ao atualizar de uma versão anterior:

  • nome de usuário: admin
  • senha: Duplistatus09

Você pode criar contas de usuários adicionais em Configurações > Usuários após o primeiro login.

Os administradores também podem opcionalmente exigir Chaves de API para Duplicati e Homepage, e restringir o acesso com listas de permissão de IP. Ambas estão desativadas por padrão.

IMPORTANTE

O sistema impõe um comprimento mínimo de senha e complexidade. Esses requisitos podem ser ajustados usando as PWD_ENFORCE e PWD_MIN_LEN variáveis de ambiente. Usar uma senha sem complexidade suficiente ou com comprimento curto pode comprometer a segurança. Use essas configurações com cuidado.

Imagens de Container​

Você pode usar as imagens de:

  • Docker Hub: docker.io/wsjbr/duplistatus:latest
  • GitHub Container Registry: ghcr.io/wsj-br/duplistatus:latest

Opção 1: Usando Docker Compose​

Este é o método recomendado para implantações locais ou quando você deseja personalizar a configuração. Ele usa um arquivo docker compose para definir e executar o container com todas as suas configurações.

# download the compose file
wget https://github.com/wsj-br/duplistatus/raw/refs/heads/master/production.yml -O duplistatus.yml
# start the container
docker compose -f duplistatus.yml up -d

Verifique a seção Fuso Horário para mais detalhes sobre como ajustar o fuso horário e o formato de número/data/hora.

Opção 2: Usando Portainer Stacks (Docker Compose)​

  1. Vá para "Stacks" no seu servidor Portainer e clique em "Adicionar stack".
  2. Nomeie seu stack (por exemplo, "duplistatus").
  3. Escolha "Build method" como "Web editor".
  4. Copie e cole isto no editor da web:
# duplistatus production compose.yml
services:
duplistatus:
image: ghcr.io/wsj-br/duplistatus:latest
container_name: duplistatus
restart: unless-stopped
environment:
- TZ=Europe/London
- PWD_ENFORCE=true
- PWD_MIN_LEN=8
ports:
- "9666:9666"
volumes:
- duplistatus_data:/app/data
networks:
- duplistatus_network

networks:
duplistatus_network:
driver: bridge

volumes:
duplistatus_data:
name: duplistatus_data
  1. Verifique a seção Fuso Horário para mais detalhes sobre como ajustar o fuso horário e o formato de número/data/hora.
  2. Clique em "Deploy the stack".

Opção 3: Usando Portainer Stacks (Repositório GitHub)​

  1. Em Portainer, vá para "Stacks" e clique em "Adicionar stack".
  2. Nomeie seu stack (por exemplo, "duplistatus").
  3. Escolha "Build method" como "Repository".
  4. Digite a URL do repositório: https://github.com/wsj-br/duplistatus.git
  5. No campo "Compose path", digite: production.yml
  6. (opcional) Defina as variáveis de ambiente TZ, LANG, PWD_ENFORCE e PWD_MIN_LEN na seção "Variáveis de ambiente". Verifique a seção Timezone para mais detalhes sobre como ajustar o fuso horário e o formato de número/data/hora.
  7. Clique em "Deploy the stack".

Opção 4: Usando Docker CLI​

# Create the volume
docker volume create duplistatus_data

# Start the container
docker run -d \
--name duplistatus \
-p 9666:9666 \
-e TZ=Europe/London \
-e LANG=en_GB \
-v duplistatus_data:/app/data \
ghcr.io/wsj-br/duplistatus:latest
  • O volume duplistatus_data é usado para armazenamento persistente. A imagem do container usa Europe/London como fuso horário padrão e en_GB como localidade padrão (idioma).

Opção 5: Usando Podman (CLI) rootless​

Para configurações básicas, você pode iniciar o container sem configuração de DNS:

mkdir -p ~/duplistatus_data
# Start the container (standalone)
podman run -d \
--name duplistatus \
--userns=keep-id \
-e TZ=Europe/London \
-e LANG=en_GB \
-p 9666:9666 \
-v ~/duplistatus_data:/app/data \
ghcr.io/wsj-br/duplistatus:latest

Configurando DNS para Containers Podman​

Se você precisar de configuração de DNS personalizada (por exemplo, para Tailscale MagicDNS, redes corporativas ou configurações de DNS personalizadas), você pode configurar manualmente servidores DNS e domínios de pesquisa.

Encontrando sua configuração de DNS:

  1. Para sistemas systemd-resolved (a maioria das distribuições Linux modernas):

    # Get DNS servers
    resolvectl status | grep "DNS Servers:" | awk '{print "--dns " $3}'

    # Get DNS search domains
    resolvectl status | grep "DNS Domain:" | awk '{print "--dns-search " $3}'
  2. Para sistemas não-systemd ou como fallback:

    cat /run/systemd/resolve/resolv.conf 2>/dev/null || cat /etc/resolv.conf

Procure por linhas que começam com nameserver (para servidores DNS) e search (para domínios de pesquisa). Se você não tiver certeza sobre suas configurações de DNS ou domínios de pesquisa de rede, consulte seu administrador de rede para obter essas informações.

Exemplo com configuração de DNS:

mkdir -p ~/duplistatus_data
# Start the container with DNS configuration
podman run -d \
--name duplistatus \
--userns=keep-id \
--dns 100.100.100.100 \
--dns-search example.com \
-e TZ=Europe/London \
-e LANG=en_GB \
-p 9666:9666 \
-v ~/duplistatus_data:/app/data \
ghcr.io/wsj-br/duplistatus:latest

Você pode especificar múltiplos servidores DNS adicionando múltiplos sinalizadores --dns:

--dns 8.8.8.8 --dns 1.1.1.1

Você pode especificar múltiplos domínios de pesquisa adicionando múltiplos sinalizadores --dns-search:

--dns-search example.com --dns-search internal.local

Nota: Ignore endereços IPv6 (contendo :) e endereços localhost (como 127.0.0.53) ao configurar servidores DNS.

Verifique a seção Timezone para mais detalhes sobre como ajustar o fuso horário e o formato de número/data/hora.

Opção 6: Usando Podman Pods​

Podman pods permitem que você execute múltiplos containers em um namespace de rede compartilhado. Isso é útil para testes ou quando você precisa executar duplistatus junto com outros containers.

Configuração básica de pod:

mkdir -p ~/duplistatus_data

# Create the pod
podman pod create --name duplistatus-pod --publish 9666:9666/tcp

# Create the container in the pod
podman create --name duplistatus \
--pod duplistatus-pod \
--user root \
-e TZ=Europe/London \
-e LANG=en_GB \
-v ~/duplistatus_data:/app/data \
ghcr.io/wsj-br/duplistatus:latest

# Start the pod
podman pod start duplistatus-pod

Configurando DNS para Podman Pods​

Ao usar pods, a configuração de DNS deve ser definida no nível do pod, não no nível do contêiner. Use os mesmos métodos descritos na Opção 5 para encontrar seus servidores DNS e domínios de pesquisa.

Exemplo com configuração de DNS:

mkdir -p ~/duplistatus_data

# Create the pod with DNS configuration
podman pod create --name duplistatus-pod \
--publish 9666:9666/tcp \
--dns 100.100.100.100 \
--dns-search example.com

# Create the container in the pod
podman create --name duplistatus \
--pod duplistatus-pod \
--user root \
-e TZ=Europe/London \
-e LANG=en_GB \
-v ~/duplistatus_data:/app/data \
ghcr.io/wsj-br/duplistatus:latest

# Start the pod
podman pod start duplistatus-pod

Gerenciando o pod:

# Stop the pod (stops all containers in the pod)
podman pod stop duplistatus-pod

# Start the pod
podman pod start duplistatus-pod

# Remove the pod and all containers
podman pod rm -f duplistatus-pod

Configuração Essencial​

  1. Configure seus servidores Duplicati para enviar mensagens de log de backup para duplistatus (obrigatório). No Duplicati 2.0.9.106 e posterior, use --send-http-json-urls conforme descrito nesse guia.
  2. Entre no duplistatus – veja as instruções no Guia do Usuário.
  3. Colete logs de backup iniciais – use o recurso Coletar Logs de Backup para popular o banco de dados com dados históricos de backup de todos os seus servidores Duplicati. Isso também atualiza automaticamente os intervalos de monitoramento de backup com base na configuração de cada servidor.
  4. Configure as definições do servidor – configure aliases e notas do servidor em Configurações → Servidor para tornar seu painel mais informativo.
  5. Configure as definições de NTFY – configure notificações via NTFY em Configurações → NTFY.
  6. Configure as definições de e-mail – configure notificações por e-mail em Configurações → E-mail.
  7. Configure notificações de backup – configure notificações por backup ou por servidor em Configurações → Notificações de Backup.

Consulte as seções a seguir para configurar as configurações opcionais, como fuso horário, formato de número e configuração de segurança.