Category Archives: Moodle

Moodle – The best LMS you might not have!

Why Moodle LMS is the Best Choice for Any School

Modern Learning Management Systems (LMS) have become essential tools for educational institutions navigating the complexities of digital learning. They streamline administrative tasks, enhance teaching effectiveness, facilitate student engagement, and provide robust assessment capabilities. An effective LMS saves institutions time and resources while improving educational outcomes. However, these benefits only materialize when you choose the right platform—and that choice shouldn’t be dictated by vendor marketing budgets.

The Open Source Advantage

Many commercial LMS vendors publish articles emphasizing the “crucial need” for their proprietary solutions, conveniently leading readers toward expensive subscription models that generate recurring revenue for shareholders rather than value for educators. While these platforms may offer polished interfaces, they often lock schools into costly licensing agreements, limited customization options, and vendor dependency that can last for years.

The reality is far more promising: there’s a robust ecosystem of free, open-source LMS solutions that rival or exceed commercial alternatives in functionality, flexibility, and long-term value. Among these, Moodle stands out as the clear leader.

Why Moodle is the Best LMS for Schools

1. Proven Track Record and Scale

Moodle powers over 400 million users across 240+ countries, making it the world’s most widely adopted LMS. This isn’t accidental—schools, universities, and organizations choose Moodle because it delivers results. From small K-12 schools to major research universities, Moodle scales to meet any institution’s needs.  Our district began using Moodle in 2006 and it became mandated for all 5-12th grade classes 2 years later.  In that time we have been forced to reboot our Moodle server less than a handful of times, and those were usually my error in the configuration.

2. Zero Licensing Costs

Moodle is completely free and open source. There are no per-user fees, no annual licensing costs, and no surprise price increases. Your budget goes toward what matters: quality hosting, professional development, and educational content—not vendor profits.  I have talked with several schools about the total cost of ownership (the only cost being my time and the initial server cost) but those are so low compared to the commercial options, there really is no cost comparison at all.

3. Unmatched Flexibility and Customization

Unlike proprietary systems with rigid feature sets, Moodle can be tailored to your exact requirements. With thousands of plugins, themes, and customization options, you can create a learning environment that reflects your institution’s unique pedagogical approach and branding. If a feature doesn’t exist, your team or the global community can build it.  The community has 2547 plugins available for download.  If the core Moodle doesn’t have what you need, there is probably a plugin.  NTLS has an extensive number of home written plugins.  These include Elementary School Grade cards (based on indicators, not grades), automatic enrollment scripts, tardy and absentee displays, and  much more.  The ability customize Moodle is based only on your imagination.

4. Pedagogically Sound Design

Moodle was created by educators for educators. Its course structure supports diverse teaching methodologies—from traditional instruction to collaborative learning, competency-based education, and flipped classrooms. Features like conditional activities, learning paths, and comprehensive gradebook options give teachers powerful tools to personalize learning.

Students' preferences for future use of a distance-learning platform.

5. Ownership and Control

With Moodle, you own your data, control your platform, and determine your roadmap. You’re never held hostage by a vendor’s business decisions, sunset policies, or acquisition by a larger corporation. Your institution maintains complete autonomy over when and how you upgrade, what features you implement, and how you protect student privacy.  There is no need to worry about what a vendor is doing with your Moodle data, it is your data, on your machine, behind your firewall.

6. Active Global Community

Moodle’s vibrant community includes millions of educators, developers, and administrators who contribute code, share best practices, and provide support through forums and documentation. This collaborative ecosystem means continuous innovation driven by real educational needs, not market trends.

7. Enterprise-Grade Features

Don’t mistake “free” for “basic.” Current Moodle versions (like Moodle 4.5 on PHP 8) offer sophisticated capabilities including:

  • Advanced analytics and reporting
  • Mobile-responsive design with dedicated apps
  • Integration with external tools via LTI
  • Robust assessment engines with multiple question types
  • Plagiarism detection integration
  • Accessibility compliance (WCAG standards)
  • Single sign-on and authentication options
  • Video conferencing integration
  • Competency-based learning frameworks
  • Portfolio management

8. Future-Proof Technology

Moodle continues evolving with modern web standards and educational technology trends. Recent upgrades have brought improved user interfaces, enhanced performance, better mobile experiences, and integration with emerging technologies—all while maintaining backward compatibility and respecting existing investments.

