Sign inSign up

abstechnology/moodle-standard

By abstechnology

โ€ขUpdated 16 days ago

ABS Technology LMS powered by Moodleโ„ข

Image
Content management system
5

10K+

abstechnology/moodle-standard repository overview

โ ๐ŸŽ“ ABS Technology LMS powered by Moodleโ„ข LMS

โ One of The Most Advanced Moodle Docker Solution

Docker Pulls Docker Stars GitHub Stars Image Size

Moodle Version PHP Version MariaDB Version License


โ ๐Ÿš€ Production-Ready โ€ข Performance-Optimized โ€“ Professional-Service

โ ๐Ÿš€ Quick Start

Get your Moodle LMS running in under 2 minutes!

curl -sSL https://raw.githubusercontent.com/abs-technology/moodle/moodle-core-5-2-1-plus/docker-compose.yml > docker-compose.yml
curl -sSL https://raw.githubusercontent.com/abs-technology/moodle/moodle-core-5-2-1-plus/env.example > .env
mkdir -p data/moodle data/moodledata
chown -R 1000:1000 data/moodle data/moodledata
docker compose up -d

โ ๐Ÿ“š About Moodle

Moodle Logo โ 

The World's Open Source Learning Platform

โ ๐ŸŽฏ What is Moodle?

Moodleโ  is the world's most trusted open-source learning management system, empowering educators worldwide to create effective online learning experiences.

๐ŸŒ Global Impact:

  • 300+ million users worldwide
  • 250,000+ education sites in 240+ countries
  • Available in 120+ languages
  • Trusted by: Harvard, MIT, Shell, Microsoft
โ ๐Ÿš€ Key Features

Learning Modes:

  • ๐ŸŽ“ Blended Learning - Online + face-to-face
  • ๐ŸŒ Distance Education - Fully online courses
  • ๐Ÿ”„ Flipped Classroom - Interactive learning
  • ๐Ÿ“š Corporate Training - Professional development

Built For:

  • ๐Ÿซ Universities & Schools
  • ๐Ÿข Corporate Training
  • ๐ŸŽฏ Custom E-Learning Solutions
โ ๐Ÿ“– Official Resources
ResourceDescriptionLink
๐Ÿ“š User GuideComplete documentation for educatorsdocs.moodle.orgโ 
๐Ÿ› ๏ธ Developer DocsTechnical documentation & APIsmoodledev.ioโ 
๐Ÿงช Live DemoTry Moodle without installationsandbox.moodledemo.netโ 
๐Ÿ‘ฅ CommunityJoin global educators networkmoodle.orgโ 
๐ŸŽช EventsMoodle conferences worldwideMoodle Mootsโ 
๐Ÿค AssociationOfficial user associationmoodleassociation.orgโ 

License: GNU General Public License v3.0โ 

โ ๐ŸŒŸ Why Choose ABS Technology Moodle?

โ The Ultimate Moodle Docker Solution for Modern Education
โ ๐Ÿ† Enterprise-Grade
Production Ready

Latest Technology Stack

  • ๐Ÿš€ Moodle 5.2.1 - Latest features
  • ๐Ÿ˜ PHP 8.4 - Performance boost
  • ๐Ÿ—„๏ธ MariaDB 11.7.2 - Optimized database
  • ๐Ÿ”’ Security Hardened - Non-root execution
  • โšก OPcache Enabled - 3x faster performance
โ ๐ŸŽฏ Production-Ready
Scale Ready

Built for High-Traffic

  • ๐ŸŒ Load Balancer - Handle thousands of users
  • ๐Ÿ”ง One-Command Deploy - docker-compose up
  • ๐Ÿ“ฑ Mobile Optimized - PWA support
  • ๐ŸŒ Multi-Language - 120+ languages
  • ๐Ÿ“Š Health Monitoring - Built-in checks
โ ๐Ÿ’ผ Professional Supportโ 
24/7 Support

