Skip to content

exelban/JAM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JAM

JAM

Just Another Monitoring

Description

JAM is a simple monitoring tool application. It allows you to monitor the status of your services and applications by sending HTTP requests to them and checking the response status code. The main idea is to have a simple and easy-to-use monitoring tool with minimalistic and nice design.

For now it is in the development stage and has a lot of features to be implemented. Such as proper alerts, more monitoring options, events history and more.

Features

  • 90 days history
  • groups of hosts
  • alerts (in progress)
  • events history (in progress)
  • multiple databases support (in progress, only bolt and in-memory for now)

Installation

Application is available as a Docker image. You can pull it from the Docker Hub or GitHub Registry:

Also you can build it from the source code or use the precompiled binaries. But docker is the easiest way to run the application. And it is recommended to use it.

Docker

docker run -d -v ./jam.yaml:/app/config.yaml -v ./data/:/app/data exelban/jam:latest

Docker Compose

services:
  jam:
    image: exelban/jam:latest
    container_name: jam
    restart: unless-stopped
    volumes:
      - ./jam.yaml:/app/config.yaml
      - ./data:/app/data
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"
    healthcheck:
      test: "curl -f http://localhost:8822/healthz || exit 1"
      interval: 10s
      timeout: 10s
      retries: 3
      start_period: 3s

Precompiled binaries

You can download the precompiled binaries from the releases page.

Build from source

To build the application from the source code you need to have Go installed on your machine.

git clone https://github.com/exelban/JAM.git
cd JAM
go build -o jam cmd/jam/main.go
./jam

Configuration

The application is configured via JSON or YAML file. You can find the example of the configuration file in the repository. You can set the path to the configuration file via the --config-path flag (CONFIG_PATH env) or by default it will look for the config.yaml file in the current directory.

License

MIT License