Skip to content

Commit c4f523b

Browse files
authored
Merge pull request #39 from PMS61/main
chore: update build process for Cloudflare compatibility
2 parents 69335c2 + ac3b5f7 commit c4f523b

File tree

9 files changed

+15053
-9557
lines changed

9 files changed

+15053
-9557
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# next.js
1313
/.next/
1414
/out/
15+
/.open-next/
1516

1617
# production
1718
/build

CLOUDFLARE_SETUP.md

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Cloudflare Pages Deployment Guide
22

3-
This guide covers deploying the COC Website to Cloudflare Pages using `@cloudflare/next-on-pages`.
3+
This guide covers deploying the COC Website to Cloudflare Pages using OpenNext Cloudflare adapter.
44

55
## Prerequisites
66

@@ -59,17 +59,16 @@ For local testing with Wrangler:
5959

6060
3. Run the development server:
6161
```bash
62-
npx wrangler pages dev -- npm run dev
62+
npx wrangler dev
6363
```
6464

6565
### 5. Deploy to Cloudflare Pages
6666

67-
#### Option A: Direct Upload (Recommended for CI/CD)
67+
#### Option A: Direct Upload (Recommended)
6868

6969
```bash
70-
npm run build
71-
npx @cloudflare/next-on-pages@1
72-
npx wrangler pages deploy .vercel/output --project-name=coc-website
70+
npm run build:cf
71+
npx wrangler pages deploy .open-next --project-name=coc-website
7372
```
7473

7574
#### Option B: GitHub Integration
@@ -78,8 +77,8 @@ npx wrangler pages deploy .vercel/output --project-name=coc-website
7877
2. Navigate to **Pages****Create a project**
7978
3. Connect your GitHub repository
8079
4. Configure build settings:
81-
- **Build command**: `npx @cloudflare/next-on-pages@1`
82-
- **Build output directory**: `.vercel/output/static`
80+
- **Build command**: `npm run build:cf`
81+
- **Build output directory**: `.open-next`
8382
- **Root directory**: `/`
8483
5. Add all secrets in **Settings****Environment variables****Production****Add variable**
8584

@@ -118,9 +117,9 @@ npx wrangler secret put <SECRET_NAME>
118117

119118
### Middleware Issues
120119

121-
The middleware uses Supabase for authentication. Ensure:
122-
- `SUPABASE_SERVICE_ROLE_KEY` is correctly set as a secret
123-
- Your Supabase project is accessible from Cloudflare's edge network
120+
The middleware uses NextAuth for authentication. Ensure:
121+
- `NEXTAUTH_SECRET` is correctly set as a secret
122+
- Your authentication provider is properly configured
124123

125124
### Worker Size Limit Exceeded
126125

@@ -135,7 +134,8 @@ If your build exceeds Cloudflare's worker size limit:
135134
```
136135
├── .dev.vars.example # Template for local development variables
137136
├── wrangler.toml # Cloudflare Pages configuration
138-
├── next.config.mjs # Next.js config (standalone output disabled for Cloudflare)
137+
├── open-next.config.ts # OpenNext configuration
138+
├── next.config.mjs # Next.js config
139139
└── middleware.ts # Edge middleware for auth protection
140140
```
141141

@@ -146,16 +146,26 @@ If your build exceeds Cloudflare's worker size limit:
146146
```toml
147147
name = "coc-website"
148148
compatibility_flags = ["nodejs_compat"]
149-
compatibility_date = "2025-01-01"
149+
compatibility_date = "2026-02-01"
150150

151151
[build]
152-
command = "npx @cloudflare/next-on-pages@1"
152+
command = "npm run build && npx @opennextjs/cloudflare build"
153153

154154
[vars]
155155
NODE_VERSION = "22"
156156
NEXT_OUTPUT_STANDALONE = "false"
157157
```
158158

159+
### open-next.config.ts
160+
161+
```typescript
162+
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
163+
164+
export default defineCloudflareConfig({
165+
// Default configuration for Cloudflare Pages
166+
});
167+
```
168+
159169
### next.config.mjs
160170

161171
The `output: 'standalone'` setting is disabled for Cloudflare builds. It's only enabled for Docker deployments via the `NEXT_OUTPUT_STANDALONE` environment variable.
@@ -174,10 +184,13 @@ npx wrangler tail
174184

175185
# Open project in browser
176186
npx wrangler pages project open coc-website
187+
188+
# Local development
189+
npx wrangler dev
177190
```
178191

179192
## Additional Resources
180193

181194
- [Cloudflare Pages Documentation](https://developers.cloudflare.com/pages/)
182-
- [next-on-pages GitHub](https://github.com/cloudflare/next-on-pages)
195+
- [OpenNext Cloudflare](https://opennext.js.org/cloudflare)
183196
- [Wrangler CLI Docs](https://developers.cloudflare.com/workers/wrangler/)

app/api/resources/[domain]/route.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import { NextResponse } from 'next/server';
22
import { NextRequest } from 'next/server';
33
import resources from '@/data/resources.json';
44

5-
export const runtime = 'edge';
5+
// Removed edge runtime for OpenNext Cloudflare compatibility
6+
// export const runtime = 'edge';
67

78

89
export async function GET(

app/api/resources/route.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { NextResponse } from 'next/server';
22

3-
export const runtime = 'edge';
3+
// Removed edge runtime for OpenNext Cloudflare compatibility
4+
// export const runtime = 'edge';
45

56
const resources = {
67
"cp": [],

next-on-pages.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[build]
2+
command = "npm run build"

open-next.config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { defineCloudflareConfig } from "@opennextjs/cloudflare";
2+
3+
export default defineCloudflareConfig({
4+
// Use default configuration
5+
// For Next.js 16 compatibility
6+
});

0 commit comments

Comments
 (0)