Gemenskapslösning

Installera Redis på CasaOS med Docker Compose på ett säkert sätt

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

Det säkraste sättet att köra Redis på CasaOS just nu är som en Docker-container med en beständig datavolym och explicit autentisering och nätverksexponering. Forumguiden från 2023 är för gammal för att användas som en komplett distributionsguide, eftersom Redis standardinställningar och säkerhetskrav har förändrats.

Börja med den officiella Redis-avbildningen, håll port 6379 privat för det lokala nätverket eller Docker-nätverket, gör /data beständig och avgör om du behöver AOF-/RDB-beständighet innan du lägger applikationsdata i Redis.

Använd den officiella Redis-avbildningen

Den aktuella Redis Docker-guiden beskriver den officiella avbildningen redis:<version> och standardporten 6379.

Använd Docker Compose på 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"

Byt lösenordet och ändra bindningsadressen endast om en annan värd verkligen behöver direkt åtkomst till Redis.

Gör /data beständig

Utan en värdvolym lagras Redis-data i det flyktiga containerlagret och kan försvinna när containern återskapas. Mappa /data till beständig CasaOS-lagring.

Välj beständighet medvetet

AOF registrerar skrivningar och förbättrar återställningsmöjligheterna, medan RDB-ögonblicksbilder är mindre resurskrävande. Din applikation kanske också klarar Redis som en tillfällig cache. Anpassa beständighetsläget efter vad Redis används till.

Exponera inte Redis direkt mot internet

Port 6379 bör inte vidarebefordras offentligt. Om en annan applikation körs på samma Docker-värd kan du placera båda containrarna i ett privat Docker-nätverk och ansluta via tjänstenamnet.

Använd autentisering och ACL:er

Ett enda requirepass är enkelt för hemmabruk, medan aktuella Redis även stöder ACL:er för mer detaljerad styrning av användare och kommandon. Lämna inte en Redis-instans som kan nås på distans utan autentisering.

Testa från redis-cli

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

En fungerande server bör returnera PONG.

Säkerhetskopiera beständig Redis-data

Om Redis innehåller något viktigt bör du stoppa skrivningar eller samordna dem och säkerhetskopiera den beständiga volymen enligt den valda RDB-/AOF-metoden. Utgå inte från att en omstart av containern är samma sak som en säkerhetskopia.

Docker-distributionsguiden gäller även för anpassade CasaOS-appar.

Kontrollera minnesgränserna före produktionsanvändning

Redis är i första hand minnesbaserad programvara. Övervaka den faktiska datamängden och värdens RAM-minne i stället för att anta att få nycklar innebär liten minnesanvändning. På en delad CasaOS-värd kan du överväga en genomtänkt maxmemory-policy, men först efter att du förstått hur applikationen reagerar på att data tas bort.

Använd ett privat Docker-nätverk för applikationsberoenden

Om Redis endast används av en annan container, till exempel en automationsplattform eller webbapp, placerar du båda tjänsterna i samma privata Docker-nätverk och utelämnar värdporten helt. Applikationen kan ansluta till redis:6379 via tjänstenamnet.

Verifiera beständigheten efter att en container återskapats

Efter den första konfigurationen skriver du en testnyckel, återskapar containern med samma volym och bekräftar att nyckeln fortfarande är tillgänglig. Det här enkla testet visar att värdsökvägen faktiskt är beständig innan en viktig applikation blir beroende av den.

Vanliga frågor

Vilken port använder Redis?

6379 som standard.

Bör jag mappa 6379 till alla gränssnitt?

Nej. Bind endast där det behövs, helst till localhost eller en privat Docker-/LAN-sökväg.

Var ska Redis-data lagras?

Mappa containerns /data-katalog till beständig CasaOS-lagring.

Behöver jag RedisInsight?

Nej. Det är ett valfritt administrationsgränssnitt; Redis fungerar utan det.