Installation¶
Here’s the installation instructions for Enfix.
Assumptions:
Ubuntu 13.04
We will be using nginx as the web server, and UWSGI as the adapter. Apache and modwsgi are also possible, but not described here.
apt-get install nginx uwsgi python2.7 python2.7-dev python-virtualenv mongodb uwsgi-plugin-python \
libjpeg62 libpng3 libjpeg62-dev libpng12-dev zlib1g-dev libfreetype6 libfreetype6-dev
cd /home
mkdir -p sites/venv/
cd sites
# Unzip Enfix packages here.
virtualenv venv/gglms_api
source venv/gglms_api/bin/activate
cd gglms_api
pip install -r requirements.txt
# Make a prod.py config.
python setup_site.py <domain_prefix>
cp wsgi.wsgi wsgi_config.py
# Create /etc/nginx/sites-available/gglms_api
ln -s /etc/nginx/sites-available/gglms_api /etc/nginx/sites-enabled/gglms_api
# Create /etc/uwsgi/apps-available/gglms_api.xml
ln -s /etc/uwsgi/apps-available/gglms_api.xml /etc/uwsgi/apps-enabled/gglms_api.xml
service uwsgi restart
service nginx restart
cd ..
virtualenv venv/gglms_ui
source venv/gglms_ui/bin/activate
cd gglms_ui
pip install -r requirements.txt
# Make a settings_local.py config.
python setup_site.py <domain_prefix>
cp wsgi.wsgi wsgi_config.py
# Create /etc/nginx/sites-available/gglms_ui
ln -s /etc/nginx/sites-available/gglms_ui /etc/nginx/sites-enabled/gglms_ui
# Create /etc/uwsgi/apps-available/gglms_ui.xml
ln -s /etc/uwsgi/apps-available/gglms_ui.xml /etc/uwsgi/apps-enabled/gglms_ui.xml
service uwsgi restart
service nginx restart
/etc/nginx/sites-available/gglms_api:
server {
listen 80;
server_name <prefix>.api.enfixlp.com;
location / {
uwsgi_pass unix:///var/run/uwsgi/app/gglms_api/socket;
include uwsgi_params;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param SERVER_SOFTWARE nginx/$nginx_version;
}
location /static {
root /home/sites/gglms_api/;
}
}
/etc/uwsgi/apps-available/gglms_api.xml:
<uwsgi>
<plugins>python</plugins>
<socket>/var/run/uwsgi/app/gglms_api/socket</socket>
<pythonpath>/home/sites/gglms_api/</pythonpath>
<virtualenv>/home/sites/venv/gglms_api/</virtualenv>
<module>wsgi_config:application</module>
<master/>
<processes>4</processes>
<harakiri>60</harakiri>
<reload-mercy>8</reload-mercy>
<cpu-affinity>1</cpu-affinity>
<max-requests>2000</max-requests>
<limit-as>256</limit-as>
<reload-on-as>192</reload-on-as>
<reload-on-rss>128</reload-on-rss>
<no-orphans/>
<vacuum/>
</uwsgi>
/etc/nginx/sites-available/gglms_ui:
server {
listen 80;
server_name <prefix>.ui.enfixlp.com;
location / {
uwsgi_pass unix:///var/run/uwsgi/app/gglms_ui/socket;
include uwsgi_params;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param SERVER_SOFTWARE nginx/$nginx_version;
}
}
/etc/uwsgi/apps-available/gglms_ui.xml:
<uwsgi>
<plugins>python</plugins>
<socket>/var/run/uwsgi/app/gglms_ui/socket</socket>
<pythonpath>/home/sites/gglms_ui/</pythonpath>
<virtualenv>/home/sites/venv/gglms_ui/</virtualenv>
<module>wsgi:application</module>
<master/>
<processes>4</processes>
<harakiri>60</harakiri>
<reload-mercy>8</reload-mercy>
<cpu-affinity>1</cpu-affinity>
<max-requests>2000</max-requests>
<limit-as>256</limit-as>
<reload-on-as>192</reload-on-as>
<reload-on-rss>128</reload-on-rss>
<no-orphans/>
<vacuum/>
</uwsgi>