Everything runs inside of a Docker container, with Docker Compose, for simple deployment and code updates.
Ghostwriter uses the Docker Python3.7-Alpine image, a barebones image with Python 3.7 only the most necessary Python libraries.
Docker Compose handles all of the dependencies, so nothing needs to be installed on the host except Docker.
The application uses a PostgreSQL backend that Django natively supports. However, should users desire to switch to a different type of backend, the Django
settings.py can be updated to use SQLite, Oracle, or MySQL without any additional libraries.
Django makes it easy to modify the Ghostwriter database models as well. Migrations are usually smooth and trouble-free, especially if you are customizing the models prior to using Ghostwriter in production.
Finally, Django Q and Redis handle automated queue management processing (AQMP). Ghostwriter automates a number of things like updating domain categorization data and DNS records. These tasks are handed off to Redis for background processing.