Horust GHA Build Status MIT licensed

Horust is a supervisor system written in rust and designed to be run in containers.

Table of contents

Goals:

Status

At this point, this should be considered Alpha software.

Usage

  1. Create a directory with your services. /etc/horust/services/. An example service: ```toml

    mycoolapp.toml:

path = "/usr/bin/mycoolapp.sh" restart-strategy = "always" start-delay = "10s" start-after = "my-other-service.toml" ```

Check the documentation for a complete reference. You can also bootstrap the creation of a new service, by using horust --sample-service > new_service.toml.

```toml name = "my-cool-service" command = "/bin/bash -c 'echo hello world'" working-directory = "/tmp/" start-delay = "2s" start-after = ["another.toml", "second.toml"] user = "root"

[restart] strategy = "never" backoff = "0s" attempts = 0

[healthiness] httpendpoint = "http://localhost:8080/healthcheck" filepath = "/var/myservice/up"

[failure] exit_code = [ 1, 2, 3] strategy = "ignore"

[termination] signal = "TERM" wait = "10s" ```

Horust configuration

Horust itself can be tuned and modified by using the following shiny parameters: ```toml

Default time to wait after sending a sigterm to a process before sending a SIGKILL.

timeout-before-sigkill = "10s" ```

Contributing

Thanks for considering contributing to horust! Github Issue are a good place for getting started. You can also search the code for TODOs.

If you're planning to add new features, it's super awesome but please open an issue describing your proposal before you start working on it.

Have a look on DEVELOPMENT.md for more info on how to get started hacking on horust.

License

horust is provided under the MIT license. Please read the attached license file.