Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

This articles describes how to setup the Maestrano Hub component using the Nex!™ Platform as a Service.






1 - Prerequisites

This documentation is tailored to be used with Maestrano Paas Nex!™.

  • You need first to have a github account inside the organization allowed by the Nex!™ installation.
  • Generate your Nex! Api key by accessing the  Nex!™ url and allowing the application.
  • Install Nex! Cli

# install nex_client
gem install nex_client

# Set authentication
export NEX_API_KEY= <your nex! api key>
export NEX_ENDPOINT=<URL of your next! application for example https://nex.yourdomain.io>

# Display all available commands
nex-cli --help

2 - Configuration

Create a configuration file based to set the environment variables, eg: application.mno-hub

Do not check this file into version control!

Update the value according to your configuration

application.mno-hub
###########################
# General Configuration
###########################
RAILS_ENV=production
RAILS_MAX_THREADS=25
RAILS_LOG_TO_STDOUT=true
JRUBY_WEB_OPTS=-J-Xms1536m -J-Xmx1536m -J-server
JRUBY_WORKER_OPTS=-J-Xms1024m -J-Xmx1024m -J-server

###################################
# Secrets
###################################
# This key is used to encrypt credentials in database. Use "rake secret" to generate it.
encryption_key=<GENERATE ME>

# Rails secret. Use "rake secret" to generate it.
secret_key_base=<GENERATE ME>

# Rails secret. Use "rake secret" to generate it.
secret_token=<GENERATE ME>

###################################
# Platform components endpoints
###################################
# Url of your Impac installation
IMPAC_ENDPOINT=https://api-impac.yourdomain.io

# Url of your MnoHub installation
MNOHUB_ENDPOINT=https://api-hub.yourdomain.io
conf_hub_api_host=api-hub.yourdomain.io
conf_hub_api_protocol=https

DEV_PLATFORM_ENDPOINT=https://developer.maestrano.io
DEV_PLATFORM_SHARED_SECRET=<Ask Us>

# Connec Configuration Replace with appropriate values
CONNEC_ENDPOINT=https://api-connec.yourdomain.io
connec_authentication_key=
connec_authentication_secret=
conf_connec_host=api-connec.yourdomain.io
conf_connec_paths_accounts_summary=/api/reports/:channel/accounts_summary
conf_connec_paths_all_accounts=/api/reports/:org_uid/account_balances
conf_connec_paths_balance_sheet=/api/reports/:channel/balance_sheet
conf_connec_paths_customers_invoices=/api/reports/:channel/customers_invoices
conf_connec_paths_suppliers_invoices=/api/reports/:channel/suppliers_invoices
conf_connec_paths_sync=/v1/:instance_uid/sync
conf_connec_port=443
conf_connec_protocol=https
conf_connec_upload_company=api-connec-yourdomain.maestrano.io/v1/:channel_id/company
conf_connec_upload_items=api-connec-yourdomain.maestrano.io/v1/admin/uploads/items
conf_connec_upload_organizations=api-connec-yourdomain.maestrano.io/v1/admin/uploads/organizations
conf_connec_upload_people=api-connec-yourdomain.maestrano.io/v1/admin/uploads/people
conf_connec_upload_protocol=http

###################################
# Assets Management
###################################

# The AWS credentials to use to manage the 'assets' bucket (used to upload images, js/css files)
aws_s3_access_key_id=
aws_s3_secret_access_key=

conf_carrierwave_asset_host=
conf_carrierwave_private_bucket=
conf_carrierwave_public_bucket=
conf_carrierwave_region=

###################################
# Application Configuration
###################################

# OPTIONAL: if specified then an initial tenant will be created on first deploy
default_tenant_host=frontend.yourdomain.io
default_tenant_id=ea6009b0-be7b-0132-7f2c-22000a93862b
default_tenant_key=
default_tenant_name=Maestrano UAT
default_tenant_scheme=http

