# NAME

App::Ringleader - Proxy for sproradically-used web application

# VERSION

version 0.1.0

# SYNOPSIS

    use App::Ringleader;

    App::Ringleader->new( conf => 'ringleader.yml' )->run;

# DESCRIPTION

Ringleader is a proxy that will wake up psgi applications upon request 
and shut them down after a period of inactivity. It's meant to provide a
middle-ground between the slowliness of CGI and the constant resource
consumption of plack applications for services that are not often used.

Typically, you'll use it via the `ringleader` script.

Ringleader relies on [Ubic](https://metacpan.org/pod/Ubic) to start and stop the services. For PSGI
applications, you probably want to define your services using
[Ubic::Service::Plack](https://metacpan.org/pod/Ubic::Service::Plack).

# CONFIGURATION FILE

The Ringleader configuration file is YAML-based, and looks like

    port: 3000
    inactivity_delay: 60
    services:
        techblog.babyl.ca:  webapp.techblog
        kittenwar.babyl.ca: webapp.kittenwar
    CHI:
        driver: FastMmap

## port

The port of the proxy. Defaults to _3000_.

## inactivity\_delay

The minimum time (in minutes) of inactivity before a service will be shut down.

Defaults to 60 minutes.

## services

The services Ringleader will monitor. Each service is configured via a
key/value pair. The key is the request's host, and the value is the 
<Ubic> service it related to.

## CHI

The arguments to pass to [CHI](https://metacpan.org/pod/CHI) to build the caching system used
by the service. If not provided, [CHI::Driver::FastMmap](https://metacpan.org/pod/CHI::Driver::FastMmap) will be used.

# SEE ALSO

[http://techblog.babyl.ca/entry/ringleader](http://techblog.babyl.ca/entry/ringleader) - The original blog entry

# AUTHOR

Yanick Champoux <yanick@babyl.dyndns.org> [![endorse](http://api.coderwall.com/yanick/endorsecount.png)](http://coderwall.com/yanick)

# COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Yanick Champoux.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
