Opscode Chef cookbook that installs and configures uWSGI. uWSGI is a fast, self-healing and developer/sysadmin-friendly application container server coded in pure C.
- Debian, Ubuntu
- python
- runit
uwsgi_service
:home_path- path to the app you want to run with uWSGI, default to"/var/www/app":pid_path- path to pid file for uWSGI, default to"/var/run/uwsgi-app.pid":config_file- path to configuration file, default tonil, overrides the below options if notnil:config_type- configuration file type, default to:ini:host- hostname to run uWSGI on, default to"127.0.0.1":port- port number to run uWSGI on, default to8080:worker_processes- number of uWSGI workers, default to2, should probably be relative to the number of CPUs:app- app to run on uwsgi, passed to --module parameted of uWSGI, default to"main:app":uid- user-id to run uwsgi under, default to"www-data":gid- group-id to run uwsgi under, default to"www-data":master- enable uwsgi master process, default tofalse:no_orphans- kill workers without a master process, default tofalse:die_on_term- make uwsgi die on term signal, default tofalse:close_on_exec- set close-on-exec flag on uwsgi socket, default tofalse:lazy- load application after worker fork(), default tofalse:disable_logging- disable uwsgi request logging, default tofalse:start_immediately- decide whether you want to start the service immediately or later manually, default totrue
Add the default uWSGI recipe to install uwsgi through pip. Define a uWSGI service with a definition like so:
uwsgi_service "myapp" do
home_path "/var/www/app"
pid_path "/var/run/uwsgi-app.pid"
host "127.0.0.1"
port 8080
worker_processes 2
app "flask:app"
endYou can also use a preexisting uWSGI configuration like so:
uwsgi_service "myapp" do
home_path "/var/www/app"
pid_path "/var/run/uwsgi-app.pid"
config_file "/etc/uwsgi/myapp.yaml"
config_type :yaml
endIf :config_file is passed, all other options except :home_path, :pid_path, and :config_type are ignored.