# Enable/Disable sidekiq for Maestrano Hub. Should be set to false
conf_background_job_disable_recurring_jobs=false

# Default support email displayed on pages
conf_contact_support=support@yourdomain.io

# Used for geolocalisation
conf_geocoder_ip_lookup=geoip2
conf_geocoder_lookup=google
conf_google_map_api_key=
conf_microsoft_partner_id=

# This value is used to generate unique email addresses for application providers
conf_sso_virtual_email_domain=appmail.yourdomain.io

# This service is used to convert monetary values. Put your OpenExchangeRate.org API key
OPENEXCHANGERATES_APP_ID=<OpenExchangeRate.org API key>

# OPTIONAL: New Relic app name and enablement flag.
newrelic_app_name=
newrelic_license_key=

#############################################################################################
# Applications Hosting
# OPTIONAL: only required if hosted apps are enabled. Please contact us.
#############################################################################################
# Nex! configuration - only required if hosted apps or webstores must be enabled
NEX_API_KEY=
NEX_ENDPOINT=

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
FORCE_SSL=true

#############################################################################################
# Payment Gateways
# OPTIONAL
#############################################################################################
# Braintree credentials.
braintree_merchant_id=
braintree_private_key=
braintree_public_key=

# eWay credentials.
eway_login=
eway_password=
eway_username=

3 - Nex!™ - Deploying the app

2.1 - Create the app

Create the App
# Create the app, with the correct environment variable
# Adjust the tags and description based on the environment you are deploying to
nex-cli apps:create maestrano/web-jruby --env-file <path/to/application.mno-hub>  --size 20 --tags "jruby,core,mnohub,production" --desc "MnoHub Production"
 
# Save the app name to a var to make your life easier
export app=clueless-turkey-1

# Transfer app ownership to your parent organization (e.g. maestrano)
nex-cli apps:transfer $app maestrano

# Link the application to the code package
# NOTE: the S3 credentials must have been provided to you by the Maestrano team
nex-cli apps:scm $app --link s3:mnoe-packages/mnohub/releases:1.0.31 --credentials somelogin:somepassword

# Add the mysql and redis add-ons
nex-cli addons:create mysql $app
nex-cli addons:create redis $app

# Start it
nex-cli apps:up $app
 
# Check the logs
nex-cli apps:logs $app

You can now go to the Nex!™ generated URL (e.g. https://clueless-turkey-1.my-nex-domain.com) and check that everything is working properly.

2.2 - Register Log Drain on SumoLogic

You first need to register a Hosted SumoLogic Collector and use the generated collector URL

  1. Go to Manage > Collection > Add Collector
  2. Select "Hosted Collector" (the collector will be hosted by SumoLogic)
    1. For the name you should use the name of your actual connector for the log drain. E.g.: connector-vend-prd or connector-vend-uat
    2. SumoLogic then ask the type of collector you want. Select "HTTP"
    3. Use the same name as the collector for the name of the HTTP endpoint (e.g. connector-vend or connector-vend-uat)
    4. Select "UTC/Etc" for the timezone
  3. Once created SumoLogic will display a popup showing the log drain URL. Just copy that and use it for the next step


# Make sure to use the SumoLogic collector URL
nex-cli apps:update $app --http-log-drain https://collectors.au.sumologic.com/MY_RANDOM-LOG_DRAIN-TOKEN

2.3 - Setting up a custom domain

First create a CNAME to your app using your DNS manager (e.g. AWS Route53, GoDaddy, etc.):

host api-hub.mydomain.com
# => api-hub.mydomain.com is an alias (CNAME) for enhanced-tuna-1.my-nex-domain.com


# Create a domain
nex-cli domains:create api-hub.mydomain.com $app
  
# Add the SSL certs
nex-cli certs:create api-hub.mydomain.com $app --cert path-to-the-cert.crt --bundle path-to-the-bundle.crt --privkey .path-to-the-private.key.pem
  • No labels