Browse Source

Finished first draft of the getting started guide

Jeremy Stretch 9 years ago
parent
commit
8b92a737cc
1 changed files with 82 additions and 2 deletions
  1. 82 2
      docs/getting-started.md

+ 82 - 2
docs/getting-started.md

@@ -203,6 +203,86 @@ Now if we navigate to the name or IP of the server (as defined in `ALLOWED_HOSTS
 
 If the test service does not run, or you cannot reach the NetBox home page, something has gone wrong. Do not proceed with the rest of this guide until the installation has been corrected.
 
----
+# nginx and gunicorn
+
+## Installation
+
+We'll set up a simple HTTP front end using [nginx](https://www.nginx.com/resources/wiki/) and [gunicorn](http://gunicorn.org/) for the purposes of this guide. (You are of course free to use whichever combination of HTTP and WSGI services you'd like.) We'll also use [supervisord](http://supervisord.org/) for service persistence. 
+
+```
+# apt-get install nginx gunicorn supervisor
+```
+
+## nginx Configuration
+
+The following will serve as a minimal nginx configuration. Be sure to modify your server name and installation path appropriately.
+
+```
+server {
+    listen 80;
+
+    server_name netbox.example.com;
+
+    access_log off;
+
+    location /static/ {
+        alias /opt/netbox/netbox/static/;
+    }
+
+    location / {
+        proxy_pass http://127.0.0.1:8001;
+        proxy_set_header X-Forwarded-Host $server_name;
+        proxy_set_header X-Real-IP $remote_addr;
+        proxy_set_header X-Forwarded-Proto $scheme;
+        add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
+    }
+}
+```
+
+Save this configuration to `/etc/nginx/sites-available/netbox`. Then, delete `/etc/nginx/sites-enabled/default` and create a symlink in the `sites-enabled` directory to the configuration file you just created.
+
+```
+# cd /etc/nginx/sites-enabled/
+# rm default
+# ln -s /etc/nginx/sites-available/netbox 
+```
+
+Restart the nginx service to use the new configuration.
+
+```
+# service nginx restart
+ * Restarting nginx nginx
+```
+
+## gunicorn Configuration
+
+Save the following configuration file in the root netbox installation path (in this example, `/opt/netbox/`.) as `gunicorn_config.py`. Be sure to update the `pythonpath` variable if needed.
+
+```
+command = '/usr/local/bin/gunicorn'
+pythonpath = '/opt/netbox/netbox'
+bind = '127.0.0.1:8001'
+workers = 3
+user = 'www-data'
+```
+
+## supervisord Configuration
+
+Save the following as `/etc/supervisor/conf.d/netbox.conf`. Update the `command` and `directory` paths as needed.
+
+```
+[program:netbox]
+command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
+directory = /opt/netbox/netbox/
+user = www-data
+```
+
+Finally, restart the supervisor service to detect and run the gunicorn service:
+
+```
+# service supervisor restart
+```
+
+At this point, you should be able to connect to the nginx HTTP service at the server name or IP address you provided. If you are unable to connect, check that the nginx service is running and properly configured. If you receive a 502 (bad gateway) error, this indicates that gunicorn is misconfigured or not running.
 
-TODO
+Please keep in mind that the configurations provided here are a bare minimum to get NetBox up and running. You will almost certainly want to make some changes to better suit your production environment.