Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Signorini committed Apr 15, 2020
1 parent 07866f7 commit ed0b255
Show file tree
Hide file tree
Showing 8 changed files with 86 additions and 51 deletions.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ cd docs/
make html
```


You can use a simple python http server to visualize the content, as example:

```bash
cd docs/_build/html/
python3 -m http.server 7777
```


### Contribute ###

Are you interested in developing Maestro Server, creating new features or extending them?
Expand Down
24 changes: 9 additions & 15 deletions docs/installing/docker.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,35 @@ High Architecture

-----------------

We have docker compose file with all services (download here), this is the easy way to install Maestro, if you like can install in a pure way (we did a doc show each step to install without docker, see here Developer Guide).
We have docker compose file with all services (download here), this is the easy way to install Maestro, to install in a pure way (we did a doc show each step to install without docker, see here Developer Guide).

This section will show installation briefing for each service.
This section will deep dive over configurations for each service.

First: A minimun installation can be done with:
A minimun installation can be done with:

..
* Client App
* Server App
* MongoDB

You can setup and use a minimun installation, you can create and delete servers, apps, datacenters, change acl and create new users, with these you have a simple inventory system.
You can create and delete servers, apps, datacenters, change acl and create new users, this setup offer a simple inventory system.

If you like to use a synchronous features with AWS or other providers, then you need:
To use a synchronous discovery features with AWS and/or other providers, do you need:

..
* Discovery App
* Data App
* RabbitMq

Or use auto-discovery feature, will polling and maintain or inventory synchronous, then:
To have a auto update over discovery you need to install the scheduler app.

..
* Scheduler App

If you like to create and export reports then:
To create and export reports you need to have the reports app installed:

..
Expand All @@ -42,7 +42,7 @@ If you like to create and export reports then:
* RabbitMq


Create bussiness analytics graphs, public and shared these maps, need:
To create a bussiness analytics graphs, public and shared these maps, you need to install these apps:

..
Expand All @@ -52,18 +52,12 @@ Create bussiness analytics graphs, public and shared these maps, need:
* RabbitMq


And if you like to tracking history and smart update beetween entities, should install:
And if you like to tracking history, you should install:

..
* Audit App

And if you need to manage all data, create and reset passwords, privilege admin stuffs, use:

..
* Admin App


Let´s start

Expand Down
6 changes: 3 additions & 3 deletions docs/installing/external_db.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Using external Database

---------

It recommend to spin up a mongodb externally, it uses `MAESTRO_MONGO_URI` env variable.
It recommend to spin up a mongodb externally, it uses ``MAESTRO_MONGO_URI`` env variable.

=================================== ========================== =======================================================
Env Variables Default Description
Expand All @@ -38,7 +38,7 @@ It recommend to spin up a mongodb externally, it uses `MAESTRO_MONGO_URI` env va
image: maestroserver/scheduler-maestro
environment:
- "MAESTRO_MONGO_URI=mongodb://{external.mongo.url}"
- "MAESTRO_MONGO_DATABASE=maestro-client" # <------ It need to be the same db of servert-api
- "MAESTRO_MONGO_DATABASE=maestro-scheduler"
analytics_front:
image: maestroserver/analytics-front-maestro
Expand All @@ -60,7 +60,7 @@ It recommend to spin up a mongodb externally, it uses `MAESTRO_MONGO_URI` env va
You can replace the db name setting the `MAESTRO_MONGO_DATABASE` env var.
You can replace the db name setting the ``MAESTRO_MONGO_DATABASE`` env var.

=================================== ========================== =======================================================
Env Variables Default Description
Expand Down
9 changes: 7 additions & 2 deletions docs/installing/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,8 @@ We use docker to spin up a new maestro bundle, you can copy and execute docker-c
image: maestroserver/analytics-front-maestro
ports:
- "9999:9999"
volumes:
- artifacts_analytics:/data/artifacts/
environment:
- "MAESTRO_MONGO_URI=mongodb://mongodb"
- "MAESTRO_MONGO_DATABASE=maestro-client"
Expand Down Expand Up @@ -222,13 +224,16 @@ We use docker to spin up a new maestro bundle, you can copy and execute docker-c
volumes:
mongodata: {}
artifacts_server: {}
artifacts_analytics: {}
--------

Spin up the API server in a different server
********************************************

By default the client server uses the domain name to connect into server api, websocket and analytics front api; However if you like to switch this configuration you can use env vars the specific all endpoints.
By default the client server uses the same domain name to connect into server api, websocket and analytics front api; However if you like to switch this configuration you can use env vars the specific all endpoints.

By default access the client by ``//example.maestro``, the client will try to access the server api by ``//example.maestro:8888``, the analytic front by ``//example.maestro:9999`` and the websocket by ``ws(s)//example.maestro:8000``

.. code-block:: yaml
Expand All @@ -237,7 +242,7 @@ By default the client server uses the domain name to connect into server api, we
image: maestroserver/client-maestro
environment:
- "API_URL=http://server.api.endpoint:8888"
- "STATIC_URL=http://server.api.endpoint:8888/static/"
- "STATIC_URL=http://server.api.endpoint:8888/static/" # <- It need to have the slash
- "ANALYTICS_URL=http://analytics.front.endpoint:9999"
- "WEBSOCKET_URL=ws://websocket.endpoint:8000"
Expand Down
9 changes: 0 additions & 9 deletions docs/installing/kubernetes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ Creating secrets files
First step it's create 4 secrets files (secrets/)

- mongo_srv.txt
- mongo_uri.txt
- smtp.txt
- storage.txt

Expand All @@ -18,7 +17,6 @@ And populate accordlingly, running
kubectl create secret generic smtp --from-env-file secrets/smtp.txt
kubectl create secret generic mongo_srv --from-env-file secrets/mongo_srv.txt
kubectl create secret generic mongo_uri --from-env-file secrets/mongo_uri.txt
kubectl create secret generic storage --from-env-file secrets/storage.txt
**storage.txt**
Expand All @@ -30,12 +28,6 @@ And populate accordlingly, running
AWS_DEFAULT_REGION=
AWS_S3_BUCKET_NAME=
**mongo_uri.txt**

.. code-block:: bash
MAESTRO_MONGO_URI=mongo://mongodb:27017
**mongo_srv.txt**

.. code-block:: bash
Expand All @@ -61,7 +53,6 @@ To check if everything it's ok run
NAME TYPE DATA AGE
mongosrv Opaque 1 24d
mongouri Opaque 1 24d
smtp Opaque 6 18d
storage Opaque 4 17d
Expand Down
2 changes: 1 addition & 1 deletion docs/installing/smtp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ SMTP Config

---------

To configure the smtp, go to server api.
You can use a external smtp service as SendGrid, Aws ses and more. Go to server application and set:

+---------------+-------------------------+------------------------------------------------------+
| SMTP_PORT | 465 | |
Expand Down
33 changes: 20 additions & 13 deletions docs/installing/upload.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,24 @@ Using external store engine as S3

You can choose two mode to upload the files, a local file or using S3 to storage direcly.

Where need to configure an upload file manage:
The Maestro uses an upload system in two points:

+---------------+-----------------------------------------------------------+
| server-app | Using in avatar users, teams and projects images. |
+---------------+-----------------------------------------------------------+
| discovery app | Using to store report artifact, like pdfs, csv and jsons. |
| analytics app | To store artifacts such as graphs, svgs and pngs |
+---------------+-----------------------------------------------------------+

Local
-----

For a single node, the file will be stored in local disk.
For a single node, the file will be stored on a local disk.

Env variables

============= ================
UPLOAD_TYPE Local
LOCAL_DIR /upload
LOCAL_DIR public/static/
============= ================

.. code-block:: yaml
Expand All @@ -37,18 +37,23 @@ Env variables
image: maestroserver/server-maestro
environment:
- UPLOAD_TYPE=Local
- LOCAL_DIR=/upload
- LOCAL_DIR=public/static/
client:
image: maestroserver/client-maestro
environment:
- STATIC_URL='http://server-app:8888/static'
- STATIC_URL='http://server-app:8888/static/'
.. Note::

These are the default configuration, you don't need to declare these values.

------

AWS S3
------

You can use S3 Amazon storage object service, perfectly for HA environments
You can use S3 Amazon storage object service to store an uploaded file.

Env variables

Expand Down Expand Up @@ -76,17 +81,19 @@ Env variables
client:
image: maestroserver/client-maestro
environment:
- STATIC_URL='http://maestroserver.s3.aws.com.br'
- STATIC_URL='https://maestroserver.s3.aws.com.br/'
.. Note::

Need to be adjusted client-app appoint new local file
It Need to be adjusted the ``STATIC_URL`` endpoint on client-app.

-------

Digital Ocean Spaces
--------------------

You can use Digital ocean space
You can use Digital ocean space, they uses the same S3 protocol, but rather than AWS you need to set ``AWS_ENDPOINT``.

Env variables

Expand All @@ -99,6 +106,6 @@ AWS_S3_BUCKET_NAME maestroserver
AWS_ENDPOINT S3 endpoint
======================= ================================

Endpoint can be ny3.spacesdigitalocean
Access and secret it's create on spaces dashboard.
AWS_DEFAULT_REGION can be ny3
- Endpoint can be ny3.spacesdigitalocean
- Access and secret can be get on spaces dashboard.
- AWS_DEFAULT_REGION can be ny3
45 changes: 37 additions & 8 deletions docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Docker have a empheral disk, with means if you remove the container all data wil
Using external Database
***********************

It recommend to spin up a mongodb externally, it uses `MAESTRO_MONGO_URI` env variable.
It recommend to spin up a mongodb externally, it uses ``MAESTRO_MONGO_URI`` env variable.

=================================== ========================== =======================================================
Env Variables Default Description
Expand All @@ -54,7 +54,7 @@ It recommend to spin up a mongodb externally, it uses `MAESTRO_MONGO_URI` env va
-e MAESTRO_MONGO_URI=mongodb://external.mongo.com:27017
maestroserver/standalone-maestro
You can replace the db name setting the `MAESTRO_MONGO_DATABASE` env var.
You can replace the db name setting the ``MAESTRO_MONGO_DATABASE`` env var.

=================================== ========================== =======================================================
Env Variables Default Description
Expand Down Expand Up @@ -108,6 +108,30 @@ Env variables
Complete docker compose
***********************

Minimal setup

.. code-block:: yaml
services:
maestro:
image: maestroserver/standalone-maestro
ports:
- 80:80
- 8888:8888
- 8000:8000
- 9999:9999
volumes:
- mongodb:/data/db
- artifacts_server:/data/server-app/public/
- artifacts_analytics:/data/artifacts
volumes:
mongodata: {}
artifacts_server: {}
artifacts_analytics: {}
Reliable setup using the standalone docker, a mongodb, smtp and store file setted externally.

.. code-block:: yaml
services:
Expand All @@ -118,16 +142,17 @@ Complete docker compose
- 8888:8888
- 8000:8000
- 9999:9999
volumes:
- ./db:/data/db
- ./server/public:/data/server-app/public/
- ./artifacts:/data/artifacts
- ./analytics/public:/data/analytics-front/public
environment:
- AWS_ACCESS_KEY_ID='XXXXXXXXXX'
- AWS_SECRET_ACCESS_KEY='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
- AWS_DEFAULT_REGION='us-east-1'
- MAESTRO_MONGO_URI=mongodb://external.mongo.com:27017
- SMTP_PORT=465
- SMTP_HOST=smtp.gmail.com
- SMTP_SENDER='mysender@gmail.com'
- SMTP_USERNAME=myusername
- SMTP_PASSWORD=mysecret
- SMTP_USETSL=true
.. Note::

Expand All @@ -137,10 +162,14 @@ Complete docker compose

Standalone uses supervisord to manage all services inside of one docker, if you like to spin up one docker per service, go to `installation <http://docs.maestroserver.io/en/latest/installing/>`__.

.. Warning::

Don't spin up a multiple standalone docker, it will duplicate the schedule tasks, if you need to make a production high availability setup, go to installation per service.

Installation guide
******************

If you like to deep dive on Maestro installation, be able to run containers in multiple instances, high availability and more, go to:
If you like to deep dive on Maestro installation, it be able to run containers in multiple instances, high availability and more, go to:

.. toctree::
:maxdepth: 1
Expand Down

0 comments on commit ed0b255

Please sign in to comment.