Operating System
- Ubuntu 22.04 LTS (x86_64)
- Ubuntu 20.04 LTS (x86_64)
- Debian 12 (x86_64)
- CentOS / RHEL 8+
- Rocky Linux 8+
- Other systemd-based Linux distributions
Hardware
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8 GB or more |
| Disk | 20 GB (SSD) | 50+ GB (SSD) — more if storing media/attachments |
| Network | 100 Mbit/s | 1 Gbit/s |
Software Dependencies
Python
3.10 or 3.11
RequiredMySQL Default
8.0 or newer
PostgreSQL 14–16 is also supported on request
RequiredNginx
Reverse proxy + static files
RecommendedGunicorn
WSGI application server
RecommendedRedis
Cache & Celery broker
OptionalCelery
Background task queue
OptionalKey Python Packages
The full list is in requirements.txt. The most important ones:
| Package | Version | Purpose |
|---|---|---|
django | ≥ 4.2 | Web framework |
mysqlclient | ≥ 2.1 | MySQL adapter Default |
psycopg2-binary | ≥ 2.9 | PostgreSQL adapter If PostgreSQL |
gunicorn | ≥ 21.0 | WSGI server |
celery | ≥ 5.3 | Task queue (optional) |
redis | ≥ 5.0 | Cache backend (optional) |
Pillow | ≥ 10.0 | Image processing |
django-tinymce | ≥ 3.6 | Rich-text editor |
Ports & Network
| Port | Service | Note |
|---|---|---|
80 | Nginx (HTTP) | Redirect to HTTPS |
443 | Nginx (HTTPS) | Production traffic |
8000 / 8080 | Gunicorn | Internal; not exposed to Internet |
3306 |
MySQL Default | Internal; bind to localhost |
5432 |
PostgreSQL If configured | Internal; bind to localhost |
6379 | Redis | Internal; only if Redis is used |
Quick Environment Check
Run these commands on your server to verify the key dependencies are available:
python3 --version # Should be 3.10 or 3.11
mysql --version # Should be 8.0+ (default DB)
# psql --version # Should be 14–16 (if PostgreSQL is configured instead)
nginx -v # Any modern version
redis-cli ping # Should reply: PONG (if Redis is installed)
pip install and apt / dnf package downloads,
or set up a local mirror in advance.