diff --git a/README.rst b/README.rst index 3365417..ae9044c 100644 --- a/README.rst +++ b/README.rst @@ -69,7 +69,8 @@ Clone and install:: sudo mv xmpp-http-upload /opt/xmpp-http-upload cd /opt/xmpp-http-upload copy config.example.py config.py - sudo apt-get install python3-flask + sudo apt-get install python3-pip + sudo python3 -m pip install --upgrade flask-cors Edit ``config.py`` and change ``SECRET_KEY``. Be sure to only change between ``''``. @@ -87,4 +88,4 @@ Enable systemd service:: Configure your webserver: As final step you need to point your external webserver to your xmpp-http-upload flask app. -Check the ``contrib`` directory, there is an example for nginx there. \ No newline at end of file +Check the ``contrib`` directory, there is an example for nginx there. diff --git a/contrib/nginx-example-uwsgi.conf b/contrib/nginx-example-uwsgi.conf new file mode 100644 index 0000000..20a4a27 --- /dev/null +++ b/contrib/nginx-example-uwsgi.conf @@ -0,0 +1,12 @@ +# Include this snippet in your nginx config. +# Make sure to preserve the trailing slashes if you change the location. +# Use this if you want to serve uploads from a subdirectory. The break statement +# is needed to remove the subdirectory when making the upstream request. + +location /upload/ { + rewrite ^/upload/(.*) /$1 break; + include uwsgi_params; + uwsgi_pass uwsgi://localhost:9002; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + client_max_body_size 100M; +} diff --git a/contrib/nginx-example.conf b/contrib/nginx-example.conf index 225f2c2..8459893 100644 --- a/contrib/nginx-example.conf +++ b/contrib/nginx-example.conf @@ -1,7 +1,10 @@ # Include this snippet in your nginx config. # Make sure to preserve the trailing slashes if you change the location. +# Use this if you want to serve uploads from a subdirectory. The break statement +# is needed to remove the subdirectory when making the upstream request. location /upload/ { + rewrite ^/upload/(.*) /$1 break; proxy_pass http://localhost:5000/; client_max_body_size 100M; } diff --git a/contrib/xmpp-http-upload.ini b/contrib/xmpp-http-upload.ini new file mode 100644 index 0000000..825129d --- /dev/null +++ b/contrib/xmpp-http-upload.ini @@ -0,0 +1,19 @@ +# Example ini for uwsgi usage. Adapt uid/gid to whatever user your webserver uses. +# This must also align with your directory permissions. +# env must point to your xhu config file. + +[uwsgi] +socket = 0.0.0.0:9002 +processes = 5 +threads = 1 +auto-procname = true +procname-prefix-spaced = [xmpp-http-upload] +uid = www-data +gid = www-data +need-plugin = python3 +chdir = /opt/xmpp-http-upload/ +pythonpath = /opt/xmpp-http-upload/ +wsgi-file = /opt/xmpp-http-upload/xhu.py +enable-threads = true +offload-threads = 10 +env = XMPP_HTTP_UPLOAD_CONFIG=/opt/xmpp-http-upload/config.yml diff --git a/contrib/xmpp-http-upload.service b/contrib/xmpp-http-upload.service index 47b5f31..74f8ccb 100644 --- a/contrib/xmpp-http-upload.service +++ b/contrib/xmpp-http-upload.service @@ -9,7 +9,7 @@ Group=www-data Environment=FLASK_APP=/opt/xmpp-http-upload/xhu.py Environment=XMPP_HTTP_UPLOAD_CONFIG=/opt/xmpp-http-upload/config.py -ExecStart=/usr/bin/flask run +ExecStart=/usr/local/bin/flask run Restart=on-failure RestartSec=10