{"id":13404869,"url":"https://github.com/chamilo/chamilo-lms","last_synced_at":"2026-02-28T08:37:52.540Z","repository":{"id":7736592,"uuid":"9103211","full_name":"chamilo/chamilo-lms","owner":"chamilo","description":"Chamilo is a learning management system focused on ease of use and accessibility","archived":false,"fork":false,"pushed_at":"2025-06-21T13:59:47.000Z","size":1059943,"stargazers_count":864,"open_issues_count":601,"forks_count":502,"subscribers_count":62,"default_branch":"master","last_synced_at":"2025-06-22T12:09:51.503Z","etag":null,"topics":["chamilo","elearning","lms","php","skills","twig"],"latest_commit_sha":null,"homepage":"https://chamilo.org","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chamilo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-03-29T17:31:19.000Z","updated_at":"2025-06-21T13:59:51.000Z","dependencies_parsed_at":"2023-09-21T18:34:29.973Z","dependency_job_id":"e8d0e39f-18cb-40ff-96ff-0f5edc2919d8","html_url":"https://github.com/chamilo/chamilo-lms","commit_stats":null,"previous_names":[],"tags_count":108,"template":false,"template_full_name":null,"purl":"pkg:github/chamilo/chamilo-lms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamilo%2Fchamilo-lms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamilo%2Fchamilo-lms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamilo%2Fchamilo-lms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamilo%2Fchamilo-lms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chamilo","download_url":"https://codeload.github.com/chamilo/chamilo-lms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamilo%2Fchamilo-lms/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261289433,"owners_count":23136071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chamilo","elearning","lms","php","skills","twig"],"created_at":"2024-07-30T19:01:52.516Z","updated_at":"2026-02-28T08:37:52.535Z","avatar_url":"https://github.com/chamilo.png","language":"PHP","readme":"# Chamilo 2\n\n[![Behat tests 🐞](https://github.com/chamilo/chamilo-lms/actions/workflows/behat.yml/badge.svg)](https://github.com/chamilo/chamilo-lms/actions/workflows/behat.yml)\n[![PHPUnit 🐛](https://github.com/chamilo/chamilo-lms/actions/workflows/phpunit.yml/badge.svg)](https://github.com/chamilo/chamilo-lms/actions/workflows/phpunit.yml)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/chamilo/chamilo-lms/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/chamilo/chamilo-lms/?branch=master)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/166/badge)](https://bestpractices.coreinfrastructure.org/projects/166)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/88e934aab2f34bb7a0397a6f62b078b2)](https://www.codacy.com/app/chamilo/chamilo-lms?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=chamilo/chamilo-lms\u0026utm_campaign=badger)\n[![type-coverage](https://shepherd.dev/github/chamilo/chamilo-lms/coverage.svg)](https://shepherd.dev/github/chamilo/chamilo-lms/coverage.svg)\n[![psalm level](https://shepherd.dev/github/chamilo/chamilo-lms/level.svg)](https://shepherd.dev/github/chamilo/chamilo-lms/level.svg)\n[![DPG Badge](https://img.shields.io/badge/Verified-DPG%20(Since%20%202024)-3333AB?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMzEiIGhlaWdodD0iMzMiIHZpZXdCb3g9IjAgMCAzMSAzMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0LjIwMDggMjEuMzY3OEwxMC4xNzM2IDE4LjAxMjRMMTEuNTIxOSAxNi40MDAzTDEzLjk5MjggMTguNDU5TDE5LjYyNjkgMTIuMjExMUwyMS4xOTA5IDEzLjYxNkwxNC4yMDA4IDIxLjM2NzhaTTI0LjYyNDEgOS4zNTEyN0wyNC44MDcxIDMuMDcyOTdMMTguODgxIDUuMTg2NjJMMTUuMzMxNCAtMi4zMzA4MmUtMDVMMTEuNzgyMSA1LjE4NjYyTDUuODU2MDEgMy4wNzI5N0w2LjAzOTA2IDkuMzUxMjdMMCAxMS4xMTc3TDMuODQ1MjEgMTYuMDg5NUwwIDIxLjA2MTJMNi4wMzkwNiAyMi44Mjc3TDUuODU2MDEgMjkuMTA2TDExLjc4MjEgMjYuOTkyM0wxNS4zMzE0IDMyLjE3OUwxOC44ODEgMjYuOTkyM0wyNC44MDcxIDI5LjEwNkwyNC42MjQxIDIyLjgyNzdMMzAuNjYzMSAyMS4wNjEyTDI2LjgxNzYgMTYuMDg5NUwzMC42NjMxIDExLjExNzdMMjQuNjI0MSA5LjM1MTI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==)](https://digitalpublicgoods.net/r/chamilo)\n\nChamilo is an e-learning platform (also called \"LMS\" for Learning Management\nSystem) published under the GNU/GPLv3+ license. It has been used by more than\n40M people worldwide since its start in 2010.\n\nChamilo offers a wide range of features, including:\n- Announcements\n- API for integration with other systems (HR, SIS, ERP, e-commerce, ...)\n- Assignments (create, hand in, grade, co-grade with AI, integration with plagiarism check, ...)\n- Attendance tracking (take attendance, Qualiopi reporting, multilevel attendance, signing, ...)\n- Calendar events (with reminders and subscriptions)\n- Content Management System capabilities (CMS: manage pages, menus)\n- Course administration (create, edit, delete, publish, export, import from Moodle, ...)\n- Course catalogue (e-commerce module, course search, catalogue filtering by user groups)\n- Documents (including integration with OnlyOffice for documents viewing and collaboration)\n- E-learning multimedia modules support (video, 360° video, audio, images, ...)\n- File sharing (upload, download, share, ...)\n- Forum (create, post, reply, peer review, ...)\n- Learning paths (create, manage, ...)\n- Live chat (at course level or global, including AI chatbot)\n- GDPR compliance (GDPR-ready, export of personal data, ...)\n- Gradebook (including generation of badges and certificates with QR codes)\n- Learning analytics (progress, course completion, participation, average time spent, average score, auditing, ...)\n- Groups/Classes (at course or global level)\n- Multilingual support (60+ languages fully translated, including RTL support)\n- Plugins for advanced features\n- Quizzes (20+ question types, random selection with categories, adaptative tests, time limits, co-creation with AI, proctoring tools integration, ...)\n- Roles and permissions management (beta)\n- Rooms and branches for in-person courses\n- SCORM 1.2, QTI, LTI, xAPI CMI 5, Aiken, and other standards compliant formats\n- Security features (password policy and rotation, 2FA/MFA authentication, HSTS, regular updates, IDS, ...)\n- Sessions management (re-use courses multiple times, add structure to long-term courses management chaos)\n- Skills management (create, edit, delete, assign to users, scale/levels of acquisition, ...)\n- Student profiles (edit personal data, change password, subscribe to push notifications, ...)\n- Style customization (easy color changes, custom CSS, custom logo, ...)\n- Surveys (create, take, analyse)\n- Upgrades from previous versions and import of existing courses from other LMS\n- Videoconference through integrations / Realtime collaboration\n- ...\n\nNote: AI features (with support for OpenAI, Grok, Gemini, Claude and DeepSeek\nmodels) and other integrations do require active subscriptions to, or\navailability of, external services/applications.\n\n## Try it out\n\nYou can try out Chamilo at https://campus.chamilo.net/ (use the \"Teach courses\" option to give yourself creation rights).\n\n## Quick install\n\n**IMPORTANT** Chamilo 2.0 is in its validation phase right now.\nThe installation procedure below is for reference only.\nFor a stable Chamilo, please install Chamilo 1.11.x.\nSee the 1.11.x branch's README.md for details.\n\n### Minimum hardware requirements\n\n#### Server\n\nYou will need:\n- 2 vCPUs\n- 4GB RAM\n- 4GB free disk space\n\nChamilo 2.0 has been tested on a 2 vCPUs, 2GB RAM virtual machine under Ubuntu 24.04 and has been shown to work, but to\nbuild the development environment, you will need at least 4GB RAM.\nAt this stage, we haven't made any load testing to evaluate the number of users that could use the system simultaneously.\nRemember this is an alpha version. As such, it will run in \"dev\" mode (see the `.env` file), considerably more slowly the \"prod\" mode.\n\n#### Client\n\nAny recent computer with a recent (no older than 5y) browser should do.\n\n### Minimal software stack requirements\n\nYou should have:\n\n- A web server with a virtualhost in a domain or subdomain (not in a subfolder inside a domain with another application).\n- A working PHP configuration with PHP 8.2 or 8.3\n- MariaDB 10 or higer (alternatively, MySQL 5.7 or higher can also be used)\n\n### Software stack installation (Ubuntu)\n\nYou can install Chamilo using 3rd party installers like Softaculous,\nInstallatron, DigitalOcean marketplace, etc. and skip the following steps.\n\nThese are instructions for a fictitious `my.chamilo.net` domain, with a\n`chamilo2` database and DB user, on your own self-managed server.\nPlease adapt the commands below accordingly.\n\nThese instructions are meant for a standalone public server, with no\nadditional component needed. These do not include setting up SSL certificates.\nWe leave the latter to you.\n\nIf using VMs, spawn an Ubuntu Server (24.04 LTS or later) VM.\nLogin through SSH with admin permissions through `sudo`. Otherwise, just use\nthe `sudo` command as needed on your own server.\nInstall the software stack and Chamilo using the commands below.\n\n~~~~\nsudo apt update \u0026\u0026 sudo apt -y upgrade\nsudo apt install -y apache2 libapache2-mod-php mariadb-client mariadb-server php-{apcu,bcmath,cli,curl,dev,gd,intl,ldap,mbstring,mysql,redis,soap,xml,zip} unzip curl\nsudo mysql -e \"GRANT ALL PRIVILEGES ON chamilo2.* TO chamilo2@localhost IDENTIFIED BY 'chamilo2';\"\ncd /var/www\nsudo wget https://github.com/chamilo/chamilo-lms/releases/download/v2.0.0-RC.1/chamilo-2.0.0-RC.1.tar.gz\nsudo tar zxf chamilo-2.0.0-RC.1.tar.gz\nsudo mv chamilo-2.0.0-RC.1 chamilo\ncd chamilo\nsudo cp public/main/install/apache.dist.conf /etc/apache2/sites-available/my.chamilo.net.conf\n# Edit /etc/apache2/sites-available/my.chamilo.net.conf to match your domain\nsudo a2ensite my.chamilo.net\nsudo a2enmod rewrite ssl headers expires\nsudo chown -R www-data: .env config/ var/\nsudo systemctl restart apache2\n# Open http://my.chamilo.net in your browser to go through the installation wizard\n# Complete the installation information using DB credentials chamilo2/chamilo2/chamilo2 and the default host and port\n# Done\n~~~~\n\nNote: PHP's LDAP extension is only required if you need to connect to LDAP or a\ncompatible system, or if you want to install Chamilo from sources (see\nCONTRIBUTING.md), but in principle it should not add any overhead to the\nsystem if you don't use it.\n\n#### Installing from sources\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n### Web installer\n\nOnce the above is ready, use your browser to load the URL you have defined for your host, e.g. https://my.chamilo.net\n(this should redirect you to `main/install/index.php`) and follow the UI instructions (database, admin user settings, etc).\n\nAfter the web install process, change the permissions back to a reasonably safe state:\n~~~~\nchown -R root: .env config/\n~~~~\n\nYour Chamilo is ready to use!\n\n## Configuration\n\nMost configuration changes are made through the administration page inside Chamilo's web interface, but the database connection\nand other settings critical to the Symfony layer are located in the `.env` file at the root of Chamilo.\n\nOther core, Symfony-related, settings for advanced administration are located in the `config/packages/` folder (`*.yaml` files),\nbut remember that these files are updated with each new version of Chamilo. Instead of modifying those directly, it is\nhighly recommended to copy them into the `config/packages/prod/` folder and modifying them there (for your production \nenvironment). This will improve maintainability through different Chamilo upgrades in the future.\n\n## Documentation\n\nFor more information on Chamilo 2, visit https://2.chamilo.org/documentation/index.html\nFor Chamilo usage documentation, most of the documentation at\nhttps://docs.chamilo.org/ is still valid for Chamilo 2, despite having been\nwritten for Chamilo 1.\n\n## JWT Authentication\n\nThis version of Chamilo allows you to use a JWT (token) to use the Chamilo API\nmore securely. In order to use it, you will have to generate a JWT token as\nfollows.\n\n* Run\n  ```shell\n  php bin/console lexik:jwt:generate-keypair\n  ```\n* In Apache setup Bearer with:\n  ```apacheconf\n  SetEnvIf Authorization \"(.*)\" HTTP_AUTHORIZATION=$1\n  ```\n* Get the token:\n  ```shell\n  curl -k -X POST https://example.com/api/authentication_token \\\n      -H \"Content-Type: application/json\" \\\n      -d '{\"username\":\"admin\",\"password\":\"admin\"}'\n  ```\n  The response should return something like:\n  ```json\n  {\"token\":\"MyTokenABC\"}\n  ```\n* Go to https://example.com/api\n* Click in \"Authorize\" button and write the value\n`Bearer MyTokenABC`\n\nThen you can make queries using the JWT token.\n\n## Contributing\n\nIf you want to submit new features or patches to Chamilo 2, please follow the\nGithub contribution guide https://guides.github.com/activities/contributing-to-open-source/\nand our [CONTRIBUTING.md](CONTRIBUTING.md) file.\n\nIn short, we ask you to send us Pull Requests based on a branch that you create\nwith this purpose into your own repository, forked from the original Chamilo repository (`master` branch).\n","funding_links":[],"categories":["PHP","Learning Management Systems (LMS)"],"sub_categories":["Follow me"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamilo%2Fchamilo-lms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchamilo%2Fchamilo-lms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamilo%2Fchamilo-lms/lists"}