Prerequisites

Prerequisites#

Software#

Generally speaking, requirements are the following:

  • A GNU/Linux distribution. Tested on Debian Bookworm and Ubuntu 22.04.3 LTS;

  • Python version >= 3.10. Tested with Python 3.11 and 3.12;

  • A PostgreSQL server for persistent storage. Tested with PostgreSQL 15.3 and 15.5;

  • An email server — outgoing email;

  • A cron daemon — scheduled tasks.

Postfix, or an equivalent software, is required for the email notifications.

For the Web server you can use Gunicorn, uWSGI, Apache or Nginx.

Hardware#

The Django application is designed to operate efficiently, and it can run seamlessly on a Raspberry Pi when paired with Gunicorn and either Nginx or Apache to handle request proxying. It is advisable to allocate ample memory and disk space, particularly for the database, especially when it shares the same server. This proactive approach ensures smoother performance and mitigates potential resource constraints.

A decent configuration for a server would be:

  • number of vCPU: 4;

  • RAM (GB): 4;

  • HDD (GB): 20.

The application will function seamlessly with these settings. Moreover, these values are relatively low when considering the capacity of modern servers.

Network#

The deployment on the different servers requires an Internet connection since the updates are retrieved from the GitHub repository.