From a3c9007edc2e32034d55b314e52efcbfd17af4a5 Mon Sep 17 00:00:00 2001 From: Erb3 <49862976+Erb3@users.noreply.github.com> Date: Sun, 8 Sep 2024 19:53:42 +0200 Subject: [PATCH] feat: move to (io)redis --- .env.example | 6 +++--- .github/workflows/main-ci.yml | 5 ++--- .github/workflows/pr-ci.yml | 5 ++--- CONTRIBUTING.md | 2 +- bun.lockb | Bin 473616 -> 476576 bytes cspell.config.yaml | 1 - package.json | 2 +- src/env.ts | 5 ++--- src/lib/redis.ts | 8 ++------ src/server/trpc.ts | 7 +++---- 10 files changed, 16 insertions(+), 25 deletions(-) diff --git a/.env.example b/.env.example index 14c3169c..0b30b1fc 100644 --- a/.env.example +++ b/.env.example @@ -11,9 +11,9 @@ NEXT_PUBLIC_CLERK_SIGN_UP_URL='/sign-up' NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL='/app' NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL='/app' -# Upstash Redis -UPSTASH_REDIS_REST_URL= -UPSTASH_REDIS_REST_TOKEN= +# Redis URL +# Example: redis://localhost:6379 +REDIS_URL= # Resend RESEND_API_KEY= diff --git a/.github/workflows/main-ci.yml b/.github/workflows/main-ci.yml index d05cddac..f37df405 100644 --- a/.github/workflows/main-ci.yml +++ b/.github/workflows/main-ci.yml @@ -25,9 +25,8 @@ jobs: NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL: '/app' NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL: '/app' - # Upstash - UPSTASH_REDIS_REST_URL: ${{ secrets.UPSTASH_REDIS_REST_URL }} - UPSTASH_REDIS_REST_TOKEN: ${{ secrets.UPSTASH_REDIS_REST_TOKEN }} + # Redis + REDIS_URL: ${{ secrets.REDIS_URL }} # Resend RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }} diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 90070247..a516ad0b 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -22,9 +22,8 @@ jobs: NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL: '/app' NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL: '/app' - # Upstash - UPSTASH_REDIS_REST_URL: ${{ secrets.UPSTASH_REDIS_REST_URL }} - UPSTASH_REDIS_REST_TOKEN: ${{ secrets.UPSTASH_REDIS_REST_TOKEN }} + # Redis + REDIS_URL: ${{ secrets.REDIS_URL }} # Resend RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a18ae910..5eeb399e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,7 +67,7 @@ The Tech Stack: - [ShadCN UI](https://ui.shadcn.com) - [NeonDB](https://neon.tech) - [Clerk Auth](https://clerk.dev/) -- [Upstash](https://upstash.com) +- [Redis](https://redis.io/) - [Resend](https://resend.com) Development stuff: diff --git a/bun.lockb b/bun.lockb index 0d70c10df8c1d023b28331c716c9703a66fc6fc2..5a70274fdf1375d0cf277d440059a0969e3f633f 100755 GIT binary patch delta 81085 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 delta 80058 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 IJldT951HwTUH||9 diff --git a/cspell.config.yaml b/cspell.config.yaml index 02cb5277..687d2365 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -51,7 +51,6 @@ words: - tseslint - typecheck - Uploadthing - - Upstash - healthcheck - timeago - usehooks diff --git a/package.json b/package.json index 0acfc3da..ecbcfd5a 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,6 @@ "@trpc/client": "next", "@trpc/react-query": "next", "@trpc/server": "next", - "@upstash/redis": "^1.34.0", "@vercel/analytics": "^1.3.1", "@vercel/speed-insights": "^1.0.12", "class-variance-authority": "^0.7.0", @@ -85,6 +84,7 @@ "drizzle-zod": "^0.5.1", "framer-motion": "^11.5.2", "geist": "^1.3.1", + "ioredis": "^5.4.1", "jiti": "^1.21.6", "lucide-react": "^0.438.0", "next": "14.2.8", diff --git a/src/env.ts b/src/env.ts index feb6b89c..216c51b0 100644 --- a/src/env.ts +++ b/src/env.ts @@ -15,9 +15,8 @@ export const env = createEnv({ // Neon DB DATABASE_URL: z.string().url(), - // Upstash - UPSTASH_REDIS_REST_URL: z.string(), - UPSTASH_REDIS_REST_TOKEN: z.string(), + // Redis + REDIS_URL: z.string(), // Resend RESEND_API_KEY: z.string(), diff --git a/src/lib/redis.ts b/src/lib/redis.ts index 43176830..7caabfce 100644 --- a/src/lib/redis.ts +++ b/src/lib/redis.ts @@ -1,8 +1,4 @@ -import { Redis } from '@upstash/redis'; - import { env } from '@/env'; +import Redis from 'ioredis'; -export const redis = new Redis({ - url: env.UPSTASH_REDIS_REST_URL, - token: env.UPSTASH_REDIS_REST_TOKEN, -}); +export const redis = new Redis(env.REDIS_URL); diff --git a/src/server/trpc.ts b/src/server/trpc.ts index 74ff0556..e076108c 100644 --- a/src/server/trpc.ts +++ b/src/server/trpc.ts @@ -1,12 +1,11 @@ +import { db } from '@/db'; +import { redis } from '@/lib/redis'; +import { resend } from '@/lib/resend'; import { currentUser } from '@clerk/nextjs/server'; import { initTRPC, TRPCError } from '@trpc/server'; import superjson from 'superjson'; import { ZodError } from 'zod'; -import { db } from '@/db'; -import { resend } from '@/lib/resend'; -import { redis } from '@/lib/redis'; - export const createTRPCContext = (opts: { headers: Headers }) => { return { db,