<div align="center">

# `ping`

Easily ping (wake) an idle Heroku App from slumber.

[![Build Status](](
[![contributions welcome](](


## Why?

We have _several_ demo/example/tutorial Apps deployed to Heroku.
Apps on the "free" tier go to sleep after **30 minutes** of inactivity.

In order to wake them,
we wrote a few lines of code that can be added to any
Elixir/Phoenix App and invoked as an image
in the `` of the project that links to the App.

We had implemented the "wake from sleep" endpoint
several times in our Heroku Apps,
most recently in our
After copy-pasting the code a couple of times,
we decided to make it a DRY reusable package
that we can use in our _next_ app(s)!

## What?

An easy way for us to wake our Heroku demo apps.

> Note: our use case for this module is "just in time" waking of Heroku dynos. <br />
If you need your "Free" Heroku app to be _always_ awake
or awake during specific times of day,
consider _combining_ the `ping` package with a CRON job.
You can use a _free_ service such as:
as described by [Mahdhi Rezvi]( in:

## Who?

This package is for anyone building
an Elixir/Phoenix app deployed to Heroku.

# How?

## 1. Installation

Install by adding `ping` to your list of dependencies in `mix.exs`:

def deps do
    {:ping, "~> 1.0.0"}

## 2. Create a `get /ping` Route in your `router.ex`

## 3. Create the `ping/2` Function in your Controller

You can either create a brand new controller,
or use an existing one if you prefer.  

## 4. Add a GIF to the `` of the Heroku App

Documentation available at
But there's really not much to it.