use Modern::Perl;
-use lib("/usr/share/koha/lib");
-use lib("/usr/share/koha/lib/installer");
-
use Plack::Builder;
use Plack::App::CGIBin;
use Plack::App::Directory;
use Plack::App::URLMap;
+use Plack::Request;
use Mojo::Server::PSGI;
# Pre-load libraries
use C4::Boolean;
-use C4::Branch;
use C4::Koha;
use C4::Languages;
use C4::Letters;
use Koha::Cache::Memory::Lite;
use Koha::Database;
use Koha::DateUtils;
+use Koha::Logger;
use CGI qw(-utf8 ); # we will loose -utf8 under plack, otherwise
{
};
}
+my $home = $ENV{KOHA_HOME};
my $intranet = Plack::App::CGIBin->new(
- root => '/usr/share/koha/intranet/cgi-bin'
+ root => $ENV{DEV_INSTALL}? $home: "$home/intranet/cgi-bin"
)->to_app;
my $opac = Plack::App::CGIBin->new(
- root => '/usr/share/koha/opac/cgi-bin/opac'
+ root => $ENV{DEV_INSTALL}? "$home/opac": "$home/opac/cgi-bin/opac"
)->to_app;
my $apiv1 = builder {
my $server = Mojo::Server::PSGI->new;
- $server->load_app('/usr/share/koha/api/v1/app.pl');
+ $server->load_app("$home/api/v1/app.pl");
$server->to_psgi_app;
};
-builder {
+Koha::Logger->_init;
+builder {
enable "ReverseProxy";
enable "Plack::Middleware::Static";
- mount '/opac' => $opac;
- mount '/intranet' => $intranet;
- mount '/api/v1/app.pl' => $apiv1;
+ # + is required so Plack doesn't try to prefix Plack::Middleware::
+ enable "+Koha::Middleware::SetEnv";
+ enable "+Koha::Middleware::RealIP";
+
+ mount '/opac' => builder {
+ enable 'Log4perl', category => 'plack-opac';
+ enable 'LogWarn';
+ $opac;
+ };
+ mount '/intranet' => builder {
+ enable 'Log4perl', category => 'plack-intranet';
+ enable 'LogWarn';
+ $intranet;
+ };
+ mount '/api/v1/app.pl' => builder {
+ enable 'Log4perl', category => 'plack-api';
+ enable 'LogWarn';
+ $apiv1;
+ };
};