Owl is an open-source self-hosted solution for website monitoring and status report.
Owl comprises 3 Go modules and 1 React application:
- An web server that handles all the data in and out of the database.
- An agent that can check HTTP endpoints and post the results to the server.
- An API library for common types.
- A web client for the dashboard.
You'll need docker-compose 1.23+. Simply run:
$ docker-compose up
Located at ./web.
The Server is a web service written in Go using Echo and backed by PostgreSQL 11. The container will watch for source file changes and automatically rebuild.
Located at ./agent.
The Agent is a Go package designed to be invoked from a standalone Go program. The container will watch for source file changes and automatically run its test suite.
It also includes three sub-packages:
- ./agent/client a decorated HTTP client ready to talk with the Owl server.
- ./agent/lambda wraps the client to run on Amazon Lambda.
- ./agent/cli wraps the client to be ran from a CLI.
The client is a React application controlled by create-react-app.
$ git subtree push --prefix web heroku master
MIT License © 2019 Corenzan