Solução da comunidade

Instale o Redis no CasaOS com o Docker Compose de forma segura

A 2023 CasaOS tutorial introduced Redis installation but did not cover current persistence, authentication, or safe network exposure.

A forma mais segura atualmente de executar o Redis no CasaOS é como contentor Docker, com um volume de dados persistente e autenticação/exposição de rede explícitas. O tutorial do fórum de 2023 é demasiado antigo para servir de guia completo de implementação, pois as predefinições atuais do Redis e as expectativas de segurança evoluíram.

Comece com a imagem oficial do Redis, mantenha a porta 6379 privada à LAN ou à rede Docker, torne /data persistente e decida se precisa de persistência AOF/RDB antes de guardar dados da aplicação.

Use a imagem oficial do Redis

O guia atual do Redis para Docker documenta a imagem oficial redis:<version> e a porta padrão 6379.

Use o Docker Compose no CasaOS

services:
  redis:
    image: redis:8
    container_name: redis
    restart: unless-stopped
    command: ["redis-server", "--appendonly", "yes", "--requirepass", "CHANGE_ME"]
    volumes:
      - /DATA/AppData/redis/data:/data
    ports:
      - "127.0.0.1:6379:6379"

Altere a palavra-passe e ajuste o endereço de associação apenas se outro anfitrião precisar realmente de acesso direto ao Redis.

Torne /data persistente

Sem um volume no anfitrião, os dados do Redis ficam na camada descartável do contentor e podem desaparecer quando este for recriado. Associe /data a armazenamento persistente do CasaOS.

Escolha o modo de persistência com ponderação

O AOF regista as escritas e melhora a capacidade de recuperação, enquanto as snapshots RDB são mais leves. A sua aplicação também poderá tolerar o Redis como cache efémera. Escolha o modo de persistência de acordo com a função do Redis.

Não exponha o Redis diretamente à Internet

A porta 6379 não deve ser encaminhada publicamente. Se outra aplicação for executada no mesmo anfitrião Docker, coloque ambos os contentores numa rede Docker privada e ligue-se através do nome do serviço.

Use autenticação e ACLs

Um único requirepass é simples para utilização doméstica, enquanto as versões atuais do Redis também suportam ACLs para utilizadores e comandos com permissões mais granulares. Não deixe uma instância Redis acessível remotamente sem autenticação.

Testar com redis-cli

docker exec -it redis redis-cli -a CHANGE_ME ping

Um servidor em bom estado deve devolver PONG.

Fazer cópias de segurança dos dados persistentes do Redis

Se o Redis guardar dados importantes, interrompa ou coordene as gravações e faça uma cópia de segurança do volume persistente de acordo com o método RDB/AOF escolhido. Não assuma que reiniciar o contentor equivale a fazer uma cópia de segurança.

O guia de implementação do Docker também se aplica a aplicações personalizadas do CasaOS.

Verificar os limites de memória antes da utilização em produção

O Redis é um software que privilegia a memória. Monitorize o tamanho real do conjunto de dados e a RAM do anfitrião, em vez de assumir que um número reduzido de chaves significa um espaço ocupado reduzido. Num anfitrião CasaOS partilhado, considere uma política maxmemory deliberada apenas depois de perceber como a sua aplicação reage à expulsão de dados.

Usar uma rede privada do Docker para dependências de aplicações

Se o Redis existir apenas para outro contentor, como uma plataforma de automatização ou uma aplicação Web, coloque ambos os serviços na mesma rede privada do Docker e não associe a porta ao anfitrião. A aplicação pode ligar-se a redis:6379 pelo nome do serviço.

Verificar a persistência após recriar um contentor

Após a configuração inicial, crie uma chave de teste, recrie o contentor com o mesmo volume e confirme que a chave continua disponível. Este teste simples comprova que o caminho do anfitrião é realmente persistente antes de uma aplicação importante depender dele.

Perguntas frequentes

Que porta usa o Redis?

6379 por predefinição.

Devo associar a porta 6379 a todas as interfaces?

Não. Associe apenas quando necessário, de preferência ao localhost ou a um caminho privado do Docker/LAN.

Onde devem ficar os dados do Redis?

Associe o diretório /data do contentor ao armazenamento persistente do CasaOS.

Preciso do RedisInsight?

Não. É uma interface de gestão opcional; o Redis funciona sem ela.