Solution communautaire

Installer Redis sur CasaOS avec Docker Compose en toute sécurité

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

La méthode la plus sûre actuellement pour exécuter Redis sur CasaOS consiste à utiliser un conteneur Docker avec un volume de données persistant et une authentification ainsi qu'une exposition réseau configurées explicitement. Le tutoriel du forum datant de 2023 est trop ancien pour servir de guide de déploiement complet, car les paramètres par défaut actuels de Redis et les exigences de sécurité ont évolué.

Commencez par utiliser l'image Redis officielle, gardez le port 6379 privé sur le réseau local ou Docker, rendez /data persistant et déterminez si vous avez besoin de la persistance AOF/RDB avant d'y stocker des données applicatives.

Utiliser l'image Redis officielle

Le guide Docker Redis actuel documente l'image officielle redis:<version> et le port standard 6379.

Utiliser Docker Compose sur 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"

Modifiez le mot de passe et ajustez l'adresse d'écoute uniquement si un autre hôte doit réellement accéder directement à Redis.

Rendre /data persistant

Sans volume hôte, les données Redis résident dans la couche jetable du conteneur et peuvent disparaître lorsque celui-ci est recréé. Mappez /data vers un espace de stockage CasaOS durable.

Choisir délibérément la persistance

AOF enregistre les écritures et améliore la récupérabilité, tandis que les instantanés RDB sont plus légers. Votre application peut également tolérer Redis comme cache éphémère. Adaptez le mode de persistance au rôle que Redis joue pour vous.

Ne pas exposer Redis directement sur Internet

Le port 6379 ne doit pas être redirigé publiquement. Si une autre application s'exécute sur le même hôte Docker, placez les deux conteneurs sur un réseau Docker privé et connectez-les par nom de service.

Utiliser l'authentification et les ACL

Un simple requirepass convient à un usage domestique, tandis que Redis prend également en charge les ACL pour gérer plus finement les utilisateurs et les commandes. Ne laissez pas une instance Redis accessible à distance sans authentification.

Tester avec redis-cli

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

Un serveur fonctionnel doit renvoyer PONG.

Sauvegarder les données Redis persistantes

Si Redis contient des données importantes, arrêtez les écritures ou coordonnez-les, puis sauvegardez le volume persistant selon la méthode RDB/AOF choisie. Ne considérez pas qu'un redémarrage du conteneur équivaut à une sauvegarde.

Le guide de déploiement Docker s'applique également aux applications personnalisées de CasaOS.

Vérifier les limites de mémoire avant une utilisation en production

Redis est un logiciel qui privilégie la mémoire. Surveillez la taille réelle du jeu de données et la mémoire vive de l'hôte au lieu de supposer qu'un faible nombre de clés implique une faible empreinte mémoire. Sur un hôte CasaOS partagé, envisagez une politique maxmemory définie délibérément, mais seulement après avoir compris comment votre application réagit à l'éviction.

Utiliser un réseau Docker privé pour les dépendances de l'application

Si Redis n'existe que pour un autre conteneur, comme une plateforme d'automatisation ou une application web, placez les deux services sur le même réseau Docker privé et supprimez complètement le port hôte. L'application peut se connecter à redis:6379 par nom de service.

Vérifier la persistance après la recréation d'un conteneur

Après la configuration initiale, écrivez une clé de test, recréez le conteneur avec le même volume, puis vérifiez que la clé est toujours disponible. Ce test simple prouve que le chemin hôte est réellement persistant avant qu'une application importante n'en dépende.

FAQ

Quel port Redis utilise-t-il ?

6379 par défaut.

Dois-je mapper le port 6379 sur toutes les interfaces ?

Non. Écoutez uniquement là où c'est nécessaire, de préférence sur localhost ou via un réseau Docker/LAN privé.

Où les données Redis doivent-elles être stockées ?

Mappez le répertoire /data du conteneur vers un stockage CasaOS persistant.

Ai-je besoin de RedisInsight ?

Non. Il s'agit d'une interface de gestion facultative ; Redis fonctionne sans elle.