Deploying Open eClass
Introduction
Open eClass is an open-source e-learning platform designed for educational institutions to deliver online courses and manage learning activities. Developed by the Greek Universities Network (GUNet), Open eClass has been used by universities and educational organizations across Europe and beyond since 2003.
Built with PHP and MySQL, Open eClass provides a complete Learning Management System (LMS) with tools for course creation, content delivery, student assessment, and collaboration. The platform supports the SCORM standard for importing and sharing learning content.
Key features of Open eClass include:
- Course Management: Create and organize courses with modular content structures
- Document Repository: Upload and manage course materials, documents, and multimedia
- Assignments: Create assignments with deadlines and automated grading support
- Quizzes and Tests: Multiple question types with time limits and randomization
- Discussion Forums: Threaded discussions for course communication
- Video Integration: Support for video lectures and streaming
- Learning Paths: Sequential course content with completion tracking
- Gradebook: Track and manage student grades
- Calendar: Course events and deadlines calendar
- Statistics: Detailed usage and progress analytics
- SCORM Support: Import SCORM-compliant learning packages
- Multi-Language: Available in multiple languages
This guide walks through deploying Open eClass on Klutch.sh using Docker.
Why Deploy Open eClass on Klutch.sh
Deploying Open eClass on Klutch.sh provides reliable e-learning infrastructure:
Accessible Learning: Students can access courses from anywhere with internet connectivity.
Persistent Storage: Store course materials, student submissions, and grades with persistent volumes.
HTTPS by Default: Secure access to your learning platform with automatic SSL certificates.
Scalable Resources: Handle increased load during exam periods or course enrollments.
Custom Domains: Use your institution’s domain for professional branding.
Prerequisites
Before deploying Open eClass on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your deployment
- A MySQL or MariaDB database instance
- SMTP credentials for email notifications
Deploying Open eClass on Klutch.sh
Set Up Your Database
Deploy a MySQL or MariaDB database on Klutch.sh or use an external database service.
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM php:8.1-apache
# Install PHP extensions and dependenciesRUN apt-get update && apt-get install -y \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libzip-dev \ libicu-dev \ unzip \ git \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install gd mysqli pdo pdo_mysql intl zip
# Enable Apache modulesRUN a2enmod rewrite
# Download Open eClassWORKDIR /var/www/htmlRUN git clone https://github.com/gunet/openeclass.git .
# Set permissionsRUN chown -R www-data:www-data /var/www/html \ && chmod -R 755 /var/www/html
EXPOSE 80
CMD ["apache2-foreground"]Push to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create and Configure the App
Create a new app and connect it to your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with an internal port of 80.
Set Environment Variables
Configure your deployment:
| Variable | Description |
|---|---|
DB_HOST | Database hostname |
DB_USER | Database username |
DB_PASSWORD | Database password |
DB_NAME | Database name |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/www/html/courses | 50+ GB | Course files and materials |
/var/www/html/video | 100+ GB | Video content |
/var/www/html/config | 100 MB | Configuration files |
Deploy Your Application
Click Deploy to build and launch your Open eClass instance.
Complete Installation
Access your deployment and complete the web-based installation wizard.