Skip to content

Server component for Skybrush, an open-source drone light show and drone swarm management framework

License

Notifications You must be signed in to change notification settings

skybrush-io/skybrush-server

Repository files navigation

Skybrush Server

Skybrush Server is the server component behind the Skybrush ecosystem; it handles communication channels to drones and provides an abstraction layer on top of them so frontend apps (like Skybrush Live) do not need to know what type of drones they are communicating with.

The server also provides additional facilities like clocks, RTK correction sources, weather providers and so on. It is extensible via extension modules that can be loaded automatically at startup or dynamically while the server is running. In fact, most of the functionality in the server is implemented in the form of extensions; see the flockwave.server.ext module in the source code for the list of built-in extensions. You may also develop your own extensions to extend the functionality of the server.

Installation

  1. Install poetry. poetry will manage a separate virtual environment for this project to keep things nicely separated. You won't pollute the system Python with the dependencies of the Skybrush server and everyone will be happier. See https://python-poetry.org/ for installation instructions.

  2. Check out the source code of the server.

  3. Run poetry install to install all the dependencies and the server itself in a separate virtualenv. The virtualenv will be created in a folder named .venv in the project folder.

  4. Run poetry run skybrushd to start the server.

Documentation

License

Skybrush Server is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Skybrush Server is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.