Files
classroomio/apps/docs/blume.config.ts
T
Abdulmuizz HamzatandRotimi Best b599f1a017 chore(docs): migrate the docs site from Fumadocs to Blume (#753)
* Update documentation for ClassroomIO: change Fumadocs to Blume, revise MDX format conventions, and clarify sidebar navigation requirements.

* docs: update README and scripts for improved preview and error handling

* docs: update Discord link in configuration and documentation

* docs: add token-auth route and update documentation formatting

* Fix formatting in auto-comment-issues.yml

* Fix JSON syntax by adding a comma

* fix(docs): declare Blume's Astro build deps so Cloudflare build resolves them

blume build generates an Astro project under apps/docs/.blume/ that imports
astro, @astrojs/mdx, @tailwindcss/vite, tailwindcss, @tailwindcss/typography,
@shikijs/twoslash and @scalar/astro. Under pnpm's isolated node_modules these
are nested inside blume and not resolvable from the docs app, so a clean
--frozen-lockfile build (Cloudflare) fails at 'Cannot find module astro/config'.
Declare them directly in @cio/docs, pinned to blume's resolved versions.

* refactor(docs): update API reference paths and documentation for clarity

* fix: change platofrm url to docs home page

* Refactor documentation for self-hosting ClassroomIO

- Removed the Supabase Cloud setup guide as it is no longer needed.
- Updated the Enterprise SSO documentation to include a reference link for SSO & licensing.
- Added new documentation for Content Security Policy (CSP) configuration.
- Created a new section for configuring SMTP for email notifications.
- Introduced a comprehensive configuration index for self-hosted ClassroomIO, detailing environment variables and their usage.
- Added documentation for optional integrations including Google OAuth, OpenAI, and Unsplash.
- Documented the generation and usage of required secrets for ClassroomIO.
- Created a section for SSO & licensing, detailing the requirements for Enterprise features.
- Added object storage configuration documentation, covering both bundled MinIO and external S3-compatible services.
- Documented versioning and upgrade processes for ClassroomIO.
- Updated the Coolify and Docker self-hosting guides to streamline configuration references and upgrade instructions.
- Enhanced the Railway self-hosting guide with links to relevant configuration sections.
- Updated token authentication documentation to reference SSO & licensing.

* Add comprehensive guides for ClassroomIO features and functionalities

- Introduced a new guide for the Student Dashboard, detailing navigation and features available to students.
- Added a guide on using Tags for organizing and filtering courses within ClassroomIO.
- Created a guide on how to take attendance in courses, including marking attendance and related functionalities.
- Developed a Terminology guide to clarify key terms used throughout ClassroomIO.
- Implemented a Token Auth guide for signing users into ClassroomIO from external applications using JWT.
- Added instructions for using math in the editor with LaTeX support.
- Created a guide for customizing the welcome email sent to students upon enrollment in courses.
- Added a guide explaining what ClassroomIO is and its key features.
- Updated the home documentation to provide a clearer overview of ClassroomIO and its resources.
- Enhanced self-hosted configuration documentation with a new guide for deploying ClassroomIO on Dokploy.
- Updated links in the self-hosted configuration documentation for better navigation.
- Added new images to support the Dokploy deployment guide.
- Updated asset packaging script to handle redirects for the new guide structure.
- Fixed footer link to point to the correct Getting Started guide.

* chore: uprage version

* feat(docs): add DigitalOcean deployment guide and flatten guides structure

- Add a guide for deploying ClassroomIO on DigitalOcean using Docker Compose
  and Caddy for automatic HTTPS.
- List DigitalOcean as a deployment option in the self-hosting index.
- Move guides out of content/docs/guides into content/docs (student-dashboard,
  tags, terminology, token-auth, what-is-classroomio, audience, cohorts,
  community, course, enterprise-sso, mcp, organization, quickstart/*).
- Rename home.mdx to index.mdx.
- Update package-assets script to emit redirects for the old guides paths.

---------

Co-authored-by: Rotimi Best <[email protected]>
2026-07-22 22:30:10 +01:00

199 lines
5.6 KiB
TypeScript

import { defineConfig } from 'blume';
/**
* The site is served at classroomio.com/docs, proxied to this worker by the
* marketing site (apps/website/src/hooks.server.ts). `deployment.base` only
* rewrites URLs in the emitted HTML — it does not nest the build output, so
* scripts/package-assets.mjs moves dist/ under docs/ to match the served path.
*
* Redirects are NOT declared here: under a base, Astro prefixes a redirect's
* source but not its target, so it would emit `url=/guides` instead of
* `/docs/guides`. They live in scripts/package-assets.mjs as a `_redirects` file.
*/
export default defineConfig({
title: 'ClassroomIO Docs | Customer, Partner, and Employee Education',
description:
'Learn how to create customer academies, partner certification programs, and employee training workflows in ClassroomIO.',
logo: {
text: 'ClassroomIO',
image: '/docs/logo-192.png',
href: '/docs'
},
content: {
root: 'content/docs'
},
deployment: {
output: 'static',
site: 'https://classroomio.com',
base: '/docs'
},
github: {
owner: 'classroomio',
repo: 'classroomio',
dir: 'apps/docs'
},
theme: {
mode: 'system'
},
search: {
provider: 'orama'
},
ai: {
llmsTxt: true
},
seo: {
x: {
creator: '@classroomio',
handle: '@classroomio'
}
},
openapi: {
enabled: true,
renderer: 'scalar',
route: '/api',
sources: [{ label: 'API', spec: './openapi/public-api.json' }]
},
navigation: {
tabs: [
{ label: 'Platform', path: '/', icon: 'house' },
{ label: 'Guides', path: '/guides', icon: 'book-open' },
{ label: 'Self Hosting', path: '/self-hosted', icon: 'server' },
{ label: 'API', path: '/api', icon: 'code' }
],
sidebar: [
{
label: 'Platform',
items: [
'/',
{
label: 'Introduction',
items: [
'/what-is-classroomio',
'/terminology',
{
label: 'Quickstart',
items: ['/quickstart/signup', '/quickstart/onboarding']
}
]
},
{
label: 'Core Features',
items: [
'/course',
'/cohorts',
'/mcp',
'/tags',
'/audience',
'/community',
'/organization',
'/student-dashboard',
'/enterprise-sso',
'/token-auth'
]
}
]
},
{
label: 'Guides',
root: '/guides',
items: [
'/guides',
{
label: '', // User Guides
items: [
{
label: 'Get started',
items: ['/guides/create-first-course']
},
{
label: 'Build a course',
items: [
'/guides/course-types',
'/guides/create-exercise',
'/guides/grade-exercise',
'/guides/course-progression',
'/guides/use-math-in-editor',
'/guides/certificates'
]
},
{
label: 'Live classes',
items: ['/guides/live-class', '/guides/take-attendance']
},
{
label: 'Enrollment & students',
items: [
'/guides/course-enrollment',
'/guides/welcome-email',
'/guides/invite-students'
]
},
{
label: 'Publish your academy',
items: [
'/guides/course-landingpage',
'/guides/org-landing-page',
'/guides/academy-sharing-and-branding',
'/guides/custom-domain'
]
},
{
label: 'Organization & team',
items: [
'/guides/customize-organization',
'/guides/invite-team-member',
'/guides/roles-and-permissions'
]
}
]
},
{
label: 'Developer Guides',
items: [
'/guides/contributing',
'/guides/contributing/devs',
'/guides/contributing/design',
'/guides/contributing/cloudflare-setup',
'/guides/contributing/org-site-opengraph-and-favicon',
'/guides/contributing/gitpod',
'/guides/contributing/demo-accounts',
'/guides/contributing/student-dashboard',
'/guides/contributing/adding-translation-to-code'
]
}
]
},
{
label: 'Self Hosting',
root: '/self-hosted',
items: [
'/self-hosted',
{
label: 'Platforms',
items: [
'/self-hosted/docker',
'/self-hosted/digitalocean',
'/self-hosted/railway',
'/self-hosted/coolify',
'/self-hosted/dokploy'
]
},
{
label: 'Configuration',
items: [
'/self-hosted/configuration',
'/self-hosted/configuration/secrets',
'/self-hosted/configuration/email',
'/self-hosted/configuration/storage',
'/self-hosted/configuration/csp',
'/self-hosted/configuration/integrations',
'/self-hosted/configuration/sso',
'/self-hosted/configuration/versions'
]
},
]
}
]
}
});