Expert Assistance

  • ๐ŸŽ“ Education Specialists - LMS experts
  • ๐Ÿ”„ Regular Updates - Security patches
  • ๐ŸŒ Global Support - Worldwide coverage
  • ๐Ÿ“ž Commercial Supportโ  - Enterprise SLA
  • ๐Ÿ› ๏ธ Custom Solutions - Tailored deployments

โ ๐Ÿš€ Performance Features
โ โšก Speed Optimizations
  • OPcache Enabled - PHP opcode caching
  • Optimized PHP-FPM - Better memory management
  • MariaDB Tuning - Database performance tweaks
  • Apache/Nginx Ready - Web server optimizations
  • Gzip Compression - Reduced bandwidth usage
โ ๐Ÿ“ˆ Scalability Features
  • Large File Support - Up to 2GB uploads
  • Memory Efficient - Optimized PHP settings
  • Load Balancer Ready - Multi-instance support
  • Caching Systems - Redis/Memcached compatible
  • CDN Integration - Static asset optimization

๐ŸŽฏ Built for high-traffic educational environments


โ ๐ŸŽฏ Perfect For
โ ๐Ÿซ Universities
  • Large student populations
  • Multi-campus deployments
  • Integration requirements
  • Scalability needs
โ ๐ŸŽ“ Schools
  • K-12 education
  • Teacher training
  • Parent portals
  • Student assessments
โ ๐Ÿข Corporations
  • Employee training
  • Compliance courses
  • Certification programs
  • Skills development
โ ๐ŸŒ Organizations
  • Non-profit training
  • Government education
  • Healthcare learning
  • Professional development

Subscribe to project updates by watching the ABS Technology Moodle GitHub repoโ .

โ ๐ŸŽฏ Trusted by Educational Institutions Worldwide

"Deployed across 200+ universities and schools globally, serving 500,000+ students daily"

Perfect for:

  • ๐Ÿซ Universities & Colleges worldwide
  • ๐ŸŽ“ K-12 Schools & International Schools
  • ๐Ÿข Corporate Training & Enterprise Learning
  • ๐Ÿ’ป Online Course Platforms & EdTech Startups
  • ๐ŸŒ Government & NGO Training Programs

โ ๐Ÿ“ฆ Get this Image

The recommended way to get the ABS Technology Moodle Docker Image is to pull the prebuilt image from the Docker Hub Registry.

$ docker pull abstechnology/moodle-standard:latest

To use a specific version, you can pull a versioned tag:

$ docker pull abstechnology/moodle-standard:5.2.1-plus

โ How to Use This Image

The main folder of this repository contains a functional docker-compose.ymlโ  file. Run the application using it as shown below:

$ curl -sSL https://raw.githubusercontent.com/abs-technology/moodle/moodle-core-5-2-1-plus/docker-compose.yml > docker-compose.yml
$ curl -sSL https://raw.githubusercontent.com/abs-technology/moodle/moodle-core-5-2-1-plus/env.example > .env
$ docker-compose up -d
โ Running Moodle with Docker Run

If you want to run the application manually instead of using docker-compose, these are the basic steps you need to run:

โ Step 1: Create a Network
$ docker network create moodle-network
โ Step 2: Create a Volume for MariaDB Persistence and Create a MariaDB Container
$ docker volume create --name mariadb_data
$ docker run -d --name mariadb \
  --env MARIADB_ROOT_PASSWORD=root_password \
  --env MARIADB_USER=moodle_user \
  --env MARIADB_PASSWORD=moodle_password \
  --env MARIADB_DATABASE=moodle_db \
  --network moodle-network \
  --volume mariadb_data:/var/lib/mysql \
  mariadb:11.7.2
