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.
To test out the demo, Demo Online
Discovery App is a crawler accountable to connect to cloud providers.
- To manager and authenticate on each cloud provider
- Translate cloud data to maestro data.
Core API:
- API Rest
- Worker - Scan
- Worker - Translate
- Worker - Insert
- Worker - Notification
- Python <3.4
- Flask
- Celery
- RabbitMq
- Maestro Data
version: '2'
services:
discovery:
image: maestroserver/discovery-maestro
ports:
- "5000:5000"
environment:
- "CELERY_BROKER_URL=amqp://rabbitmq:5672"
- "MAESTRO_DATA_URI=http://data:5010"
discovery-celery:
image: maestroserver/discovery-maestro-celery
environment:
- "CELERY_BROKER_URL=amqp://rabbitmq:5672"
- "MAESTRO_DATA_URI=http://data:5010"
- "MAESTRO_AUDIT_URI=http://audit:10900"
- "MAESTRO_SERVER_URI=http://server:8888"
cd devtools/
docker-compose up -d
Configure rabbitmq service in .env file
CELERY_BROKER_URL="amqp://localhost:5672"
CELERYD_TASK_TIME_LIMIT=30
Install pip dependences
pip install -r requeriments.txt
Run server
python -m flask run.py
or
FLASK_APP=run.py FLASK_DEBUG=1 flask run
or
npm run server
Run workers
celery -A app.celery worker -E -Q discovery --hostname=discovery@%h --loglevel=info
or
npm run celery
Run all tests
python -m unittest discover
Create doc
npm install
apidoc -i app/controller/ -o docs/
Env Variables | Example | Description |
---|---|---|
MAESTRO_DATA_URI | http://localhost:5005 | Data App - API URL |
MAESTRO_AUDIT_URI | http://localhost:10900 | Audit App - API URL |
MAESTRO_SERVER_URI | http://localhost:8888 | Server App - API URL |
MAESTRO_WEBSOCKET_URI | http://localhost:8000 | Websocket App - API URL |
FLASK_ENV | development | production |
MAESTRO_GWORKERS | 2 | Gunicorn multi process |
MAESTRO_TRANSLATE_QTD | 200 | Prefetch used in translate worker |
MAESTRO_COUNTDOWN_LAST | 10 | Time in seconds to run the last task |
MAESTRO_COUNTDOWN_WS | 2 | Delayed time to run ws notification |
MAESTRO_SECRETJWT | XXXX | Secret key - JWT for connections |
MAESTRO_WEBSOCKET_SECRET | XXXX | Secret Key - JWT Websocket connections |
MAESTRO_SECRETJWT_PRIVATE | XXX | Secret Key - JWT private connections |
MAESTRO_NOAUTH | XXX | Secret Pass to validate private connections |
CELERY_BROKER_URL | XXXX | Rabbitmq URL |
CELERYD_TASK_TIME_LIMIT | 500 | Timeout - worker |
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.
We may be able to resolve support queries via email. Please send me a message here
I have made Maestro Server with my heart, think to solve a real operation IT problem. Its not easy, take time and resources.
The donation will be user to:
- Create new features, implement new providers.
- Maintenance libs, securities flaws, and technical points.