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


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Wishlist
  3. Agate+ (dual protocol server to serve gemini/http from one source)

Agate+ (dual protocol server to serve gemini/http from one source)

Scheduled Pinned Locked Moved App Wishlist
73 Posts 5 Posters 1.0k Views 5 Watching
  • 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.
  • nebulonN Offline
    nebulonN Offline
    nebulon
    Staff
    wrote last edited by
    #33

    @timconsidine nice work, so basically one app which runs on the default port does the same thing for gemini, what nginx on port 80/443 does for http. The probably only more elegant way to get around this would be to run a gemini reverse proxy directly as a service on Cloudron. Given that gemini:// is quite the geeky fringe protocol for the moment, I think your solution is best suited. If you want, I will look into your package and see what further needs polishing for adopting into the main app libarary then.

    1 Reply Last reply
    1
    • nebulonN Offline
      nebulonN Offline
      nebulon
      Staff
      wrote last edited by
      #34

      Just some random things, which popped up while glancing over the current package:

      Instead of https://git.cloudron.io/timconsidine/cloudron-agate-plus/-/blob/master/start.sh?ref_type=heads#L52 you could just place the logfile into /run/.. and Cloudron will actually run logrotate for you out of the box: https://docs.cloudron.io/packaging/cheat-sheet/#logging

      For the http server, which is currently run as a background job of the start.sh via node /app/code/proxy.js & it would be better to use supervisord for this and also the gemini server. The reason being that if one of the processes crash, they would get autorestarted by supervisor. Without that the app would require a manual restart by an admin to restart that node process internally.

      Otherwise this is already looking really good!

      1 Reply Last reply
      3
      • timconsidineT Offline
        timconsidineT Offline
        timconsidine
        App Dev
        wrote last edited by
        #35

        Thank you for the pointers @nebulon
        I’m away delivering aid for Ukraine, so will get on to this when I’m back.

        1 Reply Last reply
        2
        • L Offline
          L Offline
          LoudLemur
          wrote last edited by
          #36

          I haven't got round to testing the latest agate+ yet, but one thing I can say for sure:

          It was far easier to convert our astro starlight documentation to gemini-protocol format and publish them using agate as a gemlog than it was to try and publish via cubby, which we still haven't managed!

          timconsidineT 2 Replies Last reply
          2
          • L LoudLemur

            I haven't got round to testing the latest agate+ yet, but one thing I can say for sure:

            It was far easier to convert our astro starlight documentation to gemini-protocol format and publish them using agate as a gemlog than it was to try and publish via cubby, which we still haven't managed!

            timconsidineT Offline
            timconsidineT Offline
            timconsidine
            App Dev
            wrote last edited by
            #37

            @LoudLemur 👍
            I will make and publish an image after the final tweaks.

            1 Reply Last reply
            1
            • timconsidineT Offline
              timconsidineT Offline
              timconsidine
              App Dev
              wrote last edited by timconsidine
              #38

              New version of the app uploaded to https://git.cloudron.io/timconsidine/cloudron-agate-plus

              CHANGELOG :

              • implemented @nebulon suggestion about logs rotation
              • implemented @nebulon suggestion about using supervisord
              • added /admin page for http mode to provide basic UI for managing content (no need of File Manager) to create and edit .gmi files and upload images

              App is now a quick way to host a basic site (no fancy html/css/js blah blah) on both Gemini and HTTPS from one set of source content.

              In-app content editing via /admin in http browser means quick and easy to update site content, even from your mobile phone 'on-the-go'.

              REMEMBER to change the default user/password in /app/data/.env using File Manager and RESTART the app.
              [it's in the app dashboard checklist].

              1 Reply Last reply
              1
              • timconsidineT Offline
                timconsidineT Offline
                timconsidine
                App Dev
                wrote last edited by timconsidine
                #39

                I have uploaded a built docker image for those who want to test without building :

                cloudron install —image tcmbp132021/cloudron-agate-plus:v6.36

                Not sure it helps much because you still need the Cloudron CLI with your login to your Cloudron instance, and the CloudronManifest.json locally from the cloudron git repo.

                robiR 1 Reply Last reply
                1
                • timconsidineT timconsidine

                  I have uploaded a built docker image for those who want to test without building :

                  cloudron install —image tcmbp132021/cloudron-agate-plus:v6.36

                  Not sure it helps much because you still need the Cloudron CLI with your login to your Cloudron instance, and the CloudronManifest.json locally from the cloudron git repo.

                  robiR Offline
                  robiR Offline
                  robi
                  wrote last edited by
                  #40

                  @timconsidine so far the easiest way we found was last year with @Kubernetes EasyInstall script, as you might recall.

                  Conscious tech

                  timconsidineT 1 Reply Last reply
                  1
                  • robiR robi

                    @timconsidine so far the easiest way we found was last year with @Kubernetes EasyInstall script, as you might recall.

                    timconsidineT Offline
                    timconsidineT Offline
                    timconsidine
                    App Dev
                    wrote last edited by timconsidine
                    #41

                    @robi yep, I need to remind myself about it.
                    I have a vague distant feeling that it didn’t deal with the core issue that less techie users would still struggle with it. But hey, grey hair, don’t even recall my name some days, let me review it. Maybe the truth is I didn’t understand it at the time 😊

                    1 Reply Last reply
                    1
                    • L LoudLemur

                      I haven't got round to testing the latest agate+ yet, but one thing I can say for sure:

                      It was far easier to convert our astro starlight documentation to gemini-protocol format and publish them using agate as a gemlog than it was to try and publish via cubby, which we still haven't managed!

                      timconsidineT Offline
                      timconsidineT Offline
                      timconsidine
                      App Dev
                      wrote last edited by timconsidine
                      #42

                      @LoudLemur hey, did you see my post about CCAI ?
                      You can now use https://ccai.appx.uk to deploy custom apps to your own cloudron.
                      Anonymous - no login details saved.

                      Details : https://forum.cloudron.io/post/110907

                      L 1 Reply Last reply
                      0
                      • timconsidineT timconsidine

                        @LoudLemur hey, did you see my post about CCAI ?
                        You can now use https://ccai.appx.uk to deploy custom apps to your own cloudron.
                        Anonymous - no login details saved.

                        Details : https://forum.cloudron.io/post/110907

                        L Offline
                        L Offline
                        LoudLemur
                        wrote last edited by LoudLemur
                        #43

                        @timconsidine Hey, thanks! No, I missed that. I shall take a look.

                        WOW!

                        So all we need is to link a publicly accessible git and Docker image, and it does the magic for us?

                        Amazing! Surely, there must be more to it than that...?

                        timconsidineT 1 Reply Last reply
                        0
                        • L LoudLemur

                          @timconsidine Hey, thanks! No, I missed that. I shall take a look.

                          WOW!

                          So all we need is to link a publicly accessible git and Docker image, and it does the magic for us?

                          Amazing! Surely, there must be more to it than that...?

                          timconsidineT Offline
                          timconsidineT Offline
                          timconsidine
                          App Dev
                          wrote last edited by timconsidine
                          #44

                          @LoudLemur basically yes, simple as that, "magic" is behind the scenes

                          I'm cautious about the word "link", could be understood differently.

                          CCAI does this :

                          1. asks for :
                          • your cloudron domain e.g. my.cloudron-instance.tld (never stored)
                          • your user name (never stored)
                          • your password (never stored)
                          • your 2FA code (if you've enabled this, otherwise leave blank)
                            If it logs in successfully,
                          1. asks for :
                          • git repo of the target custom app, e.g. https://git.cloudron.io/timconsidine/cloudron-agate-plus
                          • prebuilt docker image, e.g. tcmbp132021/cloudron-agate-plus:v6.36
                          • location where you want the custom app to deploy, e.g. your-gemini.your-domain.tld
                          • any port binding needed : optional in most cases, also optional for your first installation of Agate+, but subsequent instances need "GEMINI_PORT=1967" or higher number

                          So it's a bit more than just linking, but it's much easier than installing and using CLI, installing and using docker to build, installing and using a docker registry.

                          1 Reply Last reply
                          1
                          • timconsidineT Offline
                            timconsidineT Offline
                            timconsidine
                            App Dev
                            wrote last edited by timconsidine
                            #45

                            CCAI now has an "app picker" to populate necessary install data fields.

                            @LoudLemur Agate+ is one of the custom apps in the list

                            So is @DidierMalenfant Agate package, which is great for dedicated gemini site hosting.

                            L 1 Reply Last reply
                            3
                            • timconsidineT timconsidine

                              CCAI now has an "app picker" to populate necessary install data fields.

                              @LoudLemur Agate+ is one of the custom apps in the list

                              So is @DidierMalenfant Agate package, which is great for dedicated gemini site hosting.

                              L Offline
                              L Offline
                              LoudLemur
                              wrote last edited by LoudLemur
                              #46

                              @timconsidine Exciting!
                              I like the idea of that App Picker!

                              I see it and tried, however it failed as another installation to the same cloudron was already in progress.

                              (I have been trying to package and deploy another custom application. I thought that process had ground to a halt, but the notification indicates that tcmbp thinks it is still trying...)

                              timconsidineT 1 Reply Last reply
                              0
                              • L LoudLemur

                                @timconsidine Exciting!
                                I like the idea of that App Picker!

                                I see it and tried, however it failed as another installation to the same cloudron was already in progress.

                                (I have been trying to package and deploy another custom application. I thought that process had ground to a halt, but the notification indicates that tcmbp thinks it is still trying...)

                                timconsidineT Offline
                                timconsidineT Offline
                                timconsidine
                                App Dev
                                wrote last edited by
                                #47

                                @LoudLemur errr
                                No idea, sorry
                                Have you tried doing one at a time ?

                                robiR 1 Reply Last reply
                                0
                                • timconsidineT timconsidine

                                  @LoudLemur errr
                                  No idea, sorry
                                  Have you tried doing one at a time ?

                                  robiR Offline
                                  robiR Offline
                                  robi
                                  wrote last edited by robi
                                  #48

                                  @timconsidine I got the same message.

                                  I tried to login, failed the first time, fixed typo from entered data, logged in.

                                  Selected your agate+ package, then got the message it's already in progress.

                                  Thoughts:
                                  See if the error state is interfering between tries.
                                  Make sure to clear it on every submission, not just starting over.
                                  It's annoying that each field starts with capital letter on mobile.
                                  Would help to have ports prefilled like in your app.

                                  Update: tried again from scratch, no error modal, still got the failure.
                                  Then switched to the other agate app and got this: Unsupported git hosting service.

                                  Doesn't like self hosted domains other than github and cloudron. Lol

                                  I'd upload a screenshot but can't seem to paste or upload from this mobile browser.

                                  Conscious tech

                                  timconsidineT 1 Reply Last reply
                                  1
                                  • robiR Offline
                                    robiR Offline
                                    robi
                                    wrote last edited by
                                    #49

                                    Seems you have to start with the image first.

                                    4BB849BA-C82A-49E4-90BD-A279AB6B14EA.jpeg

                                    Conscious tech

                                    timconsidineT 1 Reply Last reply
                                    1
                                    • robiR robi

                                      Seems you have to start with the image first.

                                      4BB849BA-C82A-49E4-90BD-A279AB6B14EA.jpeg

                                      timconsidineT Offline
                                      timconsidineT Offline
                                      timconsidine
                                      App Dev
                                      wrote last edited by
                                      #50
                                      This post is deleted!
                                      1 Reply Last reply
                                      0
                                      • robiR robi

                                        @timconsidine I got the same message.

                                        I tried to login, failed the first time, fixed typo from entered data, logged in.

                                        Selected your agate+ package, then got the message it's already in progress.

                                        Thoughts:
                                        See if the error state is interfering between tries.
                                        Make sure to clear it on every submission, not just starting over.
                                        It's annoying that each field starts with capital letter on mobile.
                                        Would help to have ports prefilled like in your app.

                                        Update: tried again from scratch, no error modal, still got the failure.
                                        Then switched to the other agate app and got this: Unsupported git hosting service.

                                        Doesn't like self hosted domains other than github and cloudron. Lol

                                        I'd upload a screenshot but can't seem to paste or upload from this mobile browser.

                                        timconsidineT Offline
                                        timconsidineT Offline
                                        timconsidine
                                        App Dev
                                        wrote last edited by timconsidine
                                        #51

                                        @robi thank you for the analysis

                                        Yes, unsupported git hosting service is the critical error. I will remove the standard Agate package from the list until I can confirm Dider's git details.

                                        @DidierMalenfant what is the git service behind "https://code.malenfant.net/didier/agate-app " ?
                                        I can try to add support for it.
                                        Also does it need port binding to be set ?

                                        I will check my Agate+ settings again.

                                        robiR 1 Reply Last reply
                                        1
                                        • L Offline
                                          L Offline
                                          LoudLemur
                                          wrote last edited by
                                          #52

                                          Agate+ installed using https://ccai.appx.uk/ and the nice, new "Quick Setup" option.

                                          • The port field 19XX was a bit confusing. If you leave it like that, the installation doesn't work. For the quick setup, how about suggesting 1965 and a note/tool-tip for changing this if needed

                                          • I don't think that ccai checks to see if another installation is happening at the same time before attempting to start. In something like a college setting, lots of people might be trying to use the same service at the same time in a class.

                                          • The reverse proxy for additional servers is a nice tool. I tried using the terminal as suggested to setup an additional server using the initial one as a reverse proxy, but it failed.

                                          /app/code# register-new-instance.sh
                                          bash: register-new-instance.sh: command not found

                                          robiR 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Bookmarks
                                          • Search