Communitylösning

Installera Redis säkert på CasaOS med Docker Compose

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

Det säkraste aktuella sättet att köra Redis på CasaOS är som en Docker-container med en beständig datavolym och uttrycklig autentisering och nätverksexponering. Forumhandledningen från 2023 är för gammal för att användas som enda distributionsguide, eftersom Redis nuvarande 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ändigt och avgör om du behöver AOF/RDB-beständighet innan du lägger in applikationsdata.

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

tjänster:
  redis:
    avbildning: redis:8
    containernamn: redis
    omstart: om inte stoppad
    kommando: ["redis-server", "--appendonly", "yes", "--requirepass", "CHANGE_ME"]
    volymer:
      - /DATA/AppData/redis/data:/data
    portar:
      - "127.0.0.1:6379:6379"

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

Gör /data beständigt

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

Välj beständighetsläge med omsorg

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

Exponera inte Redis direkt mot internet

Port 6379 ska inte vidarebefordras offentligt. Om en annan applikation körs på samma Docker-värd placerar du båda containrarna i ett privat Docker-nätverk och ansluter via tjänstens namn.

Använd autentisering och ACL:er

Ett enda requirepass är enkelt att använda hemma, medan den aktuella versionen av Redis även har stöd för ACL:er som ger mer detaljerad kontroll över användare och kommandon. Lämna inte en Redis-instans som kan nås på distans utan autentisering.

Testa med redis-cli

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

En server som fungerar som den ska bör svara med PONG.

Säkerhetskopiera beständiga Redis-data

Om Redis innehåller viktiga data bör du stoppa skrivningar eller samordna dem och säkerhetskopiera den beständiga volymen enligt den RDB-/AOF-metod du valt. 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 programvara där minnet står i centrum. Håll koll på den faktiska datamängden och värdmaskinens RAM i stället för att anta att få nycklar innebär ett litet minnesbehov. Om CasaOS-värden delas med andra tjänster kan du överväga en genomtänkt maxmemory-policy, men först efter att ha förstått hur programmet hanterar att data rensas bort.

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

Om Redis bara behövs av en annan container, till exempel en automatiseringsplattform eller webbapp, placerar du båda tjänsterna i samma privata Docker-nätverk och utelämnar värdporten helt. Programmet kan ansluta till redis:6379 med tjänstens namn.

Verifiera beständighet efter att en container återskapats

När den första konfigurationen är klar skriver du en testnyckel, återskapar containern med samma volym och kontrollerar att nyckeln fortfarande finns kvar. Det här enkla testet visar att värdsökvägen verkligen är beständig innan ett viktigt program blir beroende av den.

Vanliga frågor

Vilken port använder Redis?

6379 som standard.

Ska jag binda 6379 till alla gränssnitt?

Nej. Bind bara där det behövs, helst till localhost eller en privat Docker-/LAN-adress.

Var ska Redis-data lagras?

Koppla containerns /data-katalog till persistent lagring i CasaOS.

Behöver jag RedisInsight?

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