Guía completa para desplegar Redis con Docker: persistencia y autenticación por contraseña

Por fin tenía Redis corriendo en un contenedor. Probé varias APIs y la lectura/escritura funcionaba bien. Al día siguiente abrí el portátil para revisar el servicio: todos los datos habían desaparecido. Se me heló el corazón.
Quizá te ha pasado lo mismo: reinicias el contenedor de Docker y los datos de Redis parecen no haber existido nunca. Sesiones de usuario perdidas, carritos vacíos, caché desaparecida. Peor aún, no sabes por qué ocurre ni cómo solucionarlo.
La primera vez que me pasó también me asusté. Era un proyecto pequeño; en el entorno de pruebas los datos desaparecieron de repente. No afectaba a producción, pero esa sensación de impotencia no se olvida. Los contenedores son «temporales» por diseño: si los borras, los datos se van; si reinicias sin persistencia, ocurre lo mismo.
En este artículo te guío paso a paso para:
- Configurar persistencia RDB y AOF, para que Redis no pierda datos al reiniciar el contenedor
- Definir autenticación por contraseña, y evitar acceso no autorizado (hay empresas cuyo Redis sin contraseña fue comprometido para minar criptomonedas)
- Montar archivos de configuración, para un despliegue ordenado y mantenible
- Buenas prácticas de producción, incluyendo logs, healthcheck y optimización de rendimiento
Tanto si eres desarrollador backend, ingeniero de operaciones o recién llegado a Docker, si sigues este artículo podrás desplegar un contenedor Redis listo para producción.
¿Por qué un contenedor Redis pierde datos?
Una analogía: un contenedor Docker es como una habitación de hotel; al hacer checkout, lo que dejaste dentro se limpia. Lo mismo con el contenedor: es temporal; al eliminarlo, los datos desaparecen.
Redis guarda los datos por defecto en el sistema de archivos interno del contenedor. Cuando escribes datos, Redis los persiste en rutas como /data/dump.rdb o /data/appendonly.aof. El problema es que esas rutas están dentro del contenedor. Si el contenedor se borra o se recrea, esos datos se pierden.
Caso real: una startup desplegó Redis con Docker en pruebas sin persistencia. Tras reiniciar el servidor, todas las sesiones de usuario desaparecieron: login y carritos a cero. Era solo pruebas, pero el equipo entendió que en contenedores hay que pensar en persistencia.
Se estima que alrededor del 70 % de los casos de pérdida de datos en contenedores Redis se deben a no configurar almacenamiento persistente. En otras palabras, casi todos pisamos esta trampa alguna vez.
El papel del Docker Volume
El Volume (volumen de datos) es la pieza clave. Es como guardar archivos importantes en la nube en lugar del disco local del portátil.
Cuando montas un directorio del host en el contenedor con -v, los datos quedan en el host. Borras el contenedor y los datos siguen ahí; reinicias y puedes leerlos de nuevo. Por eso en producción debes montar un volumen.
En resumen:
- Sin volumen = datos dentro del contenedor = se pierden al eliminarlo
- Con volumen = datos en el host = se conservan al eliminar el contenedor
Despliegue rápido de un Redis básico
Antes de la persistencia, despleguemos el contenedor más simple para ver cómo se comporta «sin persistencia».
Arrancar el contenedor básico
Abre la terminal y ejecuta:
docker run -d --name redis-basic -p 6379:6379 redis:latest
Significado:
-d: ejecutar en segundo plano--name redis-basic: nombre del contenedor-p 6379:6379: mapear el puerto 6379 del contenedor al hostredis:latest: imagen Redis más reciente
Docker descargará la imagen si no la tienes y arrancará el contenedor.
Comprobar que el contenedor funciona
docker ps
Si redis-basic aparece como Up, el contenedor está en marcha.
Entra y prueba lectura/escritura:
docker exec -it redis-basic redis-cli
Dentro de redis-cli:
set test "hello"
get test
Si devuelve "hello", Redis responde correctamente.
Problemas de esta versión básica
Parece bien, pero tiene tres fallos graves:
- Sin persistencia: al reiniciar el contenedor, los datos se pierden
- Sin contraseña: cualquiera puede conectarse y leer/escribir
- Configuración por defecto: no puedes ajustar memoria, persistencia, etc.
Prueba a reiniciar y comprobar si los datos siguen:
docker restart redis-basic
docker exec -it redis-basic redis-cli
get test
Lo más probable es que la clave test ya no exista. Eso es no tener persistencia.
Configurar persistencia RDB (instantáneas)
Redis tiene dos modos de persistencia: RDB y AOF. Empezamos por RDB, más sencillo.
¿Qué es RDB?
RDB significa Redis Database: una «instantánea» de la base de datos. Cada cierto tiempo Redis guarda todo el estado en un archivo dump.rdb.
Ventaja: recuperación rápida. Inconveniente: puedes perder datos desde la última instantánea. Si guardas cada 5 minutos, en el peor caso pierdes hasta 5 minutos de escrituras.
Parámetros de RDB
RDB se controla con save:
save <segundos> <número de keys modificadas>
Ejemplos:
save 900 1: en 900 s (15 min), si al menos 1 key cambió, guardar instantáneasave 300 10: en 300 s (5 min), si al menos 10 keys cambiaron, guardarsave 60 10000: en 60 s, si al menos 10000 keys cambiaron, guardar
Las reglas son en relación «o»: basta cumplir una para disparar el guardado.
Montar volumen para persistir
Configurar RDB no basta; hay que montar el volumen en el host para que dump.rdb sobreviva al contenedor.
Crea el directorio de datos:
mkdir -p ~/redis-data
Arranca Redis con volumen:
docker run -d \
--name redis-rdb \
-p 6379:6379 \
-v ~/redis-data:/data \
redis:latest \
redis-server --save 60 1 --dir /data
Puntos clave:
-v ~/redis-data:/data: monta~/redis-datadel host en/datadel contenedor--save 60 1: guardar si al menos 1 key cambia en 60 s (para pruebas; en producción sube el intervalo)--dir /data: ruta del archivo RDB
Verificar que la persistencia funciona
docker exec -it redis-rdb redis-cli
set user:1 "Juan"
set user:2 "Ana"
Espera 60 segundos para que Redis guarde la instantánea. Reinicia:
docker restart redis-rdb
Comprueba de nuevo:
docker exec -it redis-rdb redis-cli
get user:1
Si devuelve "Juan", la persistencia está bien.
En ~/redis-data del host deberías ver dump.rdb, el archivo de instantánea.
Configurar persistencia AOF (registro append-only)
RDB es simple, pero puede perder datos desde la última instantánea. Si la seguridad de datos es crítica, usa AOF.
¿Qué es AOF?
AOF significa Append Only File. Cada operación de escritura (set, del, incr, etc.) se añade a appendonly.aof.
Analogía: RDB es una foto; AOF es una grabación en vídeo. RDB hace fotos periódicas; AOF registra cada acción.
Ventaja: más seguridad; con everysec pierdes como mucho 1 segundo. Inconveniente: archivos más grandes y recuperación algo más lenta.
Tres estrategias de sincronización AOF
-
appendfsync always: sincroniza al disco en cada escritura
- Máxima seguridad, casi sin pérdida
- Peor rendimiento; no ideal en alta concurrencia
-
appendfsync everysec: sincroniza cada segundo (recomendado)
- Equilibrio rendimiento/seguridad
- Pérdida máxima ~1 segundo
- Uso habitual en producción
-
appendfsync no: el SO decide cuándo sincronizar
- Mejor rendimiento
- Puede perder más datos; no recomendado
Arrancar Redis con AOF
mkdir -p ~/redis-data
docker run -d \
--name redis-aof \
-p 6379:6379 \
-v ~/redis-data:/data \
redis:latest \
redis-server --appendonly yes --appendfsync everysec --dir /data
Parámetros clave:
--appendonly yes: activa AOF--appendfsync everysec: sincronización cada segundo--dir /data: directorio de datos
Tras un rato, en el directorio de datos verás appendonly.aof:
ls ~/redis-data/
Persistencia híbrida (recomendada desde Redis 4.0+)
Desde Redis 4.0, Redis recomienda modo híbrido, combinando RDB y AOF:
- RDB para recuperación rápida
- AOF para seguridad de datos
En el archivo de configuración:
aof-use-rdb-preamble yes
Al reiniciar, Redis carga primero la instantánea RDB (rápido) y luego reproduce el AOF incremental posterior a esa instantánea.
Si usas Redis 4.0 o superior, el modo híbrido suele ser la mejor opción; no hace falta elegir solo RDB o solo AOF.
Gestionar Redis con archivo de configuración (recomendado en producción)
Hasta ahora usamos parámetros en línea de comandos (--appendonly yes, etc.). Con muchos parámetros el comando se alarga y es difícil de mantener.
En producción lo habitual es un archivo de configuración.
¿Por qué un archivo de configuración?
- Toda la config en un solo sitio
- Fácil de versionar (Git)
- El equipo comparte la misma config
- Cambios sin reescribir comandos largos
Si Redis va a correr a largo plazo, merece la pena un redis.conf dedicado.
Obtener la plantilla oficial
mkdir -p ~/redis-config
docker run --rm redis:latest cat /etc/redis/redis.conf > ~/redis-config/redis.conf
Eso guarda la config por defecto en ~/redis-config/redis.conf.
Personalizar redis.conf
Abre redis.conf y ajusta:
1. Red
# Permitir conexiones desde cualquier IP (en producción, mejor IP de red interna)
bind 0.0.0.0
# Desactivar modo protegido (tras activar contraseña)
protected-mode no
2. Autenticación
# Contraseña de acceso
requirepass YourStrongPassword123
3. Persistencia
# RDB
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
# AOF
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
# Híbrido (Redis 4.0+)
aof-use-rdb-preamble yes
# Directorio de datos
dir /data
4. Memoria máxima
# Límite de 512 MB
maxmemory 512mb
# Política: eliminar keys menos usadas recientemente
maxmemory-policy allkeys-lru
5. Logs
# Niveles: debug, verbose, notice, warning
loglevel notice
# Ruta del log (cadena vacía = stdout)
logfile ""
Arrancar con el archivo de configuración
docker run -d \
--name redis-prod \
-p 6379:6379 \
-v ~/redis-config/redis.conf:/usr/local/etc/redis/redis.conf \
-v ~/redis-data:/data \
redis:latest \
redis-server /usr/local/etc/redis/redis.conf
redis-server /usr/local/etc/redis/redis.conf indica a Redis qué archivo usar.
Verificar la configuración
docker exec -it redis-prod redis-cli -a YourStrongPassword123
config get save
config get appendonly
config get maxmemory
Si los valores coinciden con redis.conf, la config está activa.
Autenticación por contraseña en Redis (3 métodos)
Caso real: una empresa dejó Redis sin contraseña expuesto en Internet. Fue comprometido y el servidor se usó para minar criptomonedas. No es un chiste.
¿Por qué es obligatoria la contraseña?
Redis no trae contraseña por defecto. Si el puerto está en Internet o la red interna no es de confianza, sin contraseña es dejar la puerta abierta.
En producción, contraseña es requisito mínimo.
Método 1: parámetro en línea de comandos
docker run -d \
--name redis-pwd \
-p 6379:6379 \
redis:latest \
redis-server --requirepass "MyStr0ng#P@ssw0rd"
Sirve para pruebas rápidas; no para producción: la contraseña queda en el historial del shell.
Método 2: archivo de configuración (recomendado)
En redis.conf:
requirepass YourStrongPassword123
Monta el archivo como antes. Es el estándar en producción: la contraseña no aparece en el historial y el equipo puede gestionarla.
Recomendaciones de complejidad:
- Mínimo 16 caracteres
- Mayúsculas, minúsculas, números y símbolos
- Evitar palabras comunes o fechas de cumpleaños
Método 3: cambio dinámico dentro del contenedor
Si el contenedor ya corre y necesitas cambiar la contraseña al vuelo:
docker exec -it redis-pwd redis-cli
config set requirepass "NewPassword123"
Se pierde al reiniciar; solo para emergencias, no uso permanente.
Conectar con contraseña
Opción 1: contraseña en la línea de comandos
docker exec -it redis-pwd redis-cli -a "MyStr0ng#P@ssw0rd"
Opción 2: conectar y luego AUTH
docker exec -it redis-pwd redis-cli
auth MyStr0ng#P@ssw0rd
set test "hello"
Si la contraseña falla:
(error) NOAUTH Authentication required.
Usa auth de nuevo con la contraseña correcta.
Configuración en aplicaciones
Cadena de conexión con contraseña:
redis://:YourStrongPassword123@localhost:6379
O en código:
// Ejemplo Node.js
const redis = require('redis');
const client = redis.createClient({
host: 'localhost',
port: 6379,
password: 'YourStrongPassword123'
});
Despliegue con Docker Compose (recomendado en equipo)
Todo lo anterior usa docker run. El inconveniente: comandos largos que hay que repetir.
En equipo o con varios contenedores, Docker Compose suele ser mejor.
¿Por qué Docker Compose?
- Config en
docker-compose.yml, versionable - Arranque con un comando
- Mismo entorno para todo el equipo
- Varios servicios (Redis + MySQL + Nginx) en un solo archivo
docker-compose.yml completo
version: '3.8'
services:
redis:
image: redis:7.2-alpine
container_name: redis-prod
restart: always
ports:
- "6379:6379"
volumes:
- ./redis-config/redis.conf:/usr/local/etc/redis/redis.conf
- ./redis-data:/data
command: redis-server /usr/local/etc/redis/redis.conf
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
volumes:
redis-data:
driver: local
Notas:
image: redis:7.2-alpine: imagen Alpine ligerarestart: always: reinicio automático si fallavolumes: config y datoshealthcheck: comprobación cada 10 s
Arranque con un comando
docker-compose up -d
-d es segundo plano. Compose crea red, monta volúmenes y arranca el contenedor.
Estado
docker-compose ps
Logs
docker-compose logs -f redis
-f sigue el flujo de logs (como tail -f).
Parar
docker-compose down
Para y elimina contenedores; no borra volúmenes (los datos permanecen).
Reiniciar
docker-compose restart redis
Ampliar el stack
Si hay más servicios en el mismo proyecto:
version: '3.8'
services:
redis:
# Configuración Redis...
mysql:
image: mysql:8.0
# Configuración MySQL...
app:
build: .
# Configuración de la app...
depends_on:
- redis
- mysql
Al levantar el proyecto, Redis, MySQL y la app arrancan juntos con dependencias resueltas.
Resolución de problemas y buenas prácticas
Aunque Redis esté en marcha, surgirán dudas. Aquí, problemas frecuentes y prácticas de producción.
Ver logs de Redis
Ante un problema, mira los logs primero.
Últimas 100 líneas:
docker logs --tail 100 redis-prod
Seguimiento continuo:
docker logs -f redis-prod
Con Docker Compose:
docker-compose logs -f redis
Los logs indican si el arranque fue correcto, si hay errores en la config o conexiones anómalas.
Healthcheck del contenedor
Docker puede comprobar si Redis responde y marcar el contenedor como no saludable.
En docker-compose.yml:
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
Cada 10 s ejecuta redis-cli ping; tras 3 fallos seguidos, el contenedor queda «unhealthy».
Con restart: always, un contenedor no saludable puede reiniciarse automáticamente.
Optimización de rendimiento
1. Limitar memoria máxima
Redis puede consumir toda la RAM disponible; en producción conviene un tope:
maxmemory 512mb
maxmemory-policy allkeys-lru
allkeys-lru elimina las keys menos usadas recientemente cuando se llena la memoria.
2. Deshabilitar comandos peligrosos
Comandos arriesgados en producción:
FLUSHALL: borra todas las basesFLUSHDB: borra la base actualKEYS *: lista todas las keys y puede bloquear Redis
En redis.conf:
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""
3. Ajustar frecuencia de RDB
Con mucha escritura, puedes espaciar las instantáneas:
save 900 1
save 300 10
save 60 10000
Valores por defecto razonables para muchos casos. Si Redis es sobre todo caché y toleras pérdida, puedes relajar más.
Refuerzo de seguridad
1. No exponer a Internet
Redis no debería estar abierto al mundo. Para acceso remoto, túnel SSH o VPN.
Enlazar solo IPs internas:
bind 127.0.0.1 192.168.1.100
2. Contraseña fuerte
Mínimo 16 caracteres, mix de tipos:
requirepass Th1s!sA$tr0ngP@ssw0rd2024
3. Copias de seguridad periódicas
Aunque tengas persistencia, programa backups. Script diario que copie dump.rdb y appendonly.aof:
#!/bin/bash
DATE=$(date +%Y%m%d)
cp ~/redis-data/dump.rdb ~/redis-backup/dump-$DATE.rdb
cp ~/redis-data/appendonly.aof ~/redis-backup/appendonly-$DATE.aof
Lista de verificación para producción
Antes de desplegar, revisa:
- ✅ Persistencia configurada (recomendado: híbrido RDB+AOF)
- ✅ Autenticación por contraseña activa
- ✅ Volumen montado en el host
- ✅ Config personalizada (no predeterminada)
- ✅ Logs accesibles
- ✅ Healthcheck configurado
- ✅ Memoria máxima limitada
- ✅ Comandos peligrosos deshabilitados o renombrados
- ✅ Estrategia de backup definida
- ✅ Sin exposición pública (o con VPN/túnel SSH)
Monitorizar rendimiento
Memoria:
docker exec -it redis-prod redis-cli -a your_password
info memory
Persistencia:
info persistence
Conexiones:
info clients
Si llegaste hasta aquí, deberías tener un contenedor Redis de nivel producción: datos persistentes, contraseña y configuración ordenada.
Conclusión
Volvamos al escenario inicial: Redis desplegado el viernes por la noche y el lunes por la mañana todo perdido. Ya sabes por qué: sin persistencia, los datos vivían solo dentro del contenedor y el reinicio los borró.
Este artículo cubre la solución completa:
- RDB: instantáneas periódicas, recuperación rápida, bueno para backups
- AOF: registro de escrituras, alta seguridad, pérdida máxima ~1 s
- Híbrido (recomendado): combina velocidad de RDB y seguridad de AOF
- Contraseña: tres formas de configurarla; obligatoria en producción
- Archivo de configuración: despliegue mantenible en equipo
- Docker Compose: un comando, configuración como código
Si ya usas Redis en Docker, comprueba ahora:
- ¿Montaste el volumen? (
-v ~/redis-data:/data) - ¿Activaste persistencia? (RDB, AOF o híbrido)
- ¿Pusiste contraseña? (
requirepass) - ¿Personalizaste la config? (no la predeterminada)
En producción, estos cuatro puntos son el mínimo. Con ellos reduces mucho el riesgo de pérdida de datos y acceso no autorizado.
Guarda este artículo para la próxima vez que despliegues Redis. Si tu equipo también usa Docker para Redis, compártelo para unificar criterios y evitar trampas repetidas.
Las configuraciones de este artículo están basadas en Redis 7.x. Si usas otra versión, consulta la documentación oficial de Redis por si algún parámetro cambió.
Flujo completo para desplegar Redis con Docker
Configurar persistencia RDB/AOF y autenticación por contraseña para evitar pérdida de datos al reiniciar el contenedor, apto para producción
⏱️ Estimated time: 30 min
- 1
Step 1: Despliegue base: montaje de Volume y configuración de persistencia
Crear Volume y montar el directorio de datos:
• docker run -d -v redis-data:/data redis:7.0
• Los datos se guardan en el Volume; al eliminar el contenedor no se pierden
Configurar persistencia RDB:
• En redis.conf, configurar el parámetro save
• save 900 1 (al menos 1 key cambia en 900 segundos)
• save 300 10 (al menos 10 keys cambian en 300 segundos)
• save 60 10000 (al menos 10000 keys cambian en 60 segundos)
• Instantáneas periódicas que guardan los datos
Configurar persistencia AOF:
• En redis.conf, configurar appendonly yes
• Registra cada escritura; mayor seguridad de datos
Modo híbrido:
• Activar RDB y AOF a la vez (recomendado en producción)
• Recuperación rápida y datos más seguros - 2
Step 2: Configuración de autenticación por contraseña
En redis.conf, configurar el parámetro requirepass:
• requirepass yourpassword
Pasar la contraseña con variable de entorno:
• docker run -e REDIS_PASSWORD=yourpassword
Configurar la contraseña en docker-compose:
• environment:
REDIS_PASSWORD: yourpassword
Evitar acceso no autorizado
Verificar la autenticación:
• Al conectar con redis-cli hay que indicar la contraseña: redis-cli -a yourpassword
• O usar el comando AUTH - 3
Step 3: Lista de verificación para producción y estrategia de copias de seguridad
Lista de verificación para producción:
1. ¿Montaste el volumen de datos? (-v ~/redis-data:/data)
2. ¿Activaste persistencia? (RDB, AOF o modo híbrido)
3. ¿Configuraste contraseña? (requirepass)
4. ¿Personalizaste el archivo de configuración? (no uses el predeterminado)
Estrategia de copias de seguridad:
• Hacer backup periódico de los datos del Volume
• Exportar el archivo RDB con redis-cli --rdb
• Configurar scripts de backup automático
• Gestionar varios contenedores con docker-compose
• Configurar healthcheck
En producción, estos cuatro puntos son el mínimo. Con ellos no tendrás que preocuparte por pérdida de datos ni acceso no autorizado.
FAQ
¿Cómo evitar la pérdida de datos al desplegar Redis con Docker?
• RDB (instantáneas periódicas, parámetro save)
• AOF (registra cada escritura, appendonly yes)
• Modo híbrido RDB+AOF (recomendado en producción)
• Montar Volume en el directorio de datos (docker run -v redis-data:/data)
Causa raíz: al reiniciar el contenedor se pierden los datos porque Redis no activa persistencia por defecto; los datos solo están en memoria y desaparecen al eliminar el contenedor. Hay que configurar RDB o AOF.
Pasos completos: crear Volume y montar datos → configurar redis.conf con persistencia → contraseña → arrancar Redis → verificar persistencia y contraseña → estrategia de backup.
¿Cómo configurar la persistencia de Redis?
• En redis.conf, parámetro save
• save 900 1 (al menos 1 key en 900 segundos)
• save 300 10 (al menos 10 keys en 300 segundos)
• save 60 10000 (al menos 10000 keys en 60 segundos)
• Instantáneas periódicas
Persistencia AOF:
• En redis.conf, appendonly yes
• Registra cada escritura; datos más seguros
Modo híbrido: RDB y AOF a la vez (recomendado en producción); recuperación rápida y datos seguros.
Montaje de Volume: docker run -d -v redis-data:/data redis:7.0; los datos quedan en el Volume y no se pierden al eliminar el contenedor.
¿Cómo configurar la autenticación por contraseña en Redis?
• requirepass yourpassword
Variable de entorno:
• docker run -e REDIS_PASSWORD=yourpassword
docker-compose:
• environment:
REDIS_PASSWORD: yourpassword
Evitar acceso no autorizado
Verificación:
• redis-cli -a yourpassword al conectar
• O comando AUTH
¿Qué hay que tener en cuenta al desplegar Redis en producción?
1) ¿Volumen de datos montado? (-v ~/redis-data:/data)
2) ¿Persistencia activa? (RDB, AOF o híbrido)
3) ¿Contraseña configurada? (requirepass)
4) ¿Config personalizada? (no predeterminada)
Backup:
• Backup periódico del Volume
• redis-cli --rdb para exportar RDB
• Scripts automáticos de backup
• docker-compose para varios contenedores
• healthcheck
Estos cuatro puntos son el mínimo en producción; con ellos reduces riesgo de pérdida de datos y acceso no autorizado.
13 min de lectura · Publicado el: 17 dic 2025 · Actualizado el: 21 ago 2026
Guía práctica de Docker
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Timeouts al hacer pull de Docker en redes corporativas: guía completa de DNS, proxy y mirrors
¿Docker pull con timeout en la red corporativa? Esta guía ofrece un flujo completo de diagnóstico: DNS, proxy y mirrors. Incluye la lista de mirrors verificados en mayo de 2026 para localizar y resolver el problema rápido.
Parte 25 de 38
Siguiente
Guía completa de despliegue de MySQL con Docker: persistencia de datos y replicación maestro-esclavo
Desde la persistencia de datos en Docker MySQL hasta la configuración de replicación maestro-esclavo: soluciona pérdida de datos al reiniciar contenedores, montaje de archivos de configuración, fallos de conexión y más, con un plan de despliegue listo para producción.
Parte 27 de 38



Comentarios
Inicia sesión con GitHub para dejar un comentario