Troubleshooting

OpenWISP is deployed using uWSGI and also uses daphne for WebSockets and celery as a task queue.

All these services are run by supervisor.

sudo service supervisor start|stop|status

You can view each individual process run by supervisor with the following command:

sudo supervisorctl status

For more information about Supervisord, refer to Running supervisorctl.

The nginx web server sits in front of the uWSGI application server. You can control nginx with the following commands:

service nginx status start|stop|status

OpenWISP is installed in /opt/openwisp2 (unless you changed the openwisp2_path variable in the Ansible playbook configuration). These are some useful directories to check when experiencing issues.

Location

Description

/opt/openwisp2

The OpenWISP 2 root directory.

/opt/openwisp2/log

Log files

/opt/openwisp2/env

Python virtual environment

/opt/openwisp2/db.sqlite3

OpenWISP 2 SQLite database

All processes are running as the www-data user.

If you need to copy or edit files, you can switch to the www-data user with the following commands:

sudo su www-data -s /bin/bash
cd /opt/openwisp2
source env/bin/activate

SSL Certificate Gotchas

When you access the admin website, you will receive an SSL certificate warning because the playbook creates a self-signed (untrusted) SSL certificate. You can get rid of the warning by installing your own trusted certificate and setting the openwisp2_ssl_cert and openwisp2_ssl_key variables accordingly or by following the instructions explained in the section Using Let's Encrypt SSL Certificate.

If you keep the untrusted certificate, you will also need to disable SSL verification on devices using openwisp-config by setting verify_ssl to 0, although we advise against using this kind of setup in a production environment.