Serverboards is a microservices based service monitoring, alerting and management system.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend
cli
debian
docs
etc
frontend
plugins
scripts
.dockerignore
.gitignore
.gitlab-ci.yml
Dockerfile
LICENSE
Makefile
README.md

README.md

Serverboards

https://serverboards.io

Serverboards is a Service Integration Platform that eases the integration of other services.

It provides all the plumbing necessary to interconnect your services.

Example use cases

For example you can connect to your WordPress database, to Google Analytics, and to MailChimp to do a detailed tracking of your mailing campaings on our Dashboards.

Or automate some webhook connection to the integrated messaging system and google drive so all contact requests are archived and sent to the proper actors.

Serverboards makes it easy for you to control your IT Infrastructure from a single dashboard. Servers, virtual machines, websites, databases and more can be monitored or managed in an easy way.

Main Features

  • Services
  • Dashboards
  • Rules
  • Notifications
  • Issues
  • Screens
  • Plugins and Marketplace: 25 packages and counting

Services: Connect to all your services

Serverboards main element are services. Once you have configured the access to your services, you can start using them at the dashboards, the screens or the rules.

Just by configuring the services you get automatic monitoring and an issue will be generated and the users notified when the service is no longer accessible. Depending on the service it may mean different things, as DNS could not be resolved, the SSL certificate expired, or the user and password changed. In any case you will know and be able to take corrective measures.

Dashboards: Monitor the hidden information of your KPIs

Dashboards are windows into the data of your infrastructure. It may be a purely technical one for IT management, or it may be a Marketing oriented with data from your Google Analytics and Facebook Ads.

We use our own USQ technology that allows us to merge information from many sources, for example getting the visits from Google Analytics, and merging via the URL to your WordPress installation to show which of your tags are more popular.

Universal Service Query is our technology that merges data from many sources and can be used form a single SQL query. And creating the data extractors is a 10 lines of code exercise for the developers.

Rules: Automated work flows made easy with our GUI-based rules composer

Easily monitor your server performance in real time, manage your virtual machines and automate most common infrastructure issues.

Notifications: Get notified of the important events wherever you want

Serverboards is super extensible. Not extensible, super extensible. Everything can be expanded and built upon. Notifications is no less and its possible to create components that notify your users however you want.

Of course there is a built in email notification system, and there is a Telegram one on the Marketplace.

Issues: Built in Issues and Logs with alerting

If something happens, you can access the traces in our in-built logging solution and identify what caused the error.

There is a log per service that let you see all important actions performed and when, by you or by packages. All modifications and uses are properly registered. And errors give meaningful descriptions to be able to diagnose and fix them.

Screens: Extend Serverboards in ways nobody thought about

For example Serverboards comes with an embedded SSH terminal. This way console actions can be performed from Serverboards itself to troubleshoot faster.

There are many other screens available: Spice Remote Desktop, Simple backups, Cloud Management and many others.

Using screens you can use all Serverboards security, users, and connectivity to create custom back office applications to manage your businesses.

Packages and Marketplace: Plugin based

Serverboards is based on simple to develop plugins that do all the small tasks like checking if a service is UP, gathering the information and showing information to the user, letting Serverboards Core do all the orchestration and heavy work.

Starting with 18.10 we created a Marketplace that allows users to install new packages from Serverboards itself in the place where they could need it. For example, if they are adding services, it is possible to select them from the marketplace and install them directly from the service add screen.

In time we want to show developer created applications and packages that can benefit from being in the integration platform, that access all the data they need, and more importantly that are secure.

There is a full simple to use API for development. Once you start using it, you will not believe how easy is to just center on your problem, and forget about all the scaffolding normally necessary to create this kind of integrations.

Get started!

Install and Download

Serverboards can be downloaded to be used on Ubuntu 18.04 (and maybe others) at https://serverboards.io/downloads/

There are full instructions about how to start and first steps.

If you are not using Ubuntu 18.04, please contact us or try the developer installation instructions.

Develop!

Collaborate / Develop with Serverboards

Serverboards is licensed under the Apache 2 license, and plugins can be developed by third parties using any license. Please refer to https://serverboards.io/developers/ for more information.

Serverboards uses the Elixir Language for the backend, Python for plugins and JavaScript/React for the frontend and plugins.

To develop plugins we recommend to use Python and JavaScript/React, but basic Python and/or HTML + JS should be enough depending on what you want to achieve. Contact us if you have any idea and need help to make it work!

Compiling and running the server

If you plan to develop Serverboards core itself, first install all prerequisites:

  • Erlang 20.x
  • Elixir 1.6.x

Check scripts/setup-ubuntu-1804.sh as a guide on what to install and how. It works for Ubuntu 18.04, but should work for others.

Then compile it once to ensure you have all the required dependencies:

make compile

And then you may run it executing these commands in two different terminals:

Terminal 1:

cd backend
iex -S mix

Terminal 2:

cd frontend
npm start

Now you can connect to the backend at http://localhost:8080 or at the running webpack server at http://localhost:3000 .

If you connect to the webpack server it is necessary to force the backend URL so that the WebSocket can connect. Open the developer console at the browser (F12 or Crtl+Shift+C), and write:

localStorage.servername="http://localhost:8080"

Alternatively you can create the release with make release and run it as rel/serverboards/bin/serverboards foreground.

First time user

The easiest way to have a first time user is to use

export SERVERBOARDS_DATABASE_URL="postgresl://serverboards:serverboards@localhost/serverboards"
cli/s10s-user.py create username
cli/s10s-user.py passwd username password

Plugin development workflow

To develop new plugins create a directory or link to your source at $SERVERBOARDS_PATH/plugins, which by default is on installed systems at /opt/serverboards/share/serverboards/plugins/. If you use the development version, it would be at ~/.local/serverboards/plugins/.

Plugin manifest is normally reloaded automatically upon changes, and commands at command restart. If it is necessary to force a command execution, you can restart full Serverboards (sudo service serverboards restart or restart backend process).