The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dezi::MultiTenant - multiple Dezi::Server applications in a single instance

SYNOPSIS

 % dezi --server-class Dezi::MultiTenant --dezi-config myconfig.pl
 
 # or in your own Plack app
 
 use Plack::Runner;
 use Dezi::MultiTenant;
 
 my $multitenant_config = { 
   'foo' => Dezi::Config->new(\%foo_opts),
   'bar' => Dezi::Config->new(\%bar_opts),
 };
 
 my $runner = Plack::Runner->new();
 my $app = Dezi::MultiTenant->app( $multitenant_config );
 $runner->run($app);
 
 # /foo mounts a Dezi::Server
 # /bar mounts a Dezi::Server
 

DESCRIPTION

Dezi::MultiTenant provides a simple way to mount multiple Dezi::Server applications in a single Plack app using a single configuration structure.

Dezi::Server allows you to serve multiple indexes, but all the indexes must have identical schemas.

Dezi::MultiTenant allows you to server multiple indexes per server, and each server can have a different schema, as well as individual administration, logging, unique configuration, etc.

METHODS

app( config )

Returns Plack $app instance via Plack::Builder.

config should either be a hashref with keys representing each Dezi::Server's mount point, or a Dezi::MultiTenant::Config object. By default the root '/' mount point is reserved for the Dezi::MultiTenant->about() method response. Hash keys should have the '/' prefix (same syntax as Plack::App::URLMap).

about( plack_request, loaded )

Returns Plack::Response-like array ref describing the multi-tenant application.

AUTHOR

Peter Karman, <karman at cpan.org>

BUGS

Please report any bugs or feature requests to bug-dezi-multitenant at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Dezi-MultiTenant. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Dezi::MultiTenant

You can also look for information at:

COPYRIGHT & LICENSE

Copyright 2013 Peter Karman.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.