fastybird/miniserver

FastyBird IoT MiniServer application

dev-master 2022-08-15 08:37 UTC

This package is auto-updated.

Last update: 2022-08-15 08:37:13 UTC


README

Build Status Licence Code coverage

PHP PHP latest stable PHP downloads total PHPStan

Python Python latest stable Python downloads month Black MyPy

What is FastyBird IoT MiniServer?

MiniServer is part of FastyBird IoT MiniServer application.

FastyBird IoT MiniServer is an Apache2 licensed distributed application, developed in PHP with Nette framework.

Requirements

FastyBird MiniServer is tested against PHP 7.4, Redis 6.2.2 in-memory data store, MySQL relational database management system, ReactPHP http 0.8 event-driven, streaming plaintext HTTP server and Nette framework 3.0 PHP framework for real programmers.

Getting started

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

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

composer create-project --no-dev fastybird/miniserver path/to/install
cd path/to/install

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

Running app

You have two options how to run this app

Running an app via ReactPHP http server

All what you need is just run one console command:

vendor/bin/fb-console fb:web-server:start

This command will start build in web server which is listening for incoming http api request messages from clients.

Running an app via Apache or Nginx

You have to configure you web server running on Apache or Nginx to server content from www folder.

In this folder is main entry point for accessing application api.

Install with docker

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

Docker image: fastybird/miniserver

Use docker hub image

docker run -d -it --name devices fastybird/miniserver:latest

Generate local image

docker build --tag=miniserver .
docker run -d -it --name miniserver miniserver

Configuration

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

Configuration could be made via environment variables:

Environment Variable Description
FB_APP_PARAMETER__DATABASE_VERSION=5.7 MySQL server version
FB_APP_PARAMETER__DATABASE_HOST=127.0.0.1 MySQL host address
FB_APP_PARAMETER__DATABASE_PORT=3306 MySQL access port
FB_APP_PARAMETER__DATABASE_DBNAME=fb_miniserver MySQL database name
FB_APP_PARAMETER__DATABASE_USERNAME=miniserver Username
FB_APP_PARAMETER__DATABASE_PASSWORD=miniserver Password
FB_APP_PARAMETER__REDIS_HOST=127.0.0.1 Redis server host address
FB_APP_PARAMETER__REDIS_PORT=6379 Redis server access port
FB_APP_PARAMETER__REDIS_USERNAME= Redis server username
FB_APP_PARAMETER__REDIS_PASSWORD= Redis server password
FB_APP_PARAMETER__SERVER_ADDRESS=0.0.0.0 HTTP server host address
FB_APP_PARAMETER__SERVER_PORT=8000 HTTP server access port
FB_APP_PARAMETER__SECURITY_SIGNATURE= Security token signature string

NOTE: In case you are not using docker image, or you are not able to configure environment variables, you could create configuration file ./config/local.neon and put your settings here.

Initialization

This application 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, application 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

1866672?s=460&v=4
Adam Kadlec

Homepage https://www.fastybird.com and repository https://github.com/fastybird/miniserver.