Apenas um sistema bastante inteligente para controlar o nosso dia-a-dia de trabalho físico e remoto.
Servidor WEB:
$WEB_HOST=0.0.0.0
$WEB_PORT=3000
Postgres:
$POSTGRES_HOST=localhost
$POSTGRES_USER=postgres
$POSTGRES_PASS=postgres
$POSTGRES_DBNAME=test
$POSTGRES_PORT=5432
Graphite:
$METRIC_HOST=localhost
$METRIC_PORT=2003
- Postgres: Banco de Dados para dados consistêntes do Jarvis
- Graphite: Banco de Dados para métricas do Jarvis
- Grafana: Usado para visualização do Grafite (Não necessário)
- RabbitMQ: Fila para requisições
mqtt
dos serviços de IOT.
Utilizamos Makefile & Docker & Docker-Compose para automatizar o fluxo de trabalho:
make up
: Executa toda a infraestrutura com o código fonte local para executar o ambiente de dev.make dev
: Sobe somente os serviços de dependência para executar testes unitários no VisualCode.make test
: Executa toda a suite de testes. Utilizamos a infraestrutura Docker para executar os testes.
O Jarvis está construído sobre o Golang 1.12. Lembre-se que é opcional caso queira somente executar o ambiente make up
, visto que este executa dentro do docker. Pode instalar da seguinte forma:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvm install go1.12 -B
gvm use go1.12
Caso queira alterar, recomendamos clonar dentro do $GOPATH para a IDE executar testes e obter a tipagem de forma correta:
mkdir -p $GOPATH/src/github.com/magrathealabs/
cd $GOPATH/src/github.com/magrathealabs/
git clone [email protected]:magrathealabs/jarvis.git
Para atualizar ou obter nvoas dependências, utilizamos o Govendor:
go get -u github.com/kardianos/govendor
Para verificar a qualidade do código, utilizamos o Golint-CI:
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
golangci-lint run