# EaseLMS > This documentation provides everything you need to set up and use EaseLMS, covering both self-hosted and cloud-hosted versions. ## Docs - [System Architecture](https://docs.easelms.org/advanced/architecture.md): Deep dive into EaseLMS architecture, tech stack, and monorepo structure - [Authentication System](https://docs.easelms.org/advanced/authentication.md): Supabase authentication implementation with row-level security and role-based access control - [File Storage & CDN](https://docs.easelms.org/advanced/file-storage.md): AWS S3 integration with CloudFront/Azure Front Door for scalable file storage and delivery - [Video Processing & Streaming](https://docs.easelms.org/advanced/video-processing.md): AWS MediaConvert for HLS transcoding and adaptive bitrate video streaming - [Authentication](https://docs.easelms.org/api/authentication.md): Learn how to authenticate with the EaseLMS API using Supabase authentication tokens - [Certificate API](https://docs.easelms.org/api/certificates.md): API endpoints for issuing and downloading course completion certificates - [Course API](https://docs.easelms.org/api/courses.md): API endpoints for managing courses, lessons, and course content - [Enrollment API](https://docs.easelms.org/api/enrollments.md): API endpoints for managing course enrollments and checking enrollment status - [Lesson API](https://docs.easelms.org/api/lessons.md): API endpoints for accessing lesson content, quizzes, and resources - [API Overview](https://docs.easelms.org/api/overview.md): Learn about the EaseLMS API, including base URL, versioning, response formats, and common patterns - [Payment API](https://docs.easelms.org/api/payments.md): API endpoints for processing course payments with Stripe and Flutterwave - [Progress API](https://docs.easelms.org/api/progress.md): API endpoints for tracking lesson and course progress - [User/Profile API](https://docs.easelms.org/api/users.md): API endpoints for managing user profiles and account settings - [Branding and theming](https://docs.easelms.org/features/branding.md): Customize your platform's visual identity with logos, colors, and SEO settings - [Certificates](https://docs.easelms.org/features/certificates.md): Generate and customize professional certificates for course completion - [Course management](https://docs.easelms.org/features/courses.md): Create, manage, and publish courses with rich content and flexible enrollment options - [Email notifications](https://docs.easelms.org/features/email-notifications.md): SendGrid-powered email notification system for user and admin communications - [Learner experience](https://docs.easelms.org/features/learners.md): Discover how learners interact with courses, track progress, and achieve their learning goals - [Payment integration](https://docs.easelms.org/features/payments.md): Monetize your courses with secure payment processing via Stripe and Flutterwave - [Customization Guide](https://docs.easelms.org/guides/customization.md): Learn how to customize EaseLMS branding, features, and integrate payment gateways - [Database Setup](https://docs.easelms.org/guides/database-setup.md): Complete guide to setting up Supabase database and running migrations for EaseLMS - [Deployment Guide](https://docs.easelms.org/guides/deployment.md): Deploy EaseLMS to production on Vercel, Railway, or your own infrastructure - [Environment Variables](https://docs.easelms.org/guides/environment-variables.md): Complete reference for all environment variables used in EaseLMS - [Self-Hosting Guide](https://docs.easelms.org/guides/self-hosting.md): Complete guide to self-hosting EaseLMS on your own infrastructure with full control - [Installation guide](https://docs.easelms.org/installation.md): Self-host EaseLMS with complete control over your data and infrastructure - [Introduction to EaseLMS](https://docs.easelms.org/introduction.md): A modern, open-source Learning Management System built with Next.js, TypeScript, and Supabase for creating and delivering online courses - [Quick start guide](https://docs.easelms.org/quickstart.md): Get started with EaseLMS in minutes - from account creation to enrolling in your first course