[Fixed]-How to avoid putting environment variables into multiple places with Django, nginx and uWSGI?

29👍

Here is the answer from uWSGI developers:

just place each of them (one per line) in a text file in the form

VAR=VALUE

then in uWSGI config

[uwsgi]
for-readline = yourfile
  env = %(_)
endfor =

This also works with yml config files:

  for-readline: filename
    env: %(_)
  endfor:

2👍

I use django-dotenv. Put your env vars in a file like .env inside your project, and then load it in manage.py and wsgi.py. No other config required. uwsgi and manage.py commands will work as expected, and all your env vars are stored in just one file.

1👍

Another approach is using configuration management systems such as Salt or Ansible.

With them one can create Jinja templates for both uWSGI and Django with {{ variables }} defined in one place.

Leave a comment