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


    Cloudron Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular

    Moodle is now available

    Announcements
    3
    15
    491
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • girish
      girish Staff last edited by

      Hi all,
      Moodle is now available in the app store. It's marked as unstable at the moment, we have to add LDAP support and add tests. Do not use in production yet. Thanks to @atrilahiji for much of the work!

      Code: https://git.cloudron.io/cloudron/moodle-app.git
      Docs: https://docs.cloudron.io/documentation/moodle/

      1 Reply Last reply Reply Quote 9
      • girish
        girish Staff last edited by

        @atrilahiji When testing moodle a bit more (plugins etc), what I found is there are many different types of plugins - https://docs.moodle.org/dev/Plugin_types . And each plugin type goes into it's own directory (!). Wow, thats quite insane from a packaging perspective.

        Do you know how commonly all these plugins are used for moodle? I can only think of moving the whole code wholesale into /app/data like we do in unmanaged WP. What do you think?

        1 Reply Last reply Reply Quote 0
        • girish
          girish Staff last edited by

          The plugin situation is what I feared - https://moodle.org/mod/forum/discuss.php?d=323960 and http://james-moodle.blogspot.com/2015/09/those-pesky-moodle-plugins-and-upgrading.html . You just have to copy files all over.

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @girish last edited by

            @girish oh boy I didn’t really think of this part... I’ll see if I can come up with anything else but moving everything to the data folder is the last resort.

            1 Reply Last reply Reply Quote 0
            • ?
              A Former User last edited by A Former User

              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.

              girish 1 Reply Last reply Reply Quote 0
              • robi
                robi last edited by

                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?

                Life of Advanced Technology

                1 Reply Last reply Reply Quote 0
                • girish
                  girish Staff @Guest last edited by

                  @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.

                  ? 1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @girish last edited by

                    @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.

                    1 Reply Last reply Reply Quote 1
                    • ?
                      A Former User last edited by A Former User

                      @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 😞

                      1 Reply Last reply Reply Quote 0
                      • girish
                        girish Staff last edited by

                        @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

                        ? 1 Reply Last reply Reply Quote 0
                        • girish
                          girish Staff last edited by

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

                          ? 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @girish last edited by

                            @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.

                            1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @girish last edited by A Former User

                              @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

                              1 Reply Last reply Reply Quote 0
                              • girish
                                girish Staff last edited by

                                @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.

                                1 Reply Last reply Reply Quote 3
                                • girish
                                  girish Staff last edited by

                                  Moodle is now marked as stable.

                                  1 Reply Last reply Reply Quote 5
                                  • First post
                                    Last post
                                  Powered by NodeBB