Sign inSign up

maestroserver/server-maestro

By maestroserver

•Updated almost 5 years ago

Server App is main application of Maestro Server

Image
0

10K+

maestroserver/server-maestro repository overview

⁠Maestro Server

Maestro Server is an open source software platform for management and discovery servers, apps and system for Hybrid IT. Can manage small and large environments, be able to visualize the latest multi-cloud environment state.

⁠Demo

To test out the demo, Demo Online⁠

⁠Documentation
⁠Maestro Server - Server API

Server App is main application, yours responsibility is:

  • Authentication and authorization
  • Validate and create entities (crud ops)
  • Proxy to others micro services

We using DDD to organize the code, has infra, repositories, entities (values objects), interfaces, application, and domain. Constructed with KrakenJs, we create a lot of middleware and organize by domain.

Core API, organized by modules:

  • Core
  • Profile and authetication
  • Teams
  • Projects
  • Architectures
  • Applications
  • Cloud Inventory
  • System
  • Clients
  • Servers
  • Reports
  • Events
  • Analytics
  • Graphs
  • Jobs
  • Inventory
⁠TechStack
  • NodeJs 8.11.2
  • MongoDB 3.4
  • AWS S3 (If using S3 upload)
⁠Service relations
  • Maestro Discovery
  • Maestro Reports
  • Maestro Analytics
  • Maestro Analytics Front
  • Maestro Audit

⁠Setup
⁠Installation by docker
docker run -p 8888:8888  -e "MAESTRO_MONGO_URI=mongodb" -e "MAESTRO_MONGO_DATABASE=maestro-client" -e "MAESTRO_DISCOVERY_URI=http://discovery:5000" -e "MAESTRO_ANALYTICS_URI=http://analytics:5020" -e "MAESTRO_REPORT_URI=http://reports:5005" -e "MAESTRO_AUDIT_URI=http://audit:10900" maestroserver/server-maestro

Or by docker-compose

version: '2'

services:
    server:
    image: maestroserver/server-maestro
    ports:
    - "8888:8888"
    environment:
    - "MAESTRO_MONGO_URI=mongodb"
    - "MAESTRO_MONGO_DATABASE=maestro-client"
    - "MAESTRO_DISCOVERY_URI=http://discovery:5000"
    - "MAESTRO_REPORT_URI=http://reports:5005"
    - "MAESTRO_ANALYTICS_URI=http://analytics:5020"
    - "MAESTRO_AUDIT_URI=http://audit:10900"

⁠Dev Env

Setup mongodb and fake smtp

cd devtools/

docker-compose up -d

Configure database and port application in .env file

MAESTRO_PORT=8888
MAESTRO_MONGO_URI='localhost'
MAESTRO_MONGO_DATABASE='maestro-client'
MAESTRO_DISCOVERY_URI=http://localhost:5000 // used in connection
MAESTRO_REPORT_URI=http://localhost:5005 // used in reports
MAESTRO_ANALYTICS_URI=http://analytics:5020 // used in analytics
MAESTRO_AUDIT_URI=http://audit:10900 // used in audit

Development

Install nodejs, version above 7.6, mongodb need to be running.

npm install
npm run migrate //populate mongodb
npm run server

Run all tests or any test type

mocha test/**/*js --reporter spec

gulp test_e2e
gulp test_unit
gulp eslint

⁠Env variables
Env VariablesExampleDescription
MAESTRO_PORT8888
NODE_ENVdevelopmentproduction
MAESTRO_MONGO_URIlocalhostDB string connection
MAESTRO_MONGO_DATABASEmaestro-clientDatabase name
MAESTRO_SECRETJWTXXXXSecret key - session
MAESTRO_SECRETJWT_FORGOTXXXXSecret key - forgot request
MAESTRO_SECRET_CRYPTO_FORGOTXXXXSecret key - forgot content
MAESTRO_SECRETJWT_PUBLICXXXXSecret key - public shared
MAESTRO_SECRETJWT_PRIVATEXXXSecret Key - JWT private connections
MAESTRO_NOAUTHXXXSecret Pass to validate private connections
MAESTRO_DISCOVERY_URIhttp://localhost:5000⁠Url Discovery-app (flask)
MAESTRO_REPORT_URIhttp://localhost:5005⁠Url Reports-app (flask)
MAESTRO_ANALYTICS_URIhttp://localhost:5020⁠Url Analytics-app (flask)
MAESTRO_AUDIT_URIhttp://localhost:10900⁠Url Audit-app (krakenjs)
MAESTRO_TIMEOUT1000Timeout micro service request
SMTP_PORT1025
SMTP_HOSTlocalhost
SMTP_SENDERfelipeklerkk@XXXX
SMTP_IGNOREtruefalse
SMTP_USETSLtruefalse
SMTP_USERNAME
SMTP_PASSWORD
AWS_ACCESS_KEY_IDXXXX
AWS_SECRET_ACCESS_KEYXXXX
AWS_DEFAULT_REGIONus-east-1
AWS_S3_BUCKET_NAMEmaestroserver
MAESTRO_UPLOAD_TYPES3/LocalUpload mode
LOCAL_DIR/public/static/Where files will be uploaded
PWD$rootDirectoryPWD process

⁠Contribute

Are you interested in developing Maestro Server, creating new features or extending them?

We created a set of documentation, explaining how to set up your development environment, coding styles, standards, learn about the architecture and more. Welcome to the team and contribute with us.

See our developer guide⁠

Tag summary

Content type

Image

Digest

Size

169.1 MB

Last updated

almost 5 years ago

docker pull maestroserver/server-maestro