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

    Solved Greenlight - A simple front-end interface for your BigBlueButton server

    App Wishlist
    3
    10
    457
    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.
    • BrutalBirdie
      BrutalBirdie Staff last edited by BrutalBirdie

      In addition to App Wish BigBlueButton.

      I already created the greenlight-app which needs review.

      Maybe we can get some person from BBB/Greenlight to help with the review and tuning?

      Like my work? Consider donating a beer 🍻 Cheers!

      BrutalBirdie 1 Reply Last reply Reply Quote 3
      • BrutalBirdie
        BrutalBirdie Staff @BrutalBirdie last edited by

        @girish and/or @nebulon

        Can we get this app into the app store as "Unstable" so I can gather feedback for improvements?

        Like my work? Consider donating a beer 🍻 Cheers!

        1 Reply Last reply Reply Quote 1
        • nebulon
          nebulon Staff last edited by

          I've given the app package a spin and it generally looks good. At least seems to work well with the default demo BBB backend instance!

          One thing I noticed is, that there is a tmp folder in /app/data/ being created. Is that required? Note that /tmp would be purged of old data on a schedule, while /run is not, but both are useful for temporary files depending on use-case. Not sure what /app/data/tmp is for in that picture.

          Still have to see how I can test this with some non demo BBB instance.

          I will fork your package project into the cloudron namespace on gitlab and add you as a contributor there if that is ok?

          Then we can finish up the rest (tests, metadata, ...) if even required 🙂

          BrutalBirdie 1 Reply Last reply Reply Quote 1
          • BrutalBirdie
            BrutalBirdie Staff @nebulon last edited by

            @nebulon I will look into /app/data/tmp again. There was a reason why I did that instead of using the normal /tmp/ 🤔
            Also yes I will maintain this app as the contributor.

            Still have to see how I can test this with some non demo BBB instance.

            Using the file manager you need to set BIGBLUEBUTTON_ENDPOINT and BIGBLUEBUTTON_SECRET and restart the app. But I think your intention was more like "I don't want to setup a BBB instance to test it" or "I need a BBB instance to test it."

            Like my work? Consider donating a beer 🍻 Cheers!

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

              We just had a call using the default demo BBB server and it was good enough. So I think we can release this frontend app in the next days. Maybe you can try to figure the /tmp folder issue or at least that we know why it is as you have packaged it and I will do the meta info and then publish it.

              The required env variables to be set are already well documented by you 🙂

              BrutalBirdie 1 Reply Last reply Reply Quote 1
              • BrutalBirdie
                BrutalBirdie Staff @nebulon last edited by

                This happens if I do not symlink /app/code/tmp at all

                Oct 06 11:20:02 Puma starting in single mode...
                Oct 06 11:20:02 * Version 3.12.6 (ruby 2.5.1-p57), codename: Llamas in Pajamas
                Oct 06 11:20:02 * Min threads: 5, max threads: 5
                Oct 06 11:20:02 * Environment: production
                Oct 06 11:20:03 ! Unable to load application: Errno::EROFS: Read-only file system @ dir_s_mkdir - /app/code/tmp
                Oct 06 11:20:03 Traceback (most recent call last):
                Oct 06 11:20:03 41: from /app/code/vendor/bundle/ruby/2.5.0/bin/puma:23:in `<main>'
                Oct 06 11:20:03 40: from /app/code/vendor/bundle/ruby/2.5.0/bin/puma:23:in `load'
                Oct 06 11:20:03 39: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/bin/puma:10:in `<top (required)>'
                Oct 06 11:20:03 38: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/cli.rb:80:in `run'
                Oct 06 11:20:03 37: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/launcher.rb:186:in `run'
                Oct 06 11:20:03 36: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/single.rb:98:in `run'
                Oct 06 11:20:03 35: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/runner.rb:147:in `load_and_bind'
                Oct 06 11:20:03 34: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/configuration.rb:245:in `app'
                Oct 06 11:20:03 33: from /app/code/vendor/bundle/ruby/2.5.0/gems/puma-3.12.6/lib/puma/configuration.rb:320:in `load_rackup'
                Oct 06 11:20:03 32: from /app/code/vendor/bundle/ruby/2.5.0/gems/rack-2.2.3/lib/rack/builder.rb:66:in `parse_file'
                Oct 06 11:20:03 31: from /app/code/vendor/bundle/ruby/2.5.0/gems/rack-2.2.3/lib/rack/builder.rb:105:in `load_file'
                Oct 06 11:20:03 30: from /app/code/vendor/bundle/ruby/2.5.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `new_from_string'
                Oct 06 11:20:03 29: from /app/code/vendor/bundle/ruby/2.5.0/gems/rack-2.2.3/lib/rack/builder.rb:116:in `eval'
                Oct 06 11:20:03 28: from config.ru:5:in `block in <main>'
                Oct 06 11:20:03 27: from config.ru:5:in `require_relative'
                Oct 06 11:20:03 26: from /app/code/config/environment.rb:20:in `<top (required)>'
                Oct 06 11:20:03 25: from /app/code/config/environment.rb:20:in `require_relative'
                Oct 06 11:20:03 24: from /app/code/config/application.rb:19:in `<top (required)>'
                Oct 06 11:20:03 23: from /app/code/config/application.rb:19:in `require_relative'
                Oct 06 11:20:03 22: from /app/code/config/boot.rb:6:in `<top (required)>'
                Oct 06 11:20:03 21: from /app/code/config/boot.rb:6:in `require'
                Oct 06 11:20:03 20: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/setup.rb:31:in `<top (required)>'
                Oct 06 11:20:03 19: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap.rb:25:in `setup'
                Oct 06 11:20:03 18: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache.rb:45:in `setup'
                Oct 06 11:20:03 17: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache.rb:45:in `new'
                Oct 06 11:20:03 16: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/cache.rb:16:in `initialize'
                Oct 06 11:20:03 15: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/cache.rb:116:in `reinitialize'
                Oct 06 11:20:03 14: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/cache.rb:116:in `synchronize'
                Oct 06 11:20:03 13: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/cache.rb:122:in `block in reinitialize'
                Oct 06 11:20:03 12: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/cache.rb:139:in `push_paths_locked'
                Oct 06 11:20:03 11: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/store.rb:46:in `transaction'
                Oct 06 11:20:03 10: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/store.rb:46:in `synchronize'
                Oct 06 11:20:03 9: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/store.rb:50:in `block in transaction'
                Oct 06 11:20:03 8: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/store.rb:59:in `commit_transaction'
                Oct 06 11:20:03 7: from /app/code/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/store.rb:79:in `dump_data'
                Oct 06 11:20:03 6: from /usr/lib/ruby/2.5.0/fileutils.rb:193:in `mkdir_p'
                Oct 06 11:20:03 5: from /usr/lib/ruby/2.5.0/fileutils.rb:193:in `each'
                Oct 06 11:20:03 4: from /usr/lib/ruby/2.5.0/fileutils.rb:208:in `block in mkdir_p'
                Oct 06 11:20:03 3: from /usr/lib/ruby/2.5.0/fileutils.rb:208:in `reverse_each'
                Oct 06 11:20:03 2: from /usr/lib/ruby/2.5.0/fileutils.rb:210:in `block (2 levels) in mkdir_p'
                Oct 06 11:20:03 1: from /usr/lib/ruby/2.5.0/fileutils.rb:232:in `fu_mkdir'
                Oct 06 11:20:03 /usr/lib/ruby/2.5.0/fileutils.rb:232:in `mkdir': Read-only file system @ dir_s_mkdir - /app/code/tmp (Errno::EROFS)
                

                With a symlink to /tmp/ instead of /app/data/tmp/ seems to be no Problem.
                Tests running clean.
                Pushing changes.

                Like my work? Consider donating a beer 🍻 Cheers!

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

                  @BrutalBirdie maybe symlink it to /tmp/bbb/tmp instead? Anything under /app/data will be backed up.

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

                    @girish already changed it to /tmp/ only and it's working fine.
                    Would you recommend an extra folder in /tmp/?

                    Like my work? Consider donating a beer 🍻 Cheers!

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

                      @BrutalBirdie said in Greenlight - A simple front-end interface for your BigBlueButton server:

                      Would you recommend an extra folder in /tmp/?

                      Just a convention we follow since it helps in chow'ing more easily. For example, we could create /tmp/greenlight/tmp, /tmp/greenlight/cache etc. To keep all the tmp stuff of an app "isolated". Then, we can do "chown -R xx /tmp/greenlight" somwhere in the script and not chown the whole tmp. Also, helps when we have multiple processes running with different permissions etc. But really, just a convention across packages.

                      BTW, one more thing is that files under /tmp are cleaned up automatically by Cloudron periodically. Things under /run aren't. Some apps don't work properly if files go missing randomly under them. Just a heads up in case we get reports like "greenlight suddenly stopped working after 3 weeks". The fix for those is to use something like /run/greenlight/tmp instead.

                      1 Reply Last reply Reply Quote 1
                      • nebulon
                        nebulon Staff last edited by

                        Will close this here and create a new section in the forum, because I've just pushed out the app package as unstable! Thanks a lot @BrutalBirdie for all the work 🙂

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