SnowFox

An opinionated, yet flexible, framework to run, manage, and monitor services.

Opinionated, yet flexible

SnowFox sometimes assumes how you will organise and manage your system but never which technologies you should use.

For example, SnowFox requires that you keep all configuration under version control but it does not care which VCS you use.

Not everything is supported though! Check out the relevant documentation to know what options are available for you.

Run what you like

The runnable unit in SnowFox it a service instance. Usually these are processes started on the node by SnowFox but it does not have to be like that.

Connectors are a way to start, stop and interact with instances whether these are processes, docker containers, or any other tool for which a connector is available.

Versioned to the core

SnowFox demands for a repository to load its configuration from. This will not only include the system configuration but also the definition files used to start services.

Having version controlled service definitions means that you can run multiple instances of the same service with different versions and/or configurations!

Easily extensible

Components add functionality to SnowFox (or other components). SnowFox's build system automatically detects and compiles components.

Through the provided API, components can implement new features, modify the behaviour of the existing system, and/or allow new tools/systems to be used with SnowFox.

Don't reinvent the wheel

SnowFox is not only open source itself, but it is built using other open source projects to achieve its goals without having to re-implement something that already exits.

This means:

  • Better stability: rely on used and trusted code.
  • Reusable services: for other applications in you system.
  • Easier to add features: because time is not spent creating reliable support tools or services.

Easy to start

SnowFox depends on some Open Source services in order to work. But since SnowFox's job is to run and manage services it would be nice if we did not have to manage these dependencies.

snow-fox-bootstrap is here to solve the problem. Using the same configuration repository, it ensures that the required services are up and running.

It does so while makeing it possible for SnowFox to detect those services so that when it starts, you can manage its dependencies through SnowFox itself!