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

    Building custom packages

    App Packaging & Development
    4
    4
    860
    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 girish

      This is a concise guide to building and installing custom packages. For a more detailed explanation, see https://cloudron.io/documentation/packaging/tutorial/.

      Prerequisites

      1. Make sure you have docker installed. Also, sign up for a docker hub account (https://hub.docker.com/) and use docker login to login to the docker hub account.

      2. Install the Cloudron CLI tool: npm install -g cloudron. This requires you to install nodejs for npm to work.

      Log into cloudron

      $ cloudron login my.example.com
      Username: girish
      Password: *********
      2FA Token (if enabled): 
      Login successful.
      
      $ cloudron list
      <will list your apps>
      

      Build the app

      All our app packages are open source. You can get them here - https://git.cloudron.io/cloudron (repos with the -app suffix).

      For this tutorial, we will build the ghost app.

      $ git clone https://git.cloudron.io/cloudron/ghost-app
      $ cd ghost-app
      $ cloudron build
      Enter repository (e.g registry/username/org.ghost.cloudronapp2): girish/ghost
      

      The above will build the docker image and push it into docker hub as girish/ghost repository.

      Install the app

      $ cloudron install
      Location: blog
      

      This will install the app you just built into blog.example.com.

      Update the app

      If you make any changes, you have to rebuild the app and update the cloudron with the latest image.

      $ git pull # get latest repo changes
      $ cloudron build
      $ cloudron update --app blog
      

      The update command will update the blog.example.com app with the image we just built.

      That's it!

      1 Reply Last reply Reply Quote 4
      • A
        alphagroup last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • Referenced by  d19dotca d19dotca 
        • Referenced by  d19dotca d19dotca 
        • Referenced by  d19dotca d19dotca 
        • Referenced by  d19dotca d19dotca 
        • Referenced by  girish girish 
        • E
          ericsanchez last edited by

          Hello Girish thank you for this explainer,

          Which CLI are you putting these commands in, your local machine, the Cloudron CLI, or the Linux server's?

          Also, if you want to install a custom build at a url location that is not the url from my.example.com but has been verified in the Cloudron dashboard and is able to have other Cloudron apps installed - how does one do that via this CLI method?

          My first guess would be

          Location:
          
          app.otherdomain.com
          

          Would this be correct?

          Also, When you said Docker has to be installed, is that on your Cloudron, your local machine, or your Linux server? One more thing, would custom builds use the CLoudron's MySQL database?

          Thank you!

          timconsidine 1 Reply Last reply Reply Quote 1
          • timconsidine
            timconsidine App Dev @ericsanchez last edited by

            @ericsanchez

            • the cloudron CLI needs to be installed on your local machine (not the server)

            • yes you can put app.otherdomain.com as the location providing otherdomain.com has been added to Domains & Certs

            • Docker needs to be installed on your local machine for the app building/packaging process

            • custom builds can use cloudron's MySQL if you specify it as an add-on in the CloudronManifest.json for the app you are building. You will need to reference the credentials in the Dockerfile you are building.

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