โ Step 3: Create Volumes for Moodle Persistence and Launch the Container
$ docker volume create --name moodle_data
$ docker volume create --name moodledata_data
$ docker run -d --name moodle \
  -p 8080:8080 \
  -p 8443:8443 \
  --env MOODLE_DATABASE_HOST=mariadb \
  --env MOODLE_DATABASE_USER=moodle_user \
  --env MOODLE_DATABASE_PASSWORD=moodle_password \
  --env MOODLE_DATABASE_NAME=moodle_db \
  --env MOODLE_USERNAME=admin \
  --env MOODLE_PASSWORD=admin_password \
  --env [email protected] \
  --network moodle-network \
  --volume moodle_data:/var/www/html \
  --volume moodledata_data:/var/www/moodledata \
  abstechnology/moodle-standard:5.2.1-plus

Access your application at http://localhost:8080 or https://localhost:8443.

โ Configuration

โ Environment Variables

When you start the Moodle image, you can adjust the configuration of the instance by passing one or more environment variables either on the docker-compose file or on the docker run command line.

โ Moodle Configuration
  • MOODLE_USERNAME: Moodle admin username. Default: absi_admin
  • MOODLE_PASSWORD: Moodle admin password. Required
  • MOODLE_EMAIL: Moodle admin email. Required
  • MOODLE_SITE_NAME: Moodle site name. Default: Absi Technology Moodle LMSยฎ
  • MOODLE_SITE_FULLNAME: Moodle site full name. Default: Absi Technology Learning Management System
  • MOODLE_SITE_SHORTNAME: Moodle site short name. Default: ABSI-LMS
  • MOODLE_CRON_MINUTES: Moodle cron job interval in minutes. Default: 1
  • MOODLE_REVERSEPROXY: Enable reverse proxy support. Default: yes
  • MOODLE_SSLPROXY: Enable SSL proxy support. Default: yes
โ Database Configuration
  • MOODLE_DATABASE_TYPE: Database type. Default: mariadb
  • MOODLE_DATABASE_HOST: Hostname for database server. Default: mariadb
  • MOODLE_DATABASE_PORT_NUMBER: Port used by database server. Default: 3306
  • MOODLE_DATABASE_NAME: Database name for Moodle. Default: absi_moodle_db
  • MOODLE_DATABASE_USER: Database user for Moodle. Default: absi_moodle_user
  • MOODLE_DATABASE_PASSWORD: Database password for Moodle. Required
โ PHP Configuration
  • PHP_MEMORY_LIMIT: PHP memory limit. Default: 512M
  • PHP_MAX_INPUT_VARS: PHP max input variables. Default: 5000
  • PHP_MAX_FILE_UPLOADS: PHP max file uploads. Default: 200
  • PHP_POST_MAX_SIZE: PHP POST max size. Default: 2G
  • PHP_UPLOAD_MAX_FILESIZE: PHP upload max filesize. Default: 2G
  • PHP_MAX_EXECUTION_TIME: PHP max execution time. Default: 256
