Application for editing, searching, and browsing historical DH conference abstracts.
Development lead: Matthew Lincoln
This is a Django application orchestrated with Docker Compose, comprising 4 key services:
The application is served behind nginx. /nginx/nginx.template shows the suggested formation of your default.conf file, setting up the reverse proxy to the Django service and serving the static files. the /nginx folder is passed as a volume to /etc/nginx/conf.d in the nginx docker container.
Cache set up for Django
The Django app relies on several PostgreSQL-only functions and fields, including its serviceable full-text search. Data is stored in a named db docker volume.
make backup will dump the database to the /data folder
This is the core Django service, which builds from /dh_abstracts/Dockerfile. The python libraries are specified in /dh_abstracts/requirements.txt, installed when the Dockerfile is built.
Running this stack locally or in production requires an .env file based on .env.template, with selected db password and secret, and the proper hostname, email server etc.
In production we currently use gunicorn to serve, so the SERVE_COMMAND is set to 'gunicorn dhweb.wsgi -b 0.0.0.0:8000 -w $SOME_INT' where the number of workers $SOME_INT is appropriate to the number of cores on the deployent machine.
Update nginx, memcached, and postgres versions by incrementing their version tags in docker-compose.yml
Update underlying Python version in dh_abstracts/Dockerfile
Update python packages in requirements.txt.