From 9c8e361c7270da7cb665257e01d221e46bbf00a3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 7 Mar 2016 08:10:57 +0000 Subject: examples/repobrowse.psgi: modernize w.r.t public-inbox.psgi We want to be consistent between the standard PSGI examples to lower the learning curve. --- examples/repobrowse.psgi | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) (limited to 'examples') diff --git a/examples/repobrowse.psgi b/examples/repobrowse.psgi index 6e7a591b..d68d1255 100644 --- a/examples/repobrowse.psgi +++ b/examples/repobrowse.psgi @@ -1,22 +1,45 @@ #!/usr/bin/perl -w -# Copyright (C) 2015 all contributors +# Copyright (C) 2015-2016 all contributors # License: AGPL-3.0+ -# Note: this is part of our test suite, update t/plack.t if this changes +# +# standalone repobrowse example PSGI +# +# Note: this is part of our test suite, update t/*.t if this changes # Usage: plackup [OPTIONS] /path/to/this/file +# A startup command for development which monitors changes: +# plackup -I lib -o 127.0.0.1 -R lib -r examples/repobrowse.psgi use strict; use warnings; use PublicInbox::Repobrowse; use Plack::Builder; -my $have_deflater = eval { require Plack::Middleware::Deflater; 1 }; my $repo_browse = PublicInbox::Repobrowse->new; builder { - enable 'Plack::Middleware::Chunked'; - if ($have_deflater) { + enable 'Chunked'; + eval { enable 'Deflater', content_type => [ 'text/html', 'text/plain', 'application/atom+xml' ]; - } + }; + $@ and warn +"Plack::Middleware::Deflater missing, bandwidth will be wasted\n"; + + # Enable to ensure redirects and Atom feed URLs are generated + # properly when running behind a reverse proxy server which + # sets X-Forwarded-For and X-Forwarded-Proto request headers. + # See Plack::Middleware::ReverseProxy documentation for details + eval { enable 'ReverseProxy' }; + $@ and warn +"Plack::Middleware::ReverseProxy missing,\n", +"URL generation for redirects may be wrong if behind a reverse proxy\n"; + + # Optional: Log timing information for requests to track performance. + # Logging to STDOUT is recommended since public-inbox-httpd knows + # how to reopen it via SIGUSR1 after log rotation. + # enable 'AccessLog::Timed', + # logger => sub { syswrite(STDOUT, $_[0]) }, + # format => '%t "%r" %>s %b %D'; + enable 'Head'; sub { $repo_browse->call(@_) } } -- cgit v1.2.3-24-ge0c7