Il modo attualmente più sicuro per eseguire Redis su CasaOS consiste nell’utilizzare un container Docker con un volume dati persistente e un’autenticazione e un’esposizione di rete configurate esplicitamente. Il tutorial del forum del 2023 è troppo datato per essere usato come unica guida alla distribuzione, perché i valori predefiniti attuali di Redis e le aspettative in materia di sicurezza sono cambiati.
Inizia con l’immagine ufficiale di Redis, mantieni la porta 6379 privata alla LAN o alla rete Docker, rendi persistente /data e decidi se ti serve la persistenza AOF/RDB prima di inserirvi dati dell’applicazione.
Usa l’immagine ufficiale di Redis
L’attuale guida Docker di Redis documenta l’immagine ufficiale redis:<version> e la porta standard 6379.
Usa Docker Compose su 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 password e modifica l’indirizzo di bind solo se un altro host deve realmente accedere direttamente a Redis.
Rendi persistente /data
Senza un volume sull’host, i dati di Redis rimangono nel livello del container, che è temporaneo, e possono scomparire quando il container viene ricreato. Mappa /data su uno storage CasaOS durevole.
Scegli consapevolmente la persistenza
AOF registra le scritture e migliora la possibilità di recupero, mentre gli snapshot RDB sono più leggeri. La tua applicazione potrebbe anche tollerare Redis come cache temporanea. Scegli la modalità di persistenza in base al ruolo che Redis svolge per te.
Non esporre Redis direttamente a Internet
La porta 6379 non dovrebbe essere inoltrata pubblicamente. Se un’altra applicazione viene eseguita sullo stesso host Docker, inserisci entrambi i container in una rete Docker privata e collegali tramite il nome del servizio.
Usa l’autenticazione e le ACL
Un semplice requirepass è adatto all’uso domestico, mentre Redis supporta anche le ACL per gestire utenti e comandi in modo più granulare. Non lasciare senza autenticazione un’istanza Redis raggiungibile da remoto.
Testa con redis-cli
docker exec -it redis redis-cli -a CHANGE_ME ping
Un server funzionante dovrebbe restituire PONG.
Esegui il backup dei dati persistenti di Redis
Se Redis contiene dati importanti, interrompi le scritture o coordinati con esse ed esegui il backup del volume persistente in base al metodo RDB/AOF scelto. Non dare per scontato che il riavvio del container equivalga a un backup.
La guida alla distribuzione Docker si applica allo stesso modo alle app personalizzate di CasaOS.
Controlla i limiti di memoria prima dell’uso in produzione
Redis è un software che utilizza principalmente la memoria. Controlla le dimensioni effettive del dataset e la RAM dell’host invece di presumere che un numero ridotto di chiavi comporti un ingombro ridotto. Su un host CasaOS condiviso, valuta una politica maxmemory definita consapevolmente solo dopo aver compreso come l’applicazione reagisce all’espulsione dei dati.
Usa una rete Docker privata per le dipendenze dell’applicazione
Se Redis esiste solo per un altro container, ad esempio una piattaforma di automazione o un’app web, inserisci entrambi i servizi nella stessa rete Docker privata e ometti completamente la porta dell’host. L’applicazione può connettersi a redis:6379 tramite il nome del servizio.
Verifica la persistenza dopo la ricreazione del container
Dopo la configurazione iniziale, scrivi una chiave di test, ricrea il container utilizzando lo stesso volume e verifica che la chiave sia ancora disponibile. Questo semplice test dimostra che il percorso sull’host è realmente persistente prima che un’applicazione importante dipenda da esso.
Domande frequenti
Quale porta usa Redis?
La 6379 per impostazione predefinita.
Devo associare la porta 6379 a tutte le interfacce?
No. Esegui il bind solo dove necessario, preferibilmente su localhost o su un percorso Docker/LAN privato.
Dove devono risiedere i dati di Redis?
Mappa la directory /data del container su uno storage persistente di CasaOS.
Mi serve RedisInsight?
No. È un’interfaccia di gestione opzionale; Redis funziona anche senza di essa.
