Skip to content

natannobre/smart-farming

Repository files navigation

Smart Farming

Rails Guide

Project setup

Instalar o Git

sudo apt-get install git

Instalar Bibliotecas

sudo apt-get install -y build-essential libpq-dev nodejs git-core curl zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev

Instalar o Rbenv

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

Instalar o ruby-build

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

Instalar uma versão específica do ruby

rbenv install 3.0.2
rbenv global 3.0.2
ruby -v

Instalar Docker

  • Instalar pacote docker.io:
sudo apt install docker.io
  • Inicializa o Docker e configura para inicializar com o sistema:
sudo systemctl enable --now docker
  • Teste:
sudo docker run hello-world

Instalar Docker-Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Instalar o Yarn

  • Primeiramente é necessário adicionar os repositórios:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
  • Depois disso, basta instalar o yarn:
sudo apt update
sudo apt install yarn

Configurar SSH para acessar Github

Caso você não tenha configurado, você pode fazer isso seguindo 2 passos:

Baixar e executar localmente o projeto

Você vai baixar e configurar os projetos de acordo com o que você for precisar.


Smart Farming

git clone [email protected]:natannobre/smart-farming.git

Inicializar o projeto

  • Vá para o diretório do projeto:
cd <your_path_to>/smart-farming
  • Crie um arquivo env_variables com as variáveis de ambiente:
cp config/env_variables_example.yml config/env_variables.yml
# Inside this file you need to set the variable FIWARE_API_KEY
  • Configure os containers:
docker-compose build
  • Execute o container:
docker-compose up
  • Crie um Service Group

OBS: Coloque sua FIWARE_API_KEY no campo "apikey"

curl --location --request POST 'http://localhost:4041/iot/services' \
--header 'fiware-service: openiot' \
--header 'fiware-servicepath: /' \
--header 'Content-Type: application/json' \
--data-raw '{
 "services": [
   {
     "apikey":      "<YOUR_API_KEY>",
     "cbroker":     "http://orion:1026",
     "entity_type": "Thing",
     "resource":    ""
   }
 ]
}'
  • Após inicializar a rede Blockchain, Crie um User e pegue o Token de authenticação
curl --location --request POST 'http://localhost:4000/users' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjY5NjI0OTMsInVzZXJuYW1lIjoibmF0YW5ub2JyZTEiLCJvcmdOYW1lIjoiT3JnMSIsImlhdCI6MTY2NjkyNjQ5M30.mVVzoYsrQaQTwuuF6sRzbznrWJkLbWpnt0efJe0t4cY' \
--data-raw '{
	"username":"<USERNAME>",
	"orgName": "Org1"
}	'

# Response example:
# {
#     "success": true,
#     "message": "<USERNAME> enrolled Successfully",
#     "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjcwMDY1OTUsInVzZXJuYW1lIjoibmF0YW5ub2JyZTEiLCJvcmdOYW1lIjoiT3JnMSIsImlhdCI6MTY2Njk3MDU5NX0.8BJoE5eRyN3UH-SZ5-a68BlcnVVUTO8GNTJpPEo7XVc"
}
  • Com este token você seta a variável de ambiente BLOCKCHAIN_API_KEY no arquivo config/env_variables.yml e reinicia a aplicação Rails
BLOCKCHAIN_API_KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjcwMDY1OTUsInVzZXJuYW1lIjoibmF0YW5ub2JyZTEiLCJvcmdOYW1lIjoiT3JnMSIsImlhdCI6MTY2Njk3MDU5NX0.8BJoE5eRyN3UH-SZ5-a68BlcnVVUTO8GNTJpPEo7XVc
# Parar os containers da aplicação Rails
docker stop [ CONTAINER_IDS_LIST ]

cd <your_path_to>/smart-farming
docker-compose up

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published