Sign inSign up

fastybird/gateway-node

By fastybird

•Updated almost 6 years ago

FastyBird IOT server API gateway node for accessing to nodes

Image
0

294

fastybird/gateway-node repository overview

⁠FastyBird gateway node

Build Status Code coverage PHP Licence Downloads total Latest stable PHPStan

⁠What is FastyBird gateway node?

Gateway node is a microservice for accessing to FastyBird ecosystem services via {JSON:API}⁠ interface.

FastyBird gateway node is an Apache2 licensed⁠ distributed microservice, developed in PHP with Nette framework⁠.

⁠Requirements

FastyBird gateway node is tested against PHP 7.4 and ReactPHP http⁠ 0.8 event-driven, streaming plaintext HTTP server and RabbitMQ⁠ 3.7 message broker

⁠Getting started

NOTE: If you don't want to install it manually, try docker image⁠

The best way to install fastybird/gateway-node is using Composer⁠. If you don't have Composer yet, download it⁠ following the instructions. Then use command:

$ composer create-project --no-dev fastybird/gateway-node path/to/install
$ cd path/to/install

Everything required will be then installed in the provided folder path/to/install

This microservice is composed from one console command.

⁠HTTP server
$ vendor/bin/fb-console fb:web-server:start

This command is to start build-in web server which is listening for incoming http api request messages from clients and is listening for new data from exchange bus from other microservices.

⁠Install with docker

Docker Image Version (latest by date) Docker Image Size (latest by date) Docker Cloud Build Status

Docker image: fastybird/gateway-node⁠

⁠Use docker hub image
$ docker run -d -it --name gateway fastybird/gateway-node:latest
⁠Generate local image
$ docker build --tag=gateway-node .
$ docker run -d -it --name gateway-node gateway-node

⁠Configuration

This microservices is preconfigured for default connections, but your infrastructure could be different.

Configuration could be made via environment variables:

Environment VariableDescription
FB_APP_PARAMETER__DATABASE_VERSION=5.7MySQL server version
FB_APP_PARAMETER__DATABASE_HOST=127.0.0.1MySQL host address
FB_APP_PARAMETER__DATABASE_PORT=3306MySQL access port
FB_APP_PARAMETER__DATABASE_DBNAME=gateway_nodeMySQL database name
FB_APP_PARAMETER__DATABASE_USERNAME=rootUsername
FB_APP_PARAMETER__DATABASE_PASSWORD=Password
FB_APP_PARAMETER__SERVER_ADDRESS=0.0.0.0HTTP server host address
FB_APP_PARAMETER__SERVER_PORT=8000HTTP server access port
FB_APP_PARAMETER__SECURITY_CORS_ORIGIN=*HTTP server allowed origins
FB_APP_PARAMETER__SECURITY_CORS_PROTOCOL=httpHTTP server origin protocol
FB_APP_PARAMETER__SECURITY_CORS_DOMAIN=localhostHTTP server origin domain
FB_APP_PARAMETER__SECURITY_CORS_PORT=8000HTTP server origin port

NOTE: In case you are not using docker image or you are not able to configure environment variables, you could edit configuration file ./config/default.neon

⁠Initialization

This microservice is using database, and need some initial data to be inserted into it. This could be done via shell command:

$ vendor/bin/fb-console fb:initialize

This console command is interactive and will ask for all required information.

After this steps, microservice could be started with server command⁠

⁠Feedback

Use the issue tracker⁠ for bugs or mail⁠ or Tweet⁠ us for any idea that can improve the project.

Thank you for testing, reporting and contributing.

⁠Changelog

For release info check release page⁠

⁠Maintainers


Homepage https://www.fastybird.com⁠ and repository http://github.com/fastybird/gateway-node⁠.

Tag summary

Content type

Image

Digest

Size

189.8 MB

Last updated

almost 6 years ago

docker pull fastybird/gateway-node