healthchecks/templates/docs/self_hosted.md
2021-01-21 11:35:09 +02:00

2.1 KiB

Self-Hosted Healthchecks

Healthchecks is open-source, and is licensed under the BSD 3-clause license.

Rather than using the hosted service at https://healthchecks.io, you have the option to host an instance yourself.

The building blocks are:

  • Python 3.6+
  • Django 3
  • PostgreSQL or MySQL

Setting Up for Development

You can set up a development environment in a Python virtual environment on your local system to develop a new feature, write a new integration or test a bugfix.

The following instructions assume you are using a Debian-based OS.

  • Install dependencies:

      $ sudo apt-get update
      $ sudo apt-get install -y gcc python3-dev python3-venv
    
  • Prepare directory for project code and virtualenv. Feel free to use a different location:

      $ mkdir -p ~/webapps
      $ cd ~/webapps
    
  • Prepare virtual environment (with virtualenv you get pip, we'll use it soon to install requirements):

      $ python3 -m venv hc-venv
      $ source hc-venv/bin/activate
    
  • Check out project code:

      $ git clone https://github.com/healthchecks/healthchecks.git
    
  • Install requirements (Django, ...) into virtualenv:

      $ pip install wheel
      $ pip install -r healthchecks/requirements.txt
    
  • Create database tables and a superuser account:

      $ cd ~/webapps/healthchecks
      $ ./manage.py migrate
      $ ./manage.py createsuperuser
    

    With the default configuration, Healthchecks stores data in a SQLite file hc.sqlite in the checkout directory (~/webapps/healthchecks).

  • Run tests:

      $ ./manage.py test
    
  • Run development server:

      $ ./manage.py runserver
    

At this point, the site should now be running at http://localhost:8000.

To access Django administration site, log in as a superuser, then visit http://localhost:8000/admin/.

FIXME note about no email configuration, no sendalerts, and the devserver

Next Steps

Get the source code.

See Configuration for a list of configuration options.