How it's works?


Strona internetowa
Smartpixels.app Website

Application is based on Node.js programming language - it generates a website, a control panel. The variable page elements are stored in the MySQL database which is replicated between servers. Application uses potential of Docker containers, it runs on a Kubernetes cluster. To ensure fast implementation of the code, we use the CI/CD (continuous integration and continuous deployment) with GitHub and Docker Hub services.
User page is delivered from the nearest server through Cloudflare. Production machines communicate with each other via WireGuard VPN working in a mesh configuration. Infrastructure is designed for high availability and ability to scale quickly.

Used technologies:

  • Node.js - application main programming language
  • Nginx - proxy server between the app and Cloudflare
  • Kubernetes - is an open-source platform for automating deployment and scaling application
  • GitHub - allows us to automate software implementation process
  • Cloudflare - we are using it to deliver content from the closest server to the user. It allows us to distribute load between servers

Karta sterująca
Lighting control

Colors or effects is sent to controller in a given location via Socket.io software. Each of us has different proprietary controllers, but whole thing is based on client's code written in Node.js programming language. For lighting we use: cards with relays, PWM brightness controllers, programmable pixel diodes, LED strips. Small Raspberry Pi computer or an ESP8266/ESP32 microcontroller is most often useful for implementation. WLED or ESP Easy software is installed on the microcontroller.

Used technologies:

  • Socket.io - provides two-way communication between user on website, our application and controllers in locations
  • Redis - is a fast database, it exchanges information about current light settings
  • WLED - open-source software for ESP8266/ESP32 microcontrollers - used to control programmable LEDs
  • ESPEasy - open-source software for ESP8266/ESP32 microcontrollers - used for PWM control of RGB LEDs and relay cards
  • Raspberry Pi - single board computer - usually acts as a bridge between the site and lights/LEDs

Karty graficzne w serwerze
Camera video delivery

We use WebRTC and HTTP Live Streaming technologies to deliver camera footage to users. Picture from cameras are delivered to the server with graphics cards. On server, image is processed into different quality streams. OvenMediaEngine software allows us to deliver the live view with the lowest possible delay (usually 2 seconds).
As cameras, we usually use consumer surveillance IP cameras, which are calibrated to ensure the highest possible image quality.

Used technologies:

ELK Kibana
Monitoring

Our entire infrastructure and application are monitored and tested continuously. Availability monitoring is provided by Uptime Kuma, Uptime Robot, Zabbix and LibreNMS. We use Elasticsearch software to monitor application events. Hardware and performance parameters is collected by Zabbix.

Used technologies:

Have additional questions? Want to know more?

See also our "Authors"

Join to our community!

Facebook Fanpage

Go to Facebook

Text and voice chat on Discord

Join on Discord