Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Moodle is now available


  • App Dev

    One option would be picking common types of plugins and supporting those. Like these:

    /path/to/moodle/theme/ - themes
    /path/to/moodle/mod/ - activity modules and resources
    /path/to/moodle/blocks/ - sidebar blocks
    /path/to/moodle/question/ - question types/behaviours/formats
    /path/to/moodle/course/format/ - course formats
    /path/to/moodle/admin/report/ - admin reports
    /path/to/moodle/local - Generic plugins for local customisations
    /path/to/moodle/auth - Auth plugins
    /path/to/moodle/enrol - Enrollment methods
    /path/to/moodle/filter - Filters
    /path/to/moodle/webservice - Custom webservices
    /path/to/moodle/portfolio - Portfolio plugins (useful for Mahara)

    Could we symlink those? Part of me is concerned about the "why is x plusing supported on cloudron but not y" for more obscure use cases which might cause more support traffic, but I suppose that part is your call as you and @nebulon are the ones that have to handle that support traffic.



  • sounds like we need to make an upstream PR o improve the plugin directory structure.. then we can symlink just that directory and not individual plugins as they get installed.

    is there a config change option on where to save plugins?


  • Staff

    @atrilahiji It's too much to symlink. I think /app/data it is. Sucks, but can't blame them really. I saw a copyright header from 1999 in the code (!). That was about the time I was learning to program, hee hee.

    I tried several plugins and they all really rely on the code writing all over, so there is no point wasting time trying to fit it into Cloudron's packaging model. For a start, I will go with the list you gave me and we can just fixup the package as we go.


  • App Dev

    @girish Yeah. Nobody ever said Moodle was well written :^)

    But yeah their plugin system is pretty dated. I can push something to Moodle tracker (their JIRA instance) and see if they agree or decide to stick to their old ways.


  • App Dev

    @girish I pushed a MR here and my feelings would not be hurt if you decline it: https://git.cloudron.io/cloudron/moodle-app/-/merge_requests/3

    This is super sketchy and I'm really not fond of it as a solution. In my mind its either this or move the code to /app/date entirely. Not sustainable the way it is now 😞


  • Staff

    @atrilahiji It's more complicated unfortunately 🙂 All those subdirectories already have existing code from upstream. So, let's say mod and course/format have existing subdirectories coming in from moodle release. So, we have to keep a copy and reverse symlink etc. It gets very ugly...

    I have moved everything to /app/data now though (I pushed it). Will push a new package shortly. There was a php snippet in the docs that gave me all the interesting plugin directories - https://git.cloudron.io/cloudron/moodle-app/-/blob/master/plugintypes.php . And then I copy them over like https://git.cloudron.io/cloudron/moodle-app/-/blob/master/start.sh#L44


  • Staff

    @atrilahiji To add to this, I also found that many plugin do require ../../config.php which breaks with symlinks.


  • App Dev

    @girish Yeah... the upgrade would get messy.

    I was just looking over that. That script is magic.

    This is what I get for panic pushing a MR. I'll remove that.


  • App Dev

    @girish Oh boy. Automating this has turned out to be quite the struggle. Thanks for all your work! I thought it would be easier than it turned out to be 🙂

    Egg on face for me


  • Staff

    @atrilahiji Ha ha, it's fine. Moodle has been requested often and this is hopefully a one time thing. I think the package is good to go now, the tests are done and all the plugins I could get hold of work.


  • Staff

    Moodle is now marked as stable.


Log in to reply