Skip to content

Commit

Permalink
feat: add self hosted Redis
Browse files Browse the repository at this point in the history
  • Loading branch information
ValeryVerkhoturov committed Jul 9, 2023
1 parent 5a07f4a commit 96b7266
Show file tree
Hide file tree
Showing 9 changed files with 202 additions and 104 deletions.
9 changes: 6 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,12 @@ NEXT_PUBLIC_S3_UPLOAD_RESOURCE_FORMATS=.png,.jpg,.jpeg,.gif,.webp
# Open AI for image generation
OPENAI_API_KEY=

# @upstash/ratelimit for Open AI API
UPSTASH_REDIS_REST_URL=
UPSTASH_REDIS_REST_TOKEN=
# Redis
REDIS_DB=
REDIS_PASSWORD=
REDIS_HOST=
REDIS_PORT=6379
REDIS_URL=redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}/${REDIS_DB}

# Next Auth
# You can generate a new secret on the command line with:
Expand Down
33 changes: 31 additions & 2 deletions docker-compose.prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,39 @@ services:
# - traefik.http.routers.lost_and_found_pgadmin_https.tls=true
# - traefik.http.routers.lost_and_found_pgadmin_https.tls.certresolver=${CERT_RESOLVER}

redis:
image: 'bitnami/redis:latest'
volumes:
- app-redis-data:/bitnami/redis/data
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
networks:
- application
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 5s
retries: 5

redisinsight:
image: redislabs/redisinsight:latest
volumes:
- redisinsight-data:/db
depends_on:
redis:
condition: service_healthy
ports:
- '8001:8001' # port should be blocked on firewall
networks:
- application

app:
image: cr.yandex/crpi1cf1kcv47hpc0aq7/lost-and-found:latest
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
networks:
- application
environment:
Expand All @@ -101,8 +129,7 @@ services:
S3_UPLOAD_REGION: ${S3_UPLOAD_REGION}
NEXT_PUBLIC_S3_UPLOAD_RESOURCE_FORMATS: ${NEXT_PUBLIC_S3_UPLOAD_RESOURCE_FORMATS}
OPENAI_API_KEY: ${OPENAI_API_KEY}
UPSTASH_REDIS_REST_URL: ${UPSTASH_REDIS_REST_URL}
UPSTASH_REDIS_REST_TOKEN: ${UPSTASH_REDIS_REST_TOKEN}
REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379/${REDIS_DB}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
NEXTAUTH_URL: ${NEXTAUTH_URL}
NEXT_PUBLIC_NEXTAUTH_URL: ${NEXT_PUBLIC_NEXTAUTH_URL}
Expand Down Expand Up @@ -142,3 +169,5 @@ networks:

volumes:
app-db-data:
app-redis-data:
redisinsight-data:
33 changes: 31 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,32 @@ services:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_PASSWORD}

redis:
image: 'bitnami/redis:latest'
volumes:
- app-redis-data:/bitnami/redis/data
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
networks:
- application
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 5s
timeout: 5s
retries: 5

redisinsight:
image: redislabs/redisinsight:latest
volumes:
- redisinsight-data:/db
depends_on:
redis:
condition: service_healthy
ports:
- '8001:8001'
networks:
- application

app:
build:
context: .
Expand All @@ -40,6 +66,8 @@ services:
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
ports:
- 3000:3000
networks:
Expand All @@ -56,8 +84,7 @@ services:
S3_UPLOAD_REGION: ${S3_UPLOAD_REGION}
NEXT_PUBLIC_S3_UPLOAD_RESOURCE_FORMATS: ${NEXT_PUBLIC_S3_UPLOAD_RESOURCE_FORMATS}
OPENAI_API_KEY: ${OPENAI_API_KEY}
UPSTASH_REDIS_REST_URL: ${UPSTASH_REDIS_REST_URL}
UPSTASH_REDIS_REST_TOKEN: ${UPSTASH_REDIS_REST_TOKEN}
REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379/${REDIS_DB}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
NEXTAUTH_URL: ${NEXTAUTH_URL}
NEXT_PUBLIC_NEXTAUTH_URL: ${NEXT_PUBLIC_NEXTAUTH_URL}
Expand All @@ -73,3 +100,5 @@ networks:

volumes:
app-db-data:
app-redis-data:
redisinsight-data:
163 changes: 83 additions & 80 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
"@trpc/next": "^10.18.0",
"@trpc/react-query": "^10.18.0",
"@trpc/server": "^10.18.0",
"@upstash/ratelimit": "^0.4.3",
"aws-sdk": "^2.1408.0",
"axios": "^1.4.0",
"classnames": "^2.3.2",
Expand All @@ -57,6 +56,7 @@
"react-hotkeys-hook": "^4.4.1",
"react-infinite-scroll-component": "^6.1.0",
"react-medium-image-zoom": "^5.1.6",
"redis": "^4.6.7",
"sharp": "^0.32.0",
"spinners-react": "^1.0.7",
"superjson": "1.12.2",
Expand Down
6 changes: 2 additions & 4 deletions src/env.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ export const env = createEnv({
S3_UPLOAD_ENDPOINT_URL: z.string().url(),
S3_UPLOAD_REGION: z.string().min(1),
OPENAI_API_KEY: z.string().startsWith('sk-'),
UPSTASH_REDIS_REST_URL: z.string().url(),
UPSTASH_REDIS_REST_TOKEN: z.string().min(1),
REDIS_URL: z.string().url(),
NEXTAUTH_SECRET: z.string().min(1),
NEXTAUTH_URL: z.string().url(),
MIREA_CLIENT_ID: z.string().min(1),
Expand Down Expand Up @@ -71,8 +70,7 @@ export const env = createEnv({

OPENAI_API_KEY: process.env.OPENAI_API_KEY,

UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
REDIS_URL: process.env.REDIS_URL,

MIREA_CLIENT_ID: process.env.MIREA_CLIENT_ID,
MIREA_CLIENT_SECRET: process.env.MIREA_CLIENT_SECRET,
Expand Down
Loading

0 comments on commit 96b7266

Please sign in to comment.