SST
Ion
Prerequisites
You need to have AWS credentials configured locally and SST CLI installed.
Project Setup
Let’s create a new Next.js application.
npx create-next-app@latest
cd my-app
Let’s initialize SST in our app.
sst init
Install the @upstash/redis
package.
npm install @upstash/redis
Database Setup
Create a Redis database using Upstash Console or Upstash CLI and copy the UPSTASH_REDIS_REST_URL
and UPSTASH_REDIS_REST_TOKEN
into your .env
file.
.env
UPSTASH_REDIS_REST_URL=<YOUR_URL>
UPSTASH_REDIS_REST_TOKEN=<YOUR_TOKEN>
Pass the Environment Variables
/sst.config.ts
/// <reference path="./.sst/platform/config.d.ts" />
export default $config({
app(input) {
return {
name: "my-app",
removal: input?.stage === "production" ? "retain" : "remove",
home: "aws",
};
},
async run() {
new sst.aws.Nextjs("MyWeb", {
environment: {
UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL || "",
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN || "",
},
});
},
});
Home Page Setup
Update /app/page.tsx
:
/app/page.tsx
import { Redis } from "@upstash/redis";
const redis = Redis.fromEnv();
export default async function Home() {
const count = await redis.incr("counter");
return (
<div className="flex h-screen w-screen items-center justify-center">
<h1 className="text-4xl font-bold">Counter: {count}</h1>
</div>
)
}
Run
Run the SST app.
npm run dev
Check http://localhost:3000/
Deploy
Deploy with SST.
sst deploy
Check the output URL.