Need help with monexec?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

reddec
130 Stars 21 Forks MIT License 90 Commits 6 Opened issues

Description

Light supervisor on Go (with optional Consul autoregistration)

Services available

!
?

Need anything else?

Contributors list

# 255,658
supervi...
deb
golang
HTML
68 commits
# 470,533
Go
supervi...
swagger
openapi
2 commits
# 263,760
Shell
supervi...
hugo-bl...
HTML
1 commit

Monexec

Mx

**MONitoring *EXE*cutables

GitHub release license Snap Status paypal

It’s tool for controlling processes like a supervisord but with some important features:

  • Easy to use - no dependencies. Just a single binary file pre-compilled for most major platforms
  • Easy to hack - monexec can be used as a Golang library with clean and simple architecture
  • Integrated with Consul - optionally, monexec can register all running processes as services and deregister on fail
  • Optional notification to Telegram
  • Supports gracefull and fast shutdown by signals
  • Developed for used inside Docker containers
  • Different strategies for processes
  • Support additional environment files
  • Support template-based email notification
  • Support HTTP notification
  • REST API (see swagger.yaml)
  • Web UI (if REST API enabled)

Buy me a coffe on Patreon

screen1 screen2

Installing

Get it from the Snap Store

go get -v -u github.com/reddec/monexec/...

recommended way is snap

Documentation

Usage: https://reddec.github.io/monexec/

API: Godoc

Examples

See documentation for details https://reddec.github.io/monexec/

Run from cmd

monexec run -l srv1 --consul -- nc -l 9000

Run from config

monexec start ./myservice.yaml

Notifications

Add notification to Telegram

telegram:
  # BOT token
  token: "123456789:AAAAAAAAAAAAAAAAAAAAAA_BBBBBBBBBBBB"
  services:
      # services that will be monitored
      - "listener2"
  recipients:
      # List of telegrams chat id
      - 123456789
  template: |
    *{{.label}}*
    Service {{.label}} {{.action}}
    {{if .error}}⚠️ *Error:*  {{.error}}{{end}}
    _time: {{.time}}_
    _host: {{.hostname}}_

Email

Add email notification

email:
  services:
    - myservice
  smtp: "smtp.gmail.com:587"
  from: "[email protected]"
  password: "xyzzzyyyzyyzyz"
  to:
    - "[email protected]"
  template: |
    Subject: {{.label}}

Service {{.label}} {{.action}}

HTTP

Add HTTP request as notification

http:
  services:
    - myservice
  url: "http://example.com/{{.label}}/{{.action}}"
  templateFile: "./body.txt"

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.