Skip to main content

Set up the admin dashboard

The admin dashboard is a standalone Next.js app that provides a web interface for managing portal configuration, monitoring deployments, viewing analytics, and controlling user access. It uses Supabase for authentication.

Prerequisites

  • Node.js 20 or later.
  • A Supabase project with authentication enabled.
  • The admin/ directory in your DevDocify project.

1. Configure Supabase credentials

Copy the example environment file:

cp admin/.env.local.example admin/.env.local

Set the two required values in admin/.env.local:

VariableWhere to find it
NEXT_PUBLIC_SUPABASE_URLSupabase project Settings > API > Project URL
NEXT_PUBLIC_SUPABASE_ANON_KEYSupabase project Settings > API > anon public key

Do not commit .env.local. It is already in .gitignore.

2. Set up authentication providers

Email and password

Email/password authentication works out of the box with Supabase. Create users in the Supabase dashboard under Authentication > Users.

GitHub OAuth

To enable "Continue with GitHub" login:

  1. Go to GitHub > Settings > Developer settings > OAuth Apps and create a new app.
  2. Set the authorization callback URL to http://localhost:3100/auth/callback (for local dev) or your production admin URL.
  3. In Supabase, go to Authentication > Providers > GitHub and enter the client ID and secret from GitHub.

3. Run locally

cd admin
npm install
npm run dev

The dashboard runs at http://localhost:3100. The docs site runs on port 3000, so both can run simultaneously.

4. Dashboard pages

Dashboard

The home page shows summary stats: portal count, recent deployments, page views, and custom domain count.

Portals

View and edit portal configuration:

  • Docsets table showing all registered docsets with route counts and versioning status.
  • Domain configuration with editable primary domain, alias list, and legacy redirect rules.
  • RBAC assignments showing role-to-principal mappings.

Changes are validated before save.

Deployments

Monitor deployment status without switching to Vercel or GitHub:

  • Production deployment card with commit, timestamp, and live URL.
  • Preview deployments table with PR numbers, branch names, and preview URLs.
  • Domain verification status with actionable DNS instructions for unverified domains.

Analytics

View docs usage with a 7-day or 30-day toggle:

  • Page views and search query totals.
  • Top pages table ranked by views.
  • Per-docset breakdown with traffic share percentages.

Settings

Manage users and access control:

  • List users with current role assignments (admin, maintainer, contributor, viewer).
  • Add or remove users and change roles inline.
  • View the audit log of access changes.

5. Build for production

cd admin
npm run build
npm run start

The production server runs on port 3100. Deploy to your preferred hosting provider (Vercel, Docker, or any Node.js host).