Nginx + git + trac (without Apache)?


#1

Hi -

I’ve already installed nginx + php-fpm + xcache on a VPS (virual private
server) with 500MB RAM and now I want to install a distributed revision
control system (eg, git) and a bug/issue tracking system (eg, trac). Can
I run nginx + git + trac without installing Apache?

Most of the work I’d be doing would involve building Drupal and Rails
sites, plus I’d sometimes work on other projects involving
less-well-known “formal” languages where I’d be collaborating with
students in other countries - so it sounds like I need a distributed /
decentralized revision control system such as git, rather than a
centralized system like svn. And if I can deploy Rails using thin
(rather than Apache) - then maybe I don’t need Apache at all?

I found some posts which seem to indicate that people can use git with
just nginx and without Apache - but maybe lacking some features
involving WebDAV:

http://notes.xiaoka.com/2008/04/13/git-repository-over-http-webdav-with-nginx/
http://forum.slicehost.com/comments.php?DiscussionID=1144

And here’s some posts which seem to indicate that people can use trac
with just nginx - but in the post from edgewall.org below it also
mentions “access to subversion via Apache mod_dav_svn” and I can’t
figure out they’re saying I need Apache installed, or I could
optionally have it installed:

http://trac.edgewall.org/wiki/TracNginxRecipe
http://www.mail-archive.com/removed_email_address@domain.invalid/msg06842.html

My instinct tells me that nginx + git + trac without Apache would be a
lightweight and fast combo but I’m hesitant to try doing this until
someone actually confirms that it makes sense.

  • Stefan S.

#2

Further googling…

Somebody has posted an nginx.conf file to use trac behind nginx:

http://www.mail-archive.com/removed_email_address@domain.invalid/msg06842.html

Elsewhere, somebody says that the lack of support for PROPFIND in the
nginx WebDAV module is a problem, but then there appear to be a couple
of solutions for this:

“Currently this is a showstopper. nginx http_dav_module does not support
PROPFIND method yet, and git-http-push requires it.”

http://notes.xiaoka.com/2008/04/13/git-repository-over-http-webdav-with-nginx/

(1) Here’s one person’s approach: “I implemented PROPFIND and
LOCK/UNLOCK stubs in PHP as they are not natively implemented in the
nginx WebDAV module.”

https://labs.mozilla.com/forum/comments.php?DiscussionID=1550

(2) And here’s an approach from Igor S.: “nginx in proxy mode passes
all methods as is. So mod_svn behind nginx should work.”

http://osdir.com/ml/web.nginx.english/2007-01/msg00008.html

OK, forgive me if this a dumb question but… does mod_svn only run as
part of Apache? If mod_svn can run alone, then it sounds like Igor’s
proposed a solution here to allow git to run behind nginx and support
WebDAV PROPFIND.

But this is all new to me, so any advice would be appreciated.

  • Stefan S.