Building custom packages
This is a concise guide to building and installing custom packages. For a more detailed explanation, see https://cloudron.io/documentation/packaging/tutorial/.
Make sure you have docker installed. Also, sign up for a docker hub account (https://hub.docker.com/) and use
docker loginto login to the docker hub account.
Install the Cloudron CLI tool:
npm install -g cloudron. This requires you to install nodejs for
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
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
Install the app
$ cloudron install Location: blog
This will install the app you just built into
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.comapp with the image we just built.
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
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?
the cloudron CLI needs to be installed on your local machine (not the server)
yes you can put
app.otherdomain.comas the location providing
otherdomain.comhas 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.jsonfor the app you are building. You will need to reference the credentials in the
Dockerfileyou are building.