Skip to main content

Deploy your own AppMarket

How to build your own marketplace

To create your own marketplace, you need to follow these steps:

Install the appmarket-simple

Content server provided by OpenNebula. Instructions may have changed https://github.com/OpenNebula/appmarket-simple

Change logos and external URL

  1. Install yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
apt-get update
apt-get install -y yarn
  1. Clone the appmarket-simple repository
git clone https://github.com/6G-SANDBOX/appmarket-simple /opt/appmarket-simple
  1. Install the dependencies
yarn --cwd /opt/appmarket-simple/src/public/react/ install
  1. Comment line 2 and uncomment line 1 to src/public/react/src/constants/endpoints.js

  2. Build the frontend

yarn --cwd /opt/appmarket-simple/src/public/react/ build

Install the appliance build chain

git clone --recurse-submodules https://github.com/6G-SANDBOX/marketplace-community.git

mkdir -p /srv/6gsandbox /srv/6gsandbox/metadata /srv/6gsandbox/appliances
ln -sf /srv/6gsandbox/metadata/ /opt/appmarket-simple/src/data
ln -sf /opt/6gsandbox/marketplace-community/logos/ /opt/appmarket-simple/src/public/logos
ln -sf /opt/6gsandbox/marketplace-community/appliances/.other-appliances/ /srv/6gsandbox/metadata/

Now, set up a simple nginx server to expose the appliances built

# /etc/nginx/sites-enabled/6gsandbox-marketplace
...
server {
...
root /srv/6gsandbox/appliances;
...

And finally edit apps-code/community-apps/Makefile.local to set a custom prefix for the appliance names, to modify the external URL for the exposed nginx server, or to modify the paths where appliances and metadata will be placed.

Refresh everything to see if everything worked

systemctl restart nginx
systemctl restart appmarket-simple

You can start building appliances now.