Deployment
We will use gunicorn and nginx in this guide but you can run FlaskBB with every WSGI-compatible server like uWSGI or gevent. nginx is just used as a reverse proxy.
Install gunicorn via pip inside your virtualenv:
$ pip install gunicorn
and run FlaskBB using the gunicorn
command:
$ gunicorn wsgi:flaskbb --log-file logs/gunicorn.log --pid gunicorn.pid -w 4
To stop FlaskBB, just send a KILL signal to gunicorn.
kill `cat gunicorn.pid`
In addition to gunicorn we also need to start celery. Celery is a task queue that FlaskBB uses to send non blocking emails.
$ flaskbb celery worker
Below is a example configuration for nginx. In this configuration all static files will be served via nginx.
server { listen 80; server_name forums.flaskbb.org; access_log /var/log/nginx/access.forums.flaskbb.log; error_log /var/log/nginx/error.forums.flaskbb.log; location / { try_files $uri @flaskbb; } # Static files location /static { alias /var/apps/flaskbb/flaskbb/static/; } location ~ ^/_themes/([^/]+)/(.*)$ { alias /var/apps/flaskbb/flaskbb/themes/$1/static/$2; } # robots.txt location /robots.txt { alias /var/apps/flaskbb/flaskbb/static/robots.txt; } location @flaskbb { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; #proxy_set_header SCRIPT_NAME /forums; # This line will make flaskbb available on /forums; proxy_redirect off; proxy_buffering off; proxy_pass http://127.0.0.1:5000; } }
For other deployment options, visit the full-fledged documentation here.