[Pulp-dev] Using Gunicorn and Static Files

Brian Bouterse bbouters at redhat.com
Mon Nov 26 15:52:52 UTC 2018

This came up again in the channel today, and we remembered we wanted to
serve static content natively. I filed this work at the link below to add
it to the next sprint.


On Mon, Oct 15, 2018 at 1:08 PM Brian Bouterse <bbouters at redhat.com> wrote:

> tl;dr: let's adopt Whitenoise as the static solution for pulp3. If anyone
> is -1 on this, please reply.
> Really this is a choice between (a) having all users struggle through a
> STATIC_FILES config or (b) having users who plan to use Nginx or Apache
> struggle through it. The less struggle the better I think, so let's adopt
> Whitenoise as the default. It would be a nice batteries included default to
> provide which I think is worth the downside of picking up Whitenoise as a
> Pulp3 dependency. Note most users will still want to use Nginx or Apache
> because Whitenoise can only serve files that exist when it is started. What
> you've shown me though is that there is a group for (a) also.
> @ehelms would you be willing to make a PR for this change, a corresponding
> issue, and also include the docs updates. I can provide review and testing.
> If anyone is -1 on this please reply.
> On Wed, Oct 10, 2018 at 3:48 PM Eric Helms <ehelms at redhat.com> wrote:
>> I tested this method out and it did work with gunicorn. The only ugly
>> part is having to re-define the MIDDLEWARE entirely. I couldn't find a way
>> to simply just add the middleware I wanted in the spot I needed it.
>> Brian any thoughts on supporting this out of the box? I'm happy to do the
>> work but I'd like to know it's desired.
>> On Tue, Oct 9, 2018 at 9:11 AM Patrick Creech <pcreech at redhat.com> wrote:
>>> On Wed, 2018-10-03 at 16:28 -0400, Eric Helms wrote:
>>> > Howdy,
>>> >
>>> > When switching a deployment over to use gunicorn, DEBUG = TRUE for
>>> serving static files stopped working. I endeavored to follow the production
>>> install method using collectstatic. This required
>>> > setting STATIC_ROOT which appeared to not be set by default.
>>> >
>>> >  1) Is there a default value for STATIC_ROOT I can set for
>>> collectstatic?
>>> >  2) Can gunicorn serve these static files for me?
>>> >
>>> > I realize the documentation calls for serving static files via a
>>> webserver like nginx or Apache. However, that becomes a bit overkill in
>>> something like a container deployment. If I run a separate
>>> > webserver, then I would run it as a separate container and have to
>>> mount the static files volume. This felt like overkill to me to have a
>>> persistent volume to store and mount static files instead of
>>> > the application server providing them for the application.
>>> >
>>> > Any thoughts and help are appreciated.
>>> >
>>> > Eric
>>> Eric,
>>> I got curious and took a look into your situation.
>>> I came across this project, suggested to be used by heroku, to achieve
>>> the goal you are working towards: http://whitenoise.evans.io/en/stable/
>>> It comes with django middleware support out of the box, so all you would
>>> need to do is to 'pip install whietnoise' and edit the MIDDLEWARE
>>> collection in the settings.py to include it,  You want it to
>>> load AFTER SecurityMiddleware, but BEFORE everything else, so make it
>>> the second line, here:
>>> https://github.com/pulp/pulp/blob/master/pulpcore/pulpcore/app/settings.py#L91
>>> For your deployment model, it shouldn't be hard to apply a patch to the
>>> code at a stage in your container process to inject this middleware into
>>> the settings.py
>>> Otherwise, it's the standard 'staticfiles' process for django,  They
>>> have it simplified in step 1 here:
>>> http://whitenoise.evans.io/en/stable/django.html
>> _______________________________________________
>> Pulp-dev mailing list
>> Pulp-dev at redhat.com
>> https://www.redhat.com/mailman/listinfo/pulp-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20181126/2bc395f9/attachment.htm>

More information about the Pulp-dev mailing list