โ Full Example
services:
  mariadb:
    image: mariadb:11.7.2
    container_name: abs-mariadb
    environment:
      - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
      - MARIADB_USER=${MARIADB_USER}
      - MARIADB_PASSWORD=${MARIADB_PASSWORD}
      - MARIADB_DATABASE=${MARIADB_DATABASE}
    command:
      - '--character-set-server=utf8mb4'
      - '--collation-server=utf8mb4_unicode_ci'
      - '--init-connect=SET NAMES utf8mb4'
    volumes:
      - mariadb_data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "-u", "root", "-p${MARIADB_ROOT_PASSWORD}"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - moodle_network

  moodle:
    image: abstechnology/moodle-standard:5.2.1-plus
    container_name: abs-moodle
    ports:
      - "80:8080"
      - "443:8443"
    environment:
      # Moodle Admin Configuration
      - MOODLE_USERNAME=${MOODLE_USERNAME}
      - MOODLE_PASSWORD=${MOODLE_PASSWORD}
      - MOODLE_EMAIL=${MOODLE_EMAIL}
      
      # Moodle Site Configuration
      - MOODLE_SITE_NAME=${MOODLE_SITE_NAME}
      - MOODLE_SITE_FULLNAME=${MOODLE_SITE_FULLNAME}
      - MOODLE_SITE_SHORTNAME=${MOODLE_SITE_SHORTNAME}
      - MOODLE_CRON_MINUTES=${MOODLE_CRON_MINUTES}
      
      # Database Configuration
      - MOODLE_DATABASE_TYPE=${MOODLE_DATABASE_TYPE}
      - MOODLE_DATABASE_HOST=${MOODLE_DATABASE_HOST}
      - MOODLE_DATABASE_PORT_NUMBER=${MOODLE_DATABASE_PORT_NUMBER}
      - MOODLE_DATABASE_USER=${MARIADB_USER}
      - MOODLE_DATABASE_PASSWORD=${MARIADB_PASSWORD}
      - MOODLE_DATABASE_NAME=${MARIADB_DATABASE}
      
      # PHP Configuration Limits
      - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT}
      - PHP_MAX_INPUT_VARS=${PHP_MAX_INPUT_VARS}
      - PHP_MAX_FILE_UPLOADS=${PHP_MAX_FILE_UPLOADS}
      - PHP_POST_MAX_SIZE=${PHP_POST_MAX_SIZE}
      - PHP_UPLOAD_MAX_FILESIZE=${PHP_UPLOAD_MAX_FILESIZE}
      - PHP_MAX_EXECUTION_TIME=${PHP_MAX_EXECUTION_TIME}
      
      # MariaDB Connection Configuration
      - MARIADB_HOST=${MOODLE_DATABASE_HOST}
      - MARIADB_PORT_NUMBER=${MOODLE_DATABASE_PORT_NUMBER}
      - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
      - MARIADB_PASSWORD=${MARIADB_PASSWORD}
      
      # Proxy Configuration
      - MOODLE_REVERSEPROXY=${MOODLE_REVERSEPROXY}
      - MOODLE_SSLPROXY=${MOODLE_SSLPROXY}

      # Upgrade behavior (see env.example for details)
      - MOODLE_AUTO_DB_UPGRADE=${MOODLE_AUTO_DB_UPGRADE:-no}
      - MOODLE_BACKUP_DIR=${MOODLE_BACKUP_DIR:-/var/www/moodle-backups}
      - MOODLE_UPGRADE_RETENTION=${MOODLE_UPGRADE_RETENTION:-5}

    volumes:
      - ./data/moodle:/var/www/html
      - ./data/moodledata:/var/www/moodledata
      - ./data/moodle-backups:/var/www/moodle-backups
    depends_on:
      mariadb:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "sh", "-c", "if [ \"$$MOODLE_SSLPROXY\" = \"yes\" ]; then curl -f -k https://localhost:8443/login/index.php; else curl -f http://localhost:8080/login/index.php; fi"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 60s
    networks:
      - moodle_network

networks:
  moodle_network:
    driver: bridge

volumes:
  mariadb_data:

โ โญ Key Features & Specifications

โ ๐Ÿš€ Performance & Scale
FeatureSpecificationBenefit
๐Ÿ˜ PHP Version8.4 with OPcache40% faster than PHP 7.4
๐Ÿ—„๏ธ DatabaseMariaDB 11.7.2High-performance, MySQL-compatible
๐Ÿ“ File UploadsUp to 2GB per fileSupport large video/document uploads
๐Ÿ”„ Cron JobsConfigurable (1-60 min)Automated maintenance & notifications
โ ๐Ÿ”’ Security & Compliance
  • โœ… Non-root execution - Enhanced container security
  • โœ… SSL/TLS ready - HTTPS support out-of-the-box
  • โœ… Security headers - OWASP recommended configurations
  • โœ… Secure defaults - Hardened PHP & Apache configurations
โ ๐ŸŒ Production Features
  • ๐Ÿ”ง Health Checks - Built-in monitoring endpoints
  • ๐Ÿ“Š Logging - Container-friendly structured logs
  • โš–๏ธ Load Balancer Ready - Reverse proxy optimized
  • ๐ŸŒ International Ready - 100+ built-in language packs, timezone, currency support

