=head1 NAME

PublicInbox::WWW - PSGI interface for public-inbox

=head1 SYNOPSIS

In your .psgi file:

	use PublicInbox::WWW;

	my $www = PublicInbox::WWW->new;
	builder {
		enable 'Head';
		mount '/inboxes' => sub { $www->call(@_) };
	};

=head1 DESCRIPTION

The PSGI web interface for public-inbox.

Using this directly is not needed unless you wish to customize
your public-inbox PSGI deployment or are using a PSGI server
other than L<public-inbox-netd(1)> (C<-netd>) /
L<public-inbox-httpd(1)> (C<-httpd>)

While this PSGI application should work with all PSGI/Plack web
servers such as L<starman(1)>, L<starlet(1)> or L<twiggy(1)>;
PublicInbox::WWW takes advantage of internal APIs of C<-netd>
and C<-httpd> to improve fairness when serving large responses
for thread views, mbox downloads, and git clones.

=head1 ENVIRONMENT

=over 8

=item PI_CONFIG

Used to override the default "~/.public-inbox/config" value.

=back

=head1 CONTACT

Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>

The mail archives are hosted at L<https://public-inbox.org/meta/>
and L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>

=head1 COPYRIGHT

Copyright (C) all contributors L<mailto:meta@public-inbox.org>

License: AGPL-3.0+ L<http://www.gnu.org/licenses/agpl-3.0.txt>

=head1 SEE ALSO

L<http://plackperl.org/>, L<Plack>, L<public-inbox-netd(1)>,
L<public-inbox-httpd(1)>
