Skip to content

Web Server

Matthew Bourque edited this page Jun 6, 2019 · 9 revisions

The jwql web application is configured using the following technologies:

  • A UNIX virtual machine (the jwql development server)
  • A nginx web server
  • The gunicorn Python Web Server Gateway Interface (WSGI) HTTP server
  • The supervisord process control manager
  • The django web framework

To see how all of these technologies work together to produce a usable web application, see the below diagram (note that this project uses django instead of flask):

When logged in as the admin account on the jwql development server, the supervisord process that runs the web server can be viewed/started/stopped/restarted via the following commands,

  • sudo ~/bin/supervisorctl status jwql.service
  • sudo ~/bin/supervisorctl start jwql.service
  • sudo ~/bin/supervisorctl stop jwql.service
  • sudo ~/bin/supervisorctl restart jwql.service

The clone of the jwql repository that is used to render the website is located in ~/var/lib/jwql/jwql/. This clone should always be set on the latest version of the master branch. The jwql dev server has a cron job that pulls in any latest changes to this clone every 5 minutes.

Important locations:

  • The configuration file for nginx is located at /etc/nginx/conf.d/jwql.conf
  • The configuration for supervisord is located at /etc/systemd/system/jwql.service