You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.5 KiB
2.5 KiB
STEP 04 – Provide Redis runtime for SwissOID sessions
Added a Redis service to biblio-stats-graphql’s docker compose files so swissoid-back’s session store has a local endpoint, and wired the required environment variables through the containers.
docker-compose.dev.yml
services:
redis:
image: redis:7-alpine
container_name: "${APP_DIRNAME}_redis"
command: ["redis-server", "--save", "", "--appendonly", "no"]
restart: always
garphql-server-stats:
environment:
LOGGER_DEBUG: "${LOGGER_DEBUG}"
SWISSOID_CLIENT_ID: "${SWISSOID_CLIENT_ID}"
SWISSOID_ISSUER: "${SWISSOID_ISSUER}"
SWISSOID_JWKS_URI: "${SWISSOID_JWKS_URI}"
SWISSOID_TOKEN_ENDPOINT: "${SWISSOID_TOKEN_ENDPOINT}"
SWISSOID_AUTHORIZE_ENDPOINT: "${SWISSOID_AUTHORIZE_ENDPOINT}"
OIDC_REDIRECT_BASE_URL: "${OIDC_REDIRECT_BASE_URL}"
RP_FRONTEND_URL: "${RP_FRONTEND_URL}"
RP_COOKIE_DOMAIN: "${RP_COOKIE_DOMAIN}"
SESSION_COOKIE_NAME: "${SESSION_COOKIE_NAME}"
REFRESH_COOKIE_NAME: "${REFRESH_COOKIE_NAME}"
SESSION_SECRET: "${SESSION_SECRET}"
STATE_SIGNING_SECRET: "${STATE_SIGNING_SECRET}"
SESSION_TTL: "${SESSION_TTL}"
REFRESH_TTL: "${REFRESH_TTL}"
REDIS_URL: "${REDIS_URL}"
depends_on:
- "${DB_HOST}"
- redis
docker-compose.yml
services:
redis:
image: redis:7-alpine
container_name: "${REVERSE_DOMAIN}_redis"
command: ["redis-server", "--save", "", "--appendonly", "no"]
restart: always
networks:
- app_network
biblio-stats-graphql:
environment:
SWISSOID_CLIENT_ID: "${SWISSOID_CLIENT_ID}"
SWISSOID_ISSUER: "${SWISSOID_ISSUER}"
SWISSOID_JWKS_URI: "${SWISSOID_JWKS_URI}"
SWISSOID_TOKEN_ENDPOINT: "${SWISSOID_TOKEN_ENDPOINT}"
SWISSOID_AUTHORIZE_ENDPOINT: "${SWISSOID_AUTHORIZE_ENDPOINT}"
OIDC_REDIRECT_BASE_URL: "${OIDC_REDIRECT_BASE_URL}"
RP_FRONTEND_URL: "${RP_FRONTEND_URL}"
RP_COOKIE_DOMAIN: "${RP_COOKIE_DOMAIN}"
SESSION_COOKIE_NAME: "${SESSION_COOKIE_NAME}"
REFRESH_COOKIE_NAME: "${REFRESH_COOKIE_NAME}"
SESSION_SECRET: "${SESSION_SECRET}"
STATE_SIGNING_SECRET: "${STATE_SIGNING_SECRET}"
SESSION_TTL: "${SESSION_TTL}"
REFRESH_TTL: "${REFRESH_TTL}"
REDIS_URL: "${REDIS_URL}"
depends_on:
- "${DB_HOST}"
- redis
This ensures local and production stacks both ship with Redis so swissoid-back can persist sessions without additional manual setup.