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. Discuss
  3. Beginner's Guide: Hugo + Gitlab CI + Surfer

Beginner's Guide: Hugo + Gitlab CI + Surfer

Scheduled Pinned Locked Moved Discuss
23 Posts 7 Posters 3.5k Views 7 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.
  • robiR robi

    does gitea or gogs not have any CI?

    ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #12

    @robi Drone is the best one right now. @fbartels did offer to package it if there was interest and I believe he wanted it to be sponsored. I would check that out.

    fbartelsF 1 Reply Last reply
    2
    • ? A Former User

      @robi Drone is the best one right now. @fbartels did offer to package it if there was interest and I believe he wanted it to be sponsored. I would check that out.

      fbartelsF Offline
      fbartelsF Offline
      fbartels
      App Dev
      wrote on last edited by
      #13

      Drone indeed integrates quite easily with Gitea. More information on my app offering can be found at https://forum.cloudron.io/topic/3350/offered-drone-ci-on-cloudron

      The one thing I particularly like is that I only need the "Dashboard" to be centrally hosted, all the job runners can run inside private networks. The runner is a small golang binary that can easily be launched with docker-compose. This allows me to simply start the runner on whatever device I am currently working (desktop, laptop, chromebook, mini homeserver).

      This is my drone configuration to build my hugo site and deploy it to my surfer instance:

      ---
      kind: pipeline
      name: blog
      concurrency:
        limit: 1
      steps:
        - name: submodules
          image: alpine/git
          commands:
            - git submodule update --init --recursive --remote
        - name: build
          image: plugins/hugo
          settings:
            hugo_version: 0.79.0
            extended: true
            validate: true
        - name: deploy
          image: 'fbartels/cloudron-surfer:5.12.2'
          environment:
            SURFTOKEN:
              from_secret: surftoken
          commands:
            - surfer --version
            - touch public/ # touch folder to avoid problems with timestamps
            - surfer put --token $SURFTOKEN --server blog.9wd.eu ./public/* /
          when:
            branch:
              - master
            event:
              exclude:
                - pull_request
        - name: Notification Rocket.Chat
          image: rmilewski/drone-rocket:latest
          when:
            status:
              - success
              - failure
          settings:
            webhook: https://chat.9wd.eu/hooks/$(ROCKETSECRET)
            username: rocket.cat
            channel: drone
            color:
              - value: green
                when:
                  DRONE_BUILD_STATUS: success
              - value: red
                when:
                  DRONE_BUILD_STATUS: failure
            message:
              - value: "Build: ${DRONE_BUILD_NUMBER} succeeded. Good job."
                when:
                  DRONE_BUILD_STATUS: success
              - value: "Build: ${DRONE_BUILD_NUMBER} failed. Fix me please."
            text: ${DRONE_COMMIT_MESSAGE}
            fields:
              - title: Author
                value: ${DRONE_COMMIT_AUTHOR}
              - title: Demo
                value: "This field will only be visible if the current branch: ${DRONE_COMMIT_BRANCH} is master or production"
                when:
                  DRONE_COMMIT_BRANCH:
                    - master
                    - production
      
      girishG 1 Reply Last reply
      3
      • fbartelsF fbartels

        Drone indeed integrates quite easily with Gitea. More information on my app offering can be found at https://forum.cloudron.io/topic/3350/offered-drone-ci-on-cloudron

        The one thing I particularly like is that I only need the "Dashboard" to be centrally hosted, all the job runners can run inside private networks. The runner is a small golang binary that can easily be launched with docker-compose. This allows me to simply start the runner on whatever device I am currently working (desktop, laptop, chromebook, mini homeserver).

        This is my drone configuration to build my hugo site and deploy it to my surfer instance:

        ---
        kind: pipeline
        name: blog
        concurrency:
          limit: 1
        steps:
          - name: submodules
            image: alpine/git
            commands:
              - git submodule update --init --recursive --remote
          - name: build
            image: plugins/hugo
            settings:
              hugo_version: 0.79.0
              extended: true
              validate: true
          - name: deploy
            image: 'fbartels/cloudron-surfer:5.12.2'
            environment:
              SURFTOKEN:
                from_secret: surftoken
            commands:
              - surfer --version
              - touch public/ # touch folder to avoid problems with timestamps
              - surfer put --token $SURFTOKEN --server blog.9wd.eu ./public/* /
            when:
              branch:
                - master
              event:
                exclude:
                  - pull_request
          - name: Notification Rocket.Chat
            image: rmilewski/drone-rocket:latest
            when:
              status:
                - success
                - failure
            settings:
              webhook: https://chat.9wd.eu/hooks/$(ROCKETSECRET)
              username: rocket.cat
              channel: drone
              color:
                - value: green
                  when:
                    DRONE_BUILD_STATUS: success
                - value: red
                  when:
                    DRONE_BUILD_STATUS: failure
              message:
                - value: "Build: ${DRONE_BUILD_NUMBER} succeeded. Good job."
                  when:
                    DRONE_BUILD_STATUS: success
                - value: "Build: ${DRONE_BUILD_NUMBER} failed. Fix me please."
              text: ${DRONE_COMMIT_MESSAGE}
              fields:
                - title: Author
                  value: ${DRONE_COMMIT_AUTHOR}
                - title: Demo
                  value: "This field will only be visible if the current branch: ${DRONE_COMMIT_BRANCH} is master or production"
                  when:
                    DRONE_COMMIT_BRANCH:
                      - master
                      - production
        
        girishG Offline
        girishG Offline
        girish
        Staff
        wrote on last edited by
        #14

        @fbartels IIRC, a complication with packaging drone was that it required ENV vars to be set before the app is even started. Like you have to select the integration type etc. Is that still the case? If so, how would a Cloudron installation UX for this look like? Just choose some default and let the user edit the config file?

        robiR fbartelsF 2 Replies Last reply
        0
        • girishG girish

          @fbartels IIRC, a complication with packaging drone was that it required ENV vars to be set before the app is even started. Like you have to select the integration type etc. Is that still the case? If so, how would a Cloudron installation UX for this look like? Just choose some default and let the user edit the config file?

          robiR Offline
          robiR Offline
          robi
          wrote on last edited by
          #15

          @girish bring up the app with first run instructions then on restart it reconfigures to prod.

          Conscious tech

          1 Reply Last reply
          0
          • girishG girish

            @fbartels IIRC, a complication with packaging drone was that it required ENV vars to be set before the app is even started. Like you have to select the integration type etc. Is that still the case? If so, how would a Cloudron installation UX for this look like? Just choose some default and let the user edit the config file?

            fbartelsF Offline
            fbartelsF Offline
            fbartels
            App Dev
            wrote on last edited by
            #16

            @girish kind of what @robi said. At first startup it creates a config file in the app that still needs to be manually edited in regards to where Gitea can be reached as well as its configured client id and secret.

            I did add you to the repo a while ago, so you can also have a direct look at https://github.com/fbartels/cloudron-drone-app/

            jdaviescoatesJ 1 Reply Last reply
            1
            • fbartelsF fbartels

              @girish kind of what @robi said. At first startup it creates a config file in the app that still needs to be manually edited in regards to where Gitea can be reached as well as its configured client id and secret.

              I did add you to the repo a while ago, so you can also have a direct look at https://github.com/fbartels/cloudron-drone-app/

              jdaviescoatesJ Offline
              jdaviescoatesJ Offline
              jdaviescoates
              wrote on last edited by
              #17

              @fbartels said in Beginner's Guide: Hugo + Gitlab CI + Surfer:

              I did add you to the repo a while ago, so you can also have a direct look at https://github.com/fbartels/cloudron-drone-app/

              I'm getting a 404 there.

              I use Cloudron with Gandi & Hetzner

              ? fbartelsF 2 Replies Last reply
              0
              • jdaviescoatesJ jdaviescoates

                @fbartels said in Beginner's Guide: Hugo + Gitlab CI + Surfer:

                I did add you to the repo a while ago, so you can also have a direct look at https://github.com/fbartels/cloudron-drone-app/

                I'm getting a 404 there.

                ? Offline
                ? Offline
                A Former User
                wrote on last edited by
                #18

                @jdaviescoates Its a private repo. He'd have to invite you to it via your Github account.

                1 Reply Last reply
                1
                • jdaviescoatesJ jdaviescoates

                  @fbartels said in Beginner's Guide: Hugo + Gitlab CI + Surfer:

                  I did add you to the repo a while ago, so you can also have a direct look at https://github.com/fbartels/cloudron-drone-app/

                  I'm getting a 404 there.

                  fbartelsF Offline
                  fbartelsF Offline
                  fbartels
                  App Dev
                  wrote on last edited by
                  #19

                  @jdaviescoates it's a private repo. You can get access by sponsoring me on GitHub. More details at https://forum.cloudron.io/topic/3350/offered-drone-ci-on-cloudron

                  ? 1 Reply Last reply
                  1
                  • fbartelsF fbartels

                    @jdaviescoates it's a private repo. You can get access by sponsoring me on GitHub. More details at https://forum.cloudron.io/topic/3350/offered-drone-ci-on-cloudron

                    ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #20

                    @fbartels Beat me to it :^)

                    fbartelsF jdaviescoatesJ 2 Replies Last reply
                    1
                    • ? A Former User

                      @fbartels Beat me to it :^)

                      fbartelsF Offline
                      fbartelsF Offline
                      fbartels
                      App Dev
                      wrote on last edited by
                      #21

                      @atrilahiji i would have said it's the other way around πŸ˜…

                      1 Reply Last reply
                      1
                      • ? A Former User

                        @fbartels Beat me to it :^)

                        jdaviescoatesJ Offline
                        jdaviescoatesJ Offline
                        jdaviescoates
                        wrote on last edited by
                        #22

                        @atrilahiji @fbartels ah, I see, thanks

                        I use Cloudron with Gandi & Hetzner

                        1 Reply Last reply
                        0
                        • ? A Former User

                          @vjvanjungg glad it could help! I’m hoping to get around to making more guides for things but I do this reactively mostly. Perhaps a guide for building basic Vue frontend apps or personal sites?

                          V Offline
                          V Offline
                          vjvanjungg
                          wrote on last edited by
                          #23

                          @atrilahiji that would be great 🌟if you could shed some light on it. it’d be cool! I totally forgot about the self-host side of things earlier. πŸ˜…Added the note.

                          1 Reply Last reply
                          1
                          • chetbakerC chetbaker referenced this topic on
                          • jadudmJ jadudm referenced this topic on
                          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