You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Both documentation projects (crowdsec-manager and middleware-manager) currently run in Next.js SSR mode and use server-side API routes that are incompatible with static export. Migrating to output: 'export' would enable GitHub Pages hosting and eliminate the need for a Node.js runtime server.
Source
Gap analysis: docs/upstream-contributions/crowdsec-manager/docs-analyse.md (Sections 5.1–5.3)
Gap analysis: docs/upstream-contributions/middleware-manager/docs-analyse.md (Section 5)
Current State (Both Projects)
// next.config.mjs — current stateconstconfig={reactStrictMode: true,};
No output: 'export' — currently deployed via Vercel or similar SSR host.
What Blocks Static Export
Component
Both Projects
Required Change
app/api/search/route.ts
Yes
Replace with fumadocs-core static search
app/llms-full.txt/route.ts
Yes
Generate as static file at build time
app/og/docs/[...slug]/route.tsx
Yes
Remove or pre-render as static images
sitemap.ts
crowdsec-manager
Convert to static sitemap.xml
robots.ts
crowdsec-manager
Convert to static robots.txt
Required Changes per Project
crowdsec-manager docs
Add output: 'export' to next.config.mjs
Replace search API route with fumadocs static search (fumadocs-coreSearchDialog with static index)
Migrate sitemap.ts → static sitemap.xml
Migrate robots.ts → static robots.txt
Handle or remove OG image generation route
Handle or remove llms-full.txt route
Add export script to package.json
Validate: next build produces a fully static out/ directory
middleware-manager docs
Add output: 'export' to next.config.mjs
Replace search API route with fumadocs static search
Handle or remove OG image generation route
Handle or remove llms-full.txt route
Add export script to package.json
Validate: next build produces a fully static out/ directory
fumadocs Static Search Migration
Fumadocs officially supports static export. The search migration involves:
Summary
Both documentation projects (crowdsec-manager and middleware-manager) currently run in Next.js SSR mode and use server-side API routes that are incompatible with static export. Migrating to
output: 'export'would enable GitHub Pages hosting and eliminate the need for a Node.js runtime server.Source
docs/upstream-contributions/crowdsec-manager/docs-analyse.md(Sections 5.1–5.3)docs/upstream-contributions/middleware-manager/docs-analyse.md(Section 5)Current State (Both Projects)
No
output: 'export'— currently deployed via Vercel or similar SSR host.What Blocks Static Export
app/api/search/route.tsapp/llms-full.txt/route.tsapp/og/docs/[...slug]/route.tsxsitemap.tssitemap.xmlrobots.tsrobots.txtRequired Changes per Project
crowdsec-manager docs
output: 'export'tonext.config.mjsfumadocs-coreSearchDialogwith static index)sitemap.ts→ staticsitemap.xmlrobots.ts→ staticrobots.txtllms-full.txtrouteexportscript topackage.jsonnext buildproduces a fully staticout/directorymiddleware-manager docs
output: 'export'tonext.config.mjsllms-full.txtrouteexportscript topackage.jsonnext buildproduces a fully staticout/directoryfumadocs Static Search Migration
Fumadocs officially supports static export. The search migration involves:
app/api/search/route.tsfumadocs-core's client-side search dialogReference: https://fumadocs.vercel.app/docs/headless/search/static
Acceptance Criteria
output: 'export'added tonext.config.mjsin both projectsnext buildcompletes without errors in both projects (producesout/directory)package.jsonhas anexportorbuild:staticscriptDependencies
This issue should be tackled after Phase 1 content corrections are complete in both projects, to avoid re-running the build validation multiple times.
Effort Estimate
L (4–6 hours across both projects, including validation)