The Bottom Line

When commercial LMS vendors claim their solutions are “crucial,” they’re right about the need but wrong about the answer. Schools don’t need expensive subscriptions to access world-class learning management capabilities. Moodle provides everything you need: proven reliability, pedagogical sophistication, unlimited scalability, and complete institutional control—all without licensing fees.

The best LMS for any school isn’t the one with the biggest marketing budget or the slickest sales presentation. It’s the one that empowers teachers, engages students, serves your institution’s unique mission, and respects your budgetary constraints. For these reasons and many more, Moodle remains the gold standard in educational technology.

Choose open source. Choose community. Choose Moodle.


For technical guidance on implementing Moodle or upgrading to the latest versions, consult the extensive documentation at moodle.org or connect with the global Moodle community.

Creating a Big Blue Button Virtual Machine

Assumptions:

  • You have a Linux 20.04 VM that had root enabled and available for login.
  • The VM is able to have the minimum specs required for Big Blue Button.

Prerequisites:

  1. You have an email available to use for Big Blue Button
  2. You have a subdomain available to use for Big Blue Button

1.1 Starting Off

  • Log in with root by hitting the not listed icon and inserting root in the username field then enter the password. After logging in, you will want to navigate to the following website: https://docs.bigbluebutton.org/administration/install/
  • (Note: The following steps are optional, however, every time that something went wrong with the installation I had not done these.) You will want to do the following pre-installation steps to check the requirements:
    • In terminal, use the following commands:
      • cat /etc/default/locale
      • systemctl show-environment
      • free -h
      • uname -m
      • ip addr |grep inet6
      • uname -r
      • grep -c ^processor /proc/cpuinfo
      • ufw allow 80
      • ufw allow 443                             
    • The responses you should get are as follows:
      • LANG=”en_US.UTF-8″
      • LANG=”en_US.UTF-8″ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      • total used free shared buff/cache available
        Mem: 15G 3.1G 1.0G 305M 11G 12G
        Swap: 0B 0B 0B
      • X86_64
      • inet6 :: 1/128 scope host
      • 5.4.x-xx-generic (Note mine did not exactly match this and it still worked.)
      • 8

1.2 Installation

  1. Download the script from the following website: https://github.com/bigbluebutton/bbb-install/blob/v2.7.x-release/bbb-install.sh
  2. Enter cd ~/Downloads into terminal. (This changes the active directory to the Downloads folder)
  3. Next, you want to make the script executable use this command: chmod +x bbb-install.sh
  4. This command runs the script: ./bbb-install.sh
  5. You should see a bunch of information regarding the script pop up.
  6. We are then going to navigate back to the website that you downloaded the script from and go to the page titled “READ ME”                     
  7. Located in the README document is the command for installing Big Blue Button, along with Greenlight. Scroll down until you see the heading titled “Installing on a Private Network”.
  8. Right above that heading, there is a command that is available to copy, copy this command and paste it into terminal.
  9. Once pasted, delete the “[options]” part and instead put in “-g”. This is to install greenlight along with Big Blue Button. You will also need to enter that email and domain that I mentioned earlier. 
  10. Once pasted, click enter and it will run the command, it will take a little while to install everything.
  11. Once done, you should see a link to the domain that you entered into the command, click on it and if you see the following screen, you have successfully installed Big Blue Button.
  12. If using with Moodle, you will need to obtain the “Secret” along with the domain. You will obtain both of these using the following command: bbb-conf –secret.

Moodle Installation

Since the Moodle Docs site has been so sketchy, I decided it would be best to document my recent installation.
Note:  I am installed on a VMWare ESXi 6.5 Virtual Machine.  750GB SSD, 16GB RAM, and 8 Cores.

  • Install Ubuntu 16.04
  • If you are doing it on a VM, check Check CPU#, Increase Video RAM, and move LAN to the 1000e.
  • I immediately open root and do everything else as room
    • sudo -i passwd root
    • sudo passwd -u root
    • su
    • gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
      • Add the following lines to the bottom.
        [SeatDefaults]
        greeter-session=unity-greeter
        user-session=ubuntu
        greeter-show-manual-login=true
    • gedit /root/.profile
      • Delete last line -> mesg n
  • Reboot and logon as root
    • Update  and install vm tools
      • apt-get update
      • apt-get upgrade
      • apt-get install open-vm-tools
    • Install LAMP and required Moodle dependencies.
      • apt-get install apache2 mysql-client mysql-server php7.0 libapache2-mod-php7.0
      • apt-get install graphviz aspell php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip php7.0-soap php7.0-mbstring
    • Restart the server and then create the Moodle database
      • reboot -r now
      • mysql -u root -p
        • CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
        • create user ‘username‘@’localhost’ IDENTIFIED BY ‘password‘;
        • GRANT ALL PRIVILEGES  ON moodle.* TO username@localhost IDENTIFIED BY ‘password
        • quit;
  • I make the folders for Moodle in the /var/www folder and initially open all permissions there.
    • cd /var/www
    • mkdir moodledata
    • mkdir moodlesql
    • chmod -R 0777 /var/www
    • If you are restoring a previous version.
      • cd /var/www/moodlesql  (or wherever the sql file is)
      • mysql -p moodle<moodle-database.sql
    • If you make a mistake you can always delete the database and start over
      • mysql -u root -p
        • drop database Moodle;
        • quit;
    • There are a couple tweaks I make to PHP before the installation
      • gedit /etc/php/7.0/apache2/php.ini
        • find “post_max_size”
        • Change the value to the number of Mb you want your site to accept as uploads
        • find “upload_max_filesize”
        • Change to the same value as above
        • Find “max_execution_time”
        • Raise to a larger value if needed (like 60-600)
  • Download Moodle from Moodle.org and extract the file to /var/www/html
    • Navigate to 127.0.0.1 in your browser and begin the installation!
  • When you are complete you may want to:
    • Reset your folder permissions
      • chmod -R 0775 /var/www
    • make your IP address a static one and then get that address permanently in the moodle config.php file until you have an actual web address to put in there.

]]>

What's in your backup?

<![CDATA[
As IT professionals we know that server backups are our sole responsibility.  There is no one else in the building worrying about it (until they lose stuff) and no one is looking over your shoulder.  But when the crypto-virus hits, when a catastrophic power event kills your servers, when your boss deletes the same folder for the tenth time…can you get it back?
All the training in the world will not prevent every user from clicking on that download.  I do training, I tell users not to click on unexpected attachments, but it happens.  Are you ready?  FYI, not selling anything.
Backups are easy.  In fact, with Server 2016, they are easier than easy.  In each of my VMWare machines there exists and “extra” 6TB drive.  On this drive I added an extra drive to each virtual server and setup automatic daily backups.  In general, this has been a flawless technique.  I can restore files in minutes.  Users do not have access (so the crytovirus doesn’t touch them) and they can be archived.  I use a daily batch to copy these backups weeks to another backup server, giving me redundancy.  I also have a copy in the vault that I remake every once in while.
“The cloud is better!”  I have heard that alot, but I don’t think so.  If all our user documents are on Google we are a slave to the internet.  Yes, an IT guy just said that!  Our internet goes down every single year!  There has not been a single year since I became Technology Coordinator that it hasn’t happened!  Does teaching stop when the internet goes down?  It might, if everything a teacher uses is in the cloud.  Instead, we keep most things internal.  Our LMS (Moodle,)  file servers, web servers, you name it.  If the internet goes down, we lose the internet.  Most teachers can continue without it.  Maybe a lesson is altered for the day, maybe not.  But teaching still happens.  In districts where everything is in the cloud, it comes to a standstill.
Consider monthly or weekly archival moves to the cloud, not all.  With the low cost of 6-8TB drives these days I would far rather have all these files local, and save my bandwidth for what isn’t our content.]]>

What every K-12 Windows District Needs

<![CDATA[Note: This post assumes you are reading this as part of the technology staff of a K-12 Windows based school district.  I am not a MAC guy and would not presume to know what a MAC district needs.  I won't bore you with my credentials, but I have been in IT a while and in education since 2003.
I have recently been helping a new tech director and came to realize that there is little guidance out there on the minimum things a good district needs.   Some of the things I have been suggesting are not at his new district and I would have assumed any tech staff would have those things.  I realize that some readers may feel some of these are unnecessary and that other items should be added.  Feel free to add your ideas in the comments section below.  These are NOT in order, I think they are all required so order seems unimportant.
1.  A VM (Virtual Machine) system.  I have almost every server virtualized.  Until 2012 I did not believe that  a virtual server could run as well as a physical one.  I was at a Spiceworks meeting and an acquaintance convinced me to try the free version of VMWare.   I now use ESXi for all my virtualization.  There are alot of reasons to virtualize servers.
2.  A helpdesk system.  I just mentioned Spiceworks so I might as well list that next.  It is great, free, fully customizable, and runs easily on any Windows machine.  There are others, but Spiceworks has a huge community and runs great.  I LOVE spiceworks!
3.  A Windows Server Update Services (WSUS) machine running and configured in your network.  After it is setup (2 hours max) and added to your group policy all your machines will stop downloading updates from Microsoft (a big deal if you have 100s of machines) and just get them from you server instead.  Mine is virtualized and on a 500Gb drive due to the size of downloads.   A properly configured WSUS downloads and accepts your defined approvals automatically.  You should not have to touch this again after setup.  You configure your AD to point to it and how the clients will process the updates.
4.  A Key Management Server (KMS) to distribute your Microsoft keys to your servers and clients.   Installing actual keys on every client takes time and puts your key out on every machine a student logs on to.   Instead, you can put your keys onto a KMS server and never activate anything again.   And, if a laptop is stolen, it will deactivate and stop working eventually.  KMS was not a must with XP when we had corporate keys that were unlimited…that is no longer the case.  Just do it!
5.  Look into the Microsoft EES agreement.  I am not a software renter by nature, but the EES agreement covers your operating systems on clients, servers, and CALs for a fraction of the cost.  It covers unlimited clients with the price based on the number of employees in the district, not the number of computers.  If you have anything close to 1:4 then you are way ahead going this route.  We added Office (again way cheaper than buying even every 10 years) and employees can install it at home as well on the base price.  It covers all the servers I am mentioning.
6.   An Imaging solution.  We use FOG.  I know there are lots of options and I have tried a couple.  I have been using it for several years and am very happy with it.  Free, PXE client boots, and works with everything we have tried.  In the educational environment we reimage machines all the time, if you don’t you should.  Labs are done almost monthly.  It refreshes the KMS server count and makes sure that the testing systems are ready to go each cycle.  I have all my servers pulled with FOG as well as images for my labs and other machines.
7.  Fresh images for your machines.  It goes without saying that being able image without having good images is worthless.  I have a VM that holds the pertinent images.  I update them there and repull them before doing anything major.  Having a good imaging server and good images makes your life so much easier.  These two items alone are worth their weight in gold.  Every time we start a testing cycle I reimage (it is just a click on the Web GUI) all my testing machines.  I know they are all fresh and ready to go.  I also know that if I am spending more that 30 minutes on a software issue that instead I can just image a machine in 10 minutes (6 minutes to image and 2 reboots to rename and rejoin…all automatic.)
8.   2 AD servers.  I think it goes without saying that a sole AD is a terrible idea.  But I do know at least one tech director that only had one, and then it failed.   I have one physical and one virtual.  I would recommend one at each campus if you are a multi-campus district.  The AD should be organized in both the user and computer categories so you can have manage them with good group policies.  My AD server does DNS and DHCP as well.
9.  Group Policies you can easily maintain.  If your AD is well organized, then good maintenance of your network is much more efficient with good policies.  I install all printers, network drives, software installs, all through policies.  That being said, too many policies can slow your network and ruin the user experience.  Take care!
10. An LMS (Learning Management System.)  There are a number of good ones.  We use Moodle.  It is the most full featured, very configurable, and the most powerful.  It is not the easiest or the most intuitive.  It will require PD, especially for your less tech savvy teachers, but is without doubt the best free option.    It doesn’t matter which LMS you choose if you at least have one.  No school should be without an LMS is this day and age.
11.  Become a Google district.  Even if you use Office 365 (which we could but don’t) then there are enough things to make GAFE a great choice and make it worth your time.  It is of course free, with unlimited storage, and a requirement to use Chromebooks in your school.  It is worthwhile just to provide your teachers each a YouTube account to save classroom videos.   It is also a great place to keep all PD videos for your district.  I record almost every PD session and more to provide a repository for staff to peruse at their convenience.
There are alot of parts that make up a good district.  These are just some that seem to be missing in some districts I have helped.]]>