From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 54C4A1F9FD; Tue, 23 Feb 2021 22:11:10 +0000 (UTC) Date: Tue, 23 Feb 2021 22:11:10 +0000 From: Eric Wong To: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= Cc: meta@public-inbox.org Subject: Re: Setup woes Message-ID: <20210223221110.GA2920@dcvr> References: <20210223154246.uso4tc2qf5bz6qym@pengutronix.de> <20210223200124.GA26348@dcvr> <20210223213117.52p5kmhqvtafbho5@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210223213117.52p5kmhqvtafbho5@pengutronix.de> List-Id: Uwe Kleine-König wrote: > Hello Eric, > > On Tue, Feb 23, 2021 at 08:01:24PM +0000, Eric Wong wrote: > > Uwe Kleine-König wrote: > > > 1) Import of older mails > > > I used Konstantin Ryabitsev script[1] to generate a directory of > > > mbob files. It's unclear to me how to easily import that into the > > > archive. Not knowing a better way, I'd put them all in a Maildir and > > > use public-inbox-watch to import them. Is there a nicer way? > > > > scripts/import_vger_from_mbox is probably the best maintained > > of the stuff in scripts for mass imports (it supports v2, unlike > > the rest of scripts/). > > Ah, this worked great. I missed these scripts because they are not > included in my public-inbox.deb. Cool. > > > 2) Apache configuration > > > I was able to setup Apache to serve individual archives but I fail > > > to get a list listing at the root. That is I can access the barebox > > > archive at http://lore.pengutronix.de/barebox/, but not the overview > > > of the archived lists at http://lore.pengutronix.de/. > > > > > > $ curl -D - http://lore.pengutronix.de/ > > > HTTP/1.1 404 Not Found > > > Date: Tue, 23 Feb 2021 15:31:54 GMT > > > Server: Apache/2.4.38 (Debian) > > > Expires: Fri, 01 Jan 1980 00:00:00 GMT > > > Pragma: no-cache > > > Cache-Control: no-cache, max-age=0, must-revalidate > > > Content-Length: 9 > > > Content-Type: text/plain > > > > > > Not Found > > > > You might need to configure publicinbox.wwwlisting to > > "all" or match=domain". See publicinbox.wwwlisting in > > public-inbox-config(5). > > I have this, with public-inbox-httpd I get a listing. Alright. It's good that -httpd alone works. Then Apache mod_proxy could be an option. > > The default behavior is to 404 since the listing is a > > fairly recent addition. > > > > > The Apache config looks as follows: > > > > > > > > > ServerName lore.pengutronix.de > > > > > > ServerAdmin webmaster@localhost > > > DocumentRoot /srv/www/lore.pengutronix.de/root > > > > > > > > > AllowOverride None > > > Require all granted > > > > > > > > > LogLevel debug > > > > > > ErrorLog ${APACHE_LOG_DIR}/error.log > > > CustomLog ${APACHE_LOG_DIR}/access.log combined > > > > > > Include conf-available/serve-cgi-bin.conf > > > Include mods-available/rewrite.load > > > SetEnv PI_DIR /home/lore/.public-inbox > > > SetEnv NO_SCRIPT_NAME 1 > > > > > > Options +ExecCGI > > > ScriptAlias /public-inbox.cgi "/usr/lib/cgi-bin/public-inbox.cgi" > > > > > > DirectoryIndex public-inbox.cgi > > > RewriteEngine On > > > RewriteCond %{REQUEST_FILENAME} !-f > > > RewriteCond %{REQUEST_FILENAME} !-d > > > > Perhaps it's the -d check? I haven't tested WwwListing with > > Apache. > > When I drop this I get: > > $ curl http://lore.pengutronix.de/ > > > 500 Internal Server Error > >

Internal Server Error

>

The server encountered an internal error or > misconfiguration and was unable to complete > your request.

>

Please contact the server administrator at > webmaster@localhost to inform them of the time this error occurred, > and the actions you performed just before this error.

>

More information about this error may be available > in the server error log.

>
>
Apache/2.4.38 (Debian) Server at lore.pengutronix.de Port 80
> > > :-) No idea, anything in Apache error logs? I'm far from an Apache expert. > > > RewriteRule ^.* /public-inbox.cgi/$0 [L,PT] > > > > > >
> > > > > > My guess is that the "SetEnv NO_SCRIPT_NAME 1" part doesn't work as > > > expected, but after some searching in the net I didn't find how to > > > do this properly. Actually, NO_SCRIPT_NAME is no longer used since we switched to Plack 5 years ago in commit 8968889e3ebfa09dd2c80fe8b917b83ac13ff356 (2016-02-25) The examples for Apache are badly out-of-date :< > > Not sure, I haven't used Apache in ages and some of the configs > > in examples/ are likely out-of-date and never tested with > > WwwListing. > > > > If you're not using public-inbox-httpd; then I strongly suggest > > using at least mod_perl (and not plain CGI) since Perl startup > > time is atrocious. > > I used CGI because I had the impression this was the easiest to get > running. Also ISTR that this isn't using cgi, but cgid, so the startup > time isn't that relevant. Will try with mod_perl next, maybe the script > name issue will go away then. OK, there's also Plack::Handler::Apache2 (but I don't know it well, either :x) > When I debugged that some time ago I saw that /public-inbox.cgi/ is part > of the request URL that is handled in the CGI. Also the footer of the > generated pages has: > > This inbox may be cloned and mirrored by anyone: > > git clone --mirror http://lore.pengutronix.de/public-inbox.cgi/barebox/0 barebox/git/0.git > > ... > > which is wrong. *shrug* If you figure it out, I'd much appreciate patches to fix examples and docs. The CGI/Apache stuff is largely ignored and forgotten since public-inbox-httpd came into existence. > > If you're dealing with large inboxes and supporting smart HTTP > > clone/fetch, then use public-inbox-httpd (which works with > > varnish, mod_proxy, or any other front-end proxy). > > Using Apache was one of the preconditions by the company's admin team, > but I will forward your information once I'm done with the setup and > when I hand over operation of lore.pengutronix.de to them. I understand; is Apache w/ mod_proxy + public-inbox-httpd acceptable? You'll probably want varnish or similar in front of -httpd, as well; in case something ends up at the top of HN, Slashdot, or whatever link aggregators are in fashion these days. I don't remember Apache well at all; I switched to nginx for reverse proxying in 2006 and then some obscure, Ruby+C thing in 2013 :> Fwiw, there'll probably be a combined -httpd/-imapd/-nntpd server someday, too, which should lead to memory savings. And transparent caching so Varnish won't be required. I'll probably drop the obscure Ruby+C thing for public-inbox-httpd at some point, too; once HTTP reverse proxy support is implemented; since public-inbox-httpd already has lightly-tested HTTPS support.