Solución de la comunidad

Instala Redis en CasaOS de forma segura con Docker Compose

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

La forma más segura actualmente de ejecutar Redis en CasaOS es usarlo como contenedor Docker con un volumen de datos persistente y una autenticación y exposición de red explícitas. El tutorial del foro de 2023 es demasiado antiguo para usarlo como guía completa de implementación, porque los valores predeterminados actuales de Redis y las expectativas de seguridad han evolucionado.

Comienza con la imagen oficial de Redis, mantén el puerto 6379 privado para la LAN o la red de Docker, conserva /data y decide si necesitas persistencia AOF/RDB antes de almacenar datos de aplicaciones en Redis.

Usa la imagen oficial de Redis

La actual guía de Redis para Docker documenta la imagen oficial redis:<version> y el puerto estándar 6379.

Usa Docker Compose en 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"

Cambia la contraseña y ajusta la dirección de enlace solo si otro host realmente necesita acceso directo a Redis.

Conserva /data

Sin un volumen del host, los datos de Redis permanecen dentro de la capa desechable del contenedor y pueden desaparecer cuando se vuelva a crear el contenedor. Asigna /data a un almacenamiento duradero de CasaOS.

Elige la persistencia deliberadamente

AOF registra las escrituras y mejora la capacidad de recuperación, mientras que las instantáneas RDB consumen menos recursos. Es posible que tu aplicación también tolere Redis como caché efímera. Adapta el modo de persistencia a la función que Redis desempeña para ti.

No expongas Redis directamente a Internet

El puerto 6379 no debe reenviarse públicamente. Si otra aplicación se ejecuta en el mismo host de Docker, coloca ambos contenedores en una red privada de Docker y conéctalos mediante el nombre del servicio.

Usa autenticación y ACL

Un único requirepass es sencillo para uso doméstico, mientras que Redis también admite actualmente ACL para definir usuarios y comandos con mayor granularidad. No dejes sin autenticación una instancia de Redis accesible de forma remota.

Prueba desde redis-cli

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

Un servidor saludable debería devolver PONG.

Haz copias de seguridad de los datos persistentes de Redis

Si Redis contiene algo importante, detén las escrituras o coordínalas y haz una copia de seguridad del volumen persistente según el método RDB/AOF que hayas elegido. No asumas que reiniciar el contenedor equivale a hacer una copia de seguridad.

La guía de implementación de Docker también se aplica a las aplicaciones personalizadas de CasaOS.

Comprueba los límites de memoria antes de usarlo en producción

Redis es un software que prioriza la memoria. Supervisa el tamaño real del conjunto de datos y la RAM del host en lugar de asumir que pocas claves implican un consumo reducido. En un host compartido de CasaOS, considera establecer deliberadamente una política de maxmemory solo después de entender cómo reacciona tu aplicación ante la expulsión de datos.

Usa una red privada de Docker para las dependencias de las aplicaciones

Si Redis existe únicamente para otro contenedor, como una plataforma de automatización o una aplicación web, coloca ambos servicios en la misma red privada de Docker y omite por completo el puerto del host. La aplicación puede conectarse a redis:6379 mediante el nombre del servicio.

Verifica la persistencia después de volver a crear el contenedor

Después de la configuración inicial, escribe una clave de prueba, vuelve a crear el contenedor con el mismo volumen y confirma que la clave siga disponible. Esta sencilla prueba demuestra que la ruta del host es realmente persistente antes de que una aplicación importante dependa de ella.

Preguntas frecuentes

¿Qué puerto usa Redis?

6379 de forma predeterminada.

¿Debo asignar 6379 a todas las interfaces?

No. Enlázalo solo donde sea necesario, preferiblemente a localhost o a una ruta privada de Docker/LAN.

¿Dónde deben almacenarse los datos de Redis?

Asigna el directorio /data del contenedor a un almacenamiento persistente de CasaOS.

¿Necesito RedisInsight?

No. Es una interfaz de gestión opcional; Redis funciona sin ella.