Re: Dada Mail on nginx

 
From: "Moshe Katz" <moshe@PROTECTED>
In-Reply-To: (no subject)
Date: September 16th 2013
Someone noted that I did not include a sample nginx configuration file for this, so here it is:

server {
        server_name lists.example.com;
        root /home/example.com/sites/lists.example.com;

        location ~* \.psgi$ {
                return 403;
        }

        location ~* \.cgi$ {
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Port 443;
                proxy_pass http://localhost:5000;
        }
}

Note also that the "app.psgi" script in my last message should go in the same folder as dada mail itself.

Moshe


--
Moshe Katz
-- moshe@PROTECTED
-- +1(301)867-3732


On Mon, Sep 16, 2013 at 11:29 AM, Moshe Katz <moshe@PROTECTED> wrote:
Hello All,

I just wanted to share my experience getting Dada Mail to work on nginx.  Nginx does not have built in support for traditional CGI applications (of which Dada Mail is one), so it won't work out of the box.

To make a very long story short, here is the Plack wrapper script to use:

use Plack::App::CGIBin;
use Plack::Builder;
use Path::Class qw( file );

my $path = file($0)->absolute->dir;

my $app = Plack::App::CGIBin->new(root => $path, exec_cb => sub { 1 } )->to_app;
builder {
    mount "/" => $app; # This will run the app in the root of the web site; change as necessary.
};

You will, of course, need to install the appropriate Plack CPAN modules (and be prepared to wait a very long time for the install to complete).

I used Starman to run the Plack script, but you can use any Plack-compatible server that you want.

Note that the "exec_cb => sub { 1 }" is extremely important.  Without that line, you will have some things that work, but most won't, because the application will think that it is running as the folder name it is in, instead of as the CGI script itself. (In other words, "self_url" will return "http://lists.example.com/" instead of "http://lists.example.com/dada/mail.cgi".)

Note also that I'm not done setting up and testing yet, so don't rely on this for production (yet).

Moshe


Post: mailto:dadadev@PROTECTED

Unsubscribe »

  • This mailing list is a public mailing list - anyone may join or leave, at any time.
  • This mailing list is a group discussion list (unmoderated)
  • Start a new thread, email: dadadev@dadamailproject.com

This is the developer discussion mailing list for Dada Mail.

If you are just looking for support Dada Mail, consult the message boards at:

https://forum.dadamailproject.com

Documentation for Dada Mail:

https://dadamailproject.com/d

Specifically, see the Error FAQ:

https://dadamailproject.com/d/FAQ-errors.pod.html

To post to this list, send a message to:

mailto:dadadev@dadamailproject.com

All subscribers of this list may post to the list itself.

Topics that are welcome:

  • Constructive critiques on the program (I like, "x", but, "y" needs some work - here's an idea on how to make this better...)
  • Bug/Error reports
  • Bug fixes
  • Request For Comments on any changes to the program
  • Help customizing Dada Mail for your own needs
  • Patches
  • Language Translations
  • Support Documentation/Doc editing, FAQ's, etc.
  • Discussion of any changes that you would like to be committed to the next version of Dada Mail -

Dada Mail is on Github:

https://github.com/justingit/dada-mail/

If you would like to fork, branch, send over PRs, open up issues, etc.

Privacy Policy:

This Privacy Policy is for this mailing list, and this mailing list only.

Email addresses collection through this mailing list are used explicitly to work within this email discussion list.

We only collect email addresses through our Closed-Loop Opt-In system.

We don't use your email address for any other purpose.

We won't be sharing your email address with any other entity.

Unsubscription can be done at any time. Please contact us at: justin@dadamailproject.com for any help regarding your subscription, including removal from the mailing list.

All mailing list messages sent from us will include a subscription removal link, which will allow you to remove yourself from this mailing list automatically, and permanently.

All consent to use your email address for any other purpose stated at the time of the mailing list subscription will also be revoked upon mailing list removal.