โ Security

โ Container Security

This image runs as a non-root user (absiuser) for enhanced security. All services are configured to run with minimal privileges.

โ SSL/TLS Support

The image includes SSL support with self-signed certificates for development. For production, mount your own certificates:

$ docker run -d --name moodle \
  -v /path/to/your/cert.pem:/etc/ssl/certs/server.crt \
  -v /path/to/your/key.pem:/etc/ssl/private/server.key \
  abstechnology/moodle-standard:latest
โ Password Security

Always use strong passwords for database and admin accounts. You can generate secure passwords using:

$ openssl rand -base64 32

โ Maintenance

โ Backing Up Your Container

To backup your data, we recommend backing up both the database and the Moodle data directory:

# Backup database
$ docker exec mariadb mysqldump -u root -p[ROOT_PASSWORD] [DATABASE_NAME] > backup.sql

# Backup Moodle data
$ docker run --rm --volumes-from moodle -v $(pwd):/backup alpine tar czf /backup/moodledata-backup.tar.gz /var/www/moodledata
โ Restoring a Backup
# Restore database
$ docker exec -i mariadb mysql -u root -p[ROOT_PASSWORD] [DATABASE_NAME] < backup.sql

# Restore Moodle data
$ docker run --rm --volumes-from moodle -v $(pwd):/backup alpine tar xzf /backup/moodledata-backup.tar.gz -C /

โ Contributing

We welcome contributions to improve this Docker image. Please submit issues and enhancement requests, and feel free to submit pull requests.

โ License

This Docker setup is licensed under the MIT License. Moodle itself is licensed under the GNU General Public License v3+.

โ ๐ŸŽง Support & Community

โ ๐Ÿ†“ Community Support
โ ๐Ÿ’ผ Enterprise Support
  • ๐Ÿข Commercial Support: Professional Servicesโ  | [email protected]โ 
  • ๐ŸŒ Global Support: Available across all timezones
  • ๐ŸŽ“ Training & Consulting: Custom Moodle implementation services
  • ๐Ÿš€ Migration Services: Seamless migration from other LMS platforms
  • โญ Lifetime Updates: Free updates and continuous improvements guaranteed
โ ๐Ÿ“ˆ Success Metrics
  • โญ 99.9% Uptime across production deployments
  • ๐Ÿซ 200+ Institutions actively using our images worldwide
  • ๐Ÿ‘ฅ 500,000+ Students served daily across 50+ countries
  • ๐ŸŒ Trusted Choice for international educational institutions

โ ๐Ÿš€ Ready to Get Started?

โ ๐ŸŽฏ Quick Start

Perfect for trying out

Deploy Now

One command deployment

โ ๐Ÿข Enterprise

Production-ready solution

Contact Sales

Custom deployment & support

โ ๐Ÿค Community

Join our community

Join Community

Get help & share ideas

โ ๐Ÿข About ABS Technology

Global LMS Solutions Provider & Education Technology Leader

๐ŸŒŸ Official Google Cloud Partner | ๐ŸŽ“ Education Technology Specialist | ๐Ÿ† Award-Winning Support

Website Email GitHub Phone Location

Celebrating 8 years as one of the top-selling LMS powered by Moodleโ„ข - empowering global education with innovative, reliable solutions


โ ๐ŸŒŸ Star us on GitHub if this helped you!
GitHub Stars โ  GitHub Forks โ  GitHub Issues โ 

Built with โค๏ธ by ABS Technology for the global education community
Licensed under GPL v3.0โ  โ€ข abs.educationโ  โ€ข Professional Servicesโ 

Tag summary

Content type

Image

Digest

sha256:6d97fe76cโ€ฆ

Size

254.1 MB

Last updated

16 days ago

docker pull abstechnology/moodle-standard