...
🔧 how to integrate jitsi meet with moodle for elearning video conferencing
Learn how to integrate jitsi meet with moodle for elearning video conferencing!

This article discusses how to integrate Jitsi Meet with Moodle for eLearning video conferencing.

Below is a complete, start-to-finish how-to guide for integrating a self-hosted Jitsi Meet server with Moodle.

This includes installation, configuration, recommended security options, and full Moodle plugin setup.
Launch 100% ssd ubuntu vps from $3. 19/mo!

🔧 How to Integrate Jitsi Meet with Moodle for eLearning Video Conferencing

Integrating Jitsi Meet with Moodle allows you to provide live video conferencing directly inside your LMS—fully under your control, with no reliance on external SaaS providers. This guide will walk you through installing Jitsi Meet on your own VPS and connecting it to Moodle using the official Jitsi plugin.

Prerequisites

Server Requirements

Software Requirements

Secure Jitsi with JWT Authentication

By default, anyone can create a room. For Moodle integration, JWT authentication is the most secure—Moodle will generate JWT tokens and users cannot join unless authenticated.

  1. Enable Prosody Modules

    sudo nano /etc/prosody/conf.avail/meet.example.com.cfg.lua
    

    Find the VirtualHost section and edit:

    Add internal auth domain
    VirtualHost "auth.meet.example.com"
        authentication = "internal_plain"
    
    Enable token authentication on main host

    Inside the main VirtualHost:

    modules_enabled = {
        "bosh";
        "pubsub";
        "ping";
        "speakerstats";
        "turncredentials";
        "conference_duration";
        "muc_lobby_rooms";
        "token_verification";
    }
    

    Add token settings:

    app_id = "moodle"
    app_secret = "change_me_secret_key_2025"
    allow_empty_token = false
    

    Save and exit.

  2. Register Prosody User

    sudo prosodyctl register jitsi_user auth.meet.example.com strongpassword123
    
  3. Configure Jicofo

    Edit configuration:

    sudo nano /etc/jitsi/jicofo/jicofo.conf
    

    Add:

    jicofo {
      authentication {
        enabled = true
        type = XMPP
        login-url = "auth.meet.example.com"
      }
    }
    
  4. Restart Services

    sudo systemctl restart prosody
    sudo systemctl restart jicofo
    sudo systemctl restart jitsi-videobridge2
    

Install the Moodle Jitsi Plugin

The official plugin:
🔗 https://moodle.org/plugins/mod_jitsi

You can install via GUI or command line.

  • Install via Moodle Admin UI

    1. Login to Moodle as admin
    2. Navigate: Site administration → Plugins → Install plugins
    3. Upload the ZIP file from the plugin page
    4. Click Install plugin

    Moodle will check dependencies, then install.

  • Configure Moodle to Use Your Jitsi Server

    Navigate to: Site administration → Plugins → Activity modules → Jitsi
    Configure the following:

    1. Jitsi server URL

    https://meet.example.com
    

    2. Use JWT Authentication

    Enable:

    • ✔ Use JWT authentication
    • ✔ Send user info
    • ✔ Send avatar information

    3. Enter JWT Credentials

    Using the same values as in Prosody:

    App ID: moodle
    App Secret: change_me_secret_key_2025
    

    4. Enable Secure Domain

    Set:

    Secure Domain: Yes
    

    5. Security Options

    Recommended:

    • ✔ Only teachers can create rooms
    • ✔ Students can join without password
    • ✔ Enable lobby mode
    • ✔ Enable end-to-end encryption (optional; limits features)
    • ✔ Allow screen sharing
  • Test the Integration

    1. Add a New Jitsi Activity

      1. Go to a course
      2. Click Add an activity or resource
      3. Select Jitsi
      4. Configure:
        • Meeting name
        • Start time
        • Duration
        • Participant permissions
    2. Validate Jitsi Opens Inside Moodle

      When clicking the activity:

      • Moodle generates JWT
      • Browser opens an embedded Jitsi meeting
      • Users join automatically using their Moodle name
    3. Check Authentication

      Try:

      • Access as teacher → should open correctly
      • Access as student → should join room if allowed
      • Try opening room URL directly → should NOT work without JWT

      This confirms Jitsi is secured.

 

Optional Add-Ons

  1. 📌 Enable Recording (Jibri)

    If you want cloud recording:

    1. Deploy a second server (Jibri)
    2. Install Google Chrome + FFmpeg
    3. Integrate with Prosody/Jitsi
    4. Add credentials

    Recording is resource-heavy; use a separate dedicated server.

  2. 📌 Add TURN Server for NAT Users

    Install coturn:

    sudo apt install coturn -y
    

    Configure at /etc/turnserver.conf:

    realm=meet.example.com
    use-auth-secret
    static-auth-secret=turnSecretKey
    cert=/etc/letsencrypt/live/meet.example.com/fullchain.pem
    pkey=/etc/letsencrypt/live/meet.example.com/privkey.pem
    

    Increase meeting reliability dramatically.

  3. 📌 Custom Branding

    Replace logos/backgrounds:

    /usr/share/jitsi-meet/images/
    /usr/share/jitsi-meet/css/
    

Troubleshooting

  1. 🔧 Video/Audio Not Connecting

    Enable or install TURN server.

  2. 🔧 JWT Authentication Fails

    Check:

    • allow_empty_token = false
    • Matching app_id and app_secret
    • Prosody logs:
    journalctl -u prosody
    
  3. 🔧 Moodle Says “Unable to Create Meeting”

    Make sure teacher role has mod/jitsi:addinstance capability enabled.

  4. 🔧 Jitsi Does Not Load in Moodle

    Enable:

    • iframe embedding in Moodle
    • Whitelist your Jitsi domain
    Site admin → Security → HTTP Security → Allowed Iframes
    

    Add:

    https://meet.example.com
    

🎉 Integration Complete!

You now have:

✅ Your own self-hosted Jitsi Meet server
✅ Secured with JWT
✅ Fully integrated into Moodle
✅ Automatic login for teachers/students
✅ Optional recording, lobby, and E2EE
Launch 100% ssd ubuntu vps from $3. 19/mo!

Conclusion

You now know how to integrate Jitsi Meet with Moodle for eLearning video conferencing.

Avatar of editorial staff

Editorial Staff

Rad Web Hosting is a leading provider of web hosting, Cloud VPS, and Dedicated Servers in Dallas, TX.
lg