Central de Ajuda

Atendimento em horário comercial via chat

Publicando um template no Marketplace da Umbler

O Marketplace da Umbler é uma plataforma que permite a automação da publicação de aplicativos através da configuração de templates.

Para publicar seu aplicativo você pode usar qualquer uma das formas tradicionais de Deploy disponível no Painel de Controle da Umbler, contudo o Marketplace é uma forma de realizar configurações de instalação uma única vez, caso deseje provisionar várias vezes o mesmo aplicativo.

No Marketplace é possível tornar público seu template, permitindo que qualquer usuário da Umbler possa utilizá-lo. Isso evita complicações com a instalação ou configuração do ambiente, facilitando a jornada de seu usuário até a utilização do seu template.

Para publicar um novo template siga os seguintes passos:

Crie um novo repositório dentro do GitHub e configure para que ele seja público.

newrepository.png

Caso o código do seu template já esteja versionado no GitHub, verifique se o repositório está público e se ele possui uma branch chamada master. Esta é a branch que a Umbler utilizará para realizar a publicação do seu aplicativo.

Publique o código do seu template dentro da branch master, seguindo os passos de publicação descritos pelo GitHub.

push.png

No diretório raiz do seu repositório crie uma arquivo chamado umbler.yml

O umbler.yml é um arquivo no formato YAML que serve para especificar os detalhes e passos de instalação do template que estará disponível no Marketplace. Você deve criá-lo usando as especificações apresentadas abaixo.

Para facilitar a criação, você pode utilizar nossa ferramenta (https://github.com/umbler-team/umbler-cli) para criar e validar o umbler.yml.

No umbler.yml você precisa especificar os seguintes atributos para que sejam mostrados dentro do Painel de Controle da Umbler e do Site da Umbler.

name: MyTemplate
author: YourName
logo_url: https://design.umbler.com/assets/your_template_logo.png
version: 1.2.15
description: "A long and descriptive description about your template."
short_description: "A short description like a tweet."

Após especificar estes atributos você deve informar em qual linguagem seu template é desenvolvido.

stack: umble-node:12

Atualmente, as stacks suportadas são:

  • umbler-php:VERSION (as versões disponíveis são: 5.6, 7.0, 7.1, 7.2, 7.3)
  • umbler-node:VERSION (as versões disponíveis são: 4, 6, 7, 8, 9, 10, 12)

Deve-se também informar quais são os arquivos do seu repositório que devem ser publicados dentro do ambiente da Umbler. Para isso utilizamos os seguintes atributos

pack: "**/*.*"
dest: /

Uma vez especificado o tipo de linguagem (stack) em que seu template será instalado, você deve informar os requisitos do ambiente Umbler que seu template vai necessitar. Informando o tamanho mínimo da instância web que seu template necessita e também as dependências de banco de dados que ela possui. Ao adicionar uma dependência de banco de dados, a Umbler liberará esta instância de banco de dados no mesmo momento da configuração do ambiente para seu template.

requires:
  web:
    quantity: 1
    size: 1
  database:
    - type: mongodb

Todo o template passa por um pipeline de instalação antes de ser enviado para o ambiente web. Caso seu template necessite instalar dependências, você deverá especificar os comando que deverão ser executados.

build_pipeline:
   - npm install

Por último, você pode configurar dentro do umbler.yml quais serão as variáveis de ambiente que seu template irá utilizar.

env:
  DATABASE_URI: "mongodb://{database_mongodb_user}:{database_mongodb_password}@{database_mongodb_host}:{database_mongodb_port}/{database_mongodb_name}"
  NODE_ENV: "production"

Você poderá utilizar algumas variáveis dentro da seção ENV que serão substituídas durante o processo de instalação e configuração de seu template dentro do ambiente da Umbler. Assim, pode-se inserir dentro de variáveis de ambiente as credenciais de banco de dados que forem criadas pela Umbler no momento da instalação do template.

As variáveis suportadas pela Umbler são:

Variável Função
{new_guid} Retorna um guid único no formato UUID
{new_password} Cria uma senha aleatória.
{website_name} Nome do domínio do que esta instalando o template.
{new_hash_32} Cria um novo hash com 32 caracteres.
{new_hash_64} Cria um novo hash com 64 caracteres.
{database_mysql_name} Nome do banco de dados MySQL criado automaticamente pelo app.
{database_mysql_user} Usuario do banco de dados criado MySQL automaticamente pelo app.
{database_mysql_password} Senha do usuário do banco de dados MySQL criado automaticamente pelo app.
{database_mysql_host} Host de conexão do usuário do banco de dados MySQL criado automaticamente pelo app.
{database_mongodb_name} Nome do banco de dados MongoDB criado automaticamente pelo app.
{database_mongodb_user} Usuario do banco de dados MongoDB criado automaticamente pelo app.
{database_mongodb_password} Senha do usuário do banco de dados MongoDB criado automaticamente pelo app.
{database_mongodb_host} Host de conexão do usuário do banco de dados MongoDB criado automaticamente pelo app.

 

Abaixo, podemos visualizar alguns exemplos de templates já publicados na Umbler:

 

name: strapi
author: MarcosArtigas
logo_url: https://strapi.io/documentation/rocket.png
version: 3.0.0
description: "Strapi and its set of plugins will save you weeks of development time, whether you're managing content for a website or developing a mobile application."
short_description: "The open source Headless CMS Front-End Developers love."
stack: node
pack: "**/*.*"
dest: /

env:
  DATABASE_URI: "mongodb://{database_mongodb_user}:{database_mongodb_password}@{database_mongodb_host}:{database_mongodb_port}/{database_mongodb_name}"
  NODE_ENV: "production"

build_pipeline:
  - npm install

requires:
  web: 
    quantity: 1
    size: 1
  database:
    - type: mongodb

fonte: https://github.com/umbler-team/strapi/blob/master/umbler.yml

 

name: wordpress
author: Umbler
logo_url: https://design.umbler.com//assets/svg/sprite-logos.svg#wordpress
version: 1.0
description: "WordPress is software designed for everyone, emphasizing accessibility, performance, security, and ease of use. We believe great software should work with minimum set up, so you can focus on sharing your story, product, or services freely. The basic WordPress software is simple and predictable so you can easily get started. It also offers powerful features for growth and success."
short_description: "Over 60 million people choose WordPress to power their websites and blogs."
stack: php
pack: "**/*.*"
dest: /public

env:
  DB_NAME: "{database_mysql_name}" 
  DB_USER: "{database_mysql_user}"
  DB_PASSWORD: "{database_mysql_password}"
  DB_HOST: "{database_mysql_host}"
  AUTH_KEY: "{new_hash_64}" 
  SECURE_AUTH_KEY: "{new_hash_64}"
  LOGGED_IN_KEY: "{new_hash_64}"
  NONCE_KEY: "{new_hash_64}"
  AUTH_SALT: "{new_hash_64}"
  SECURE_AUTH_SALT: "{new_hash_64}"
  LOGGED_IN_SALT: "{new_hash_64}"
  NONCE_SALT: "{new_hash_64}"
  php_extensions: "gd mysql mysqli opcache pdo_mysql soap"
  
requires:
  web: 
    quantity: 1
    size: 1
  database:
    - type: mysql

fonte: https://github.com/umbler-team/wordpress/blob/master/umbler.yml 

 

Com o repositório e o arquivo umbler.yml criados, você deve enviar o link do repositório no GitHub para o e-mail marketplace@umbler.com, solicitando que a Umbler publique o novo template. O processo de publicação será feito através do contato via e-mail.

Deploy Button

Deploy Button é uma forma de criar um botão que de acesso simplificado ao fluxo de liberação de template. Você pode adicionar o Deploy Button da Umbler dentro de seu readme.md, possibilitando assim que os usuários de seu template possam fazer deploy na Umbler de forma guiada ao seu template.

Para adicionar o Deploy Button basta adicionar o seguinte código markdown em seu readme.md

[![Deploy](https://assets.umbler.com/brand/umbler-deploy-btn.svg)](https://app.umbler.com/deploy)

Caso este botão não seja inseriado dentro do github, você pode forçar o redirecionamento dele para seu template da seguinte forma.

[![Deploy](https://assets.umbler.com/brand/umbler-deploy-btn.svg)](https://app.umbler.com/deploy?template=https://github.com/githubuser/repository)

Após adicionar este código o seguinte botão irá aparecer:

umbler-deploy-btn.svg