System Requirements¶
Hardware Requirements¶
| Component | Minimum | Recommended | Large Networks (10k+ hosts) |
|---|---|---|---|
| CPU | Quad-core 2 GHz | Quad-core 2 GHz+ | Octa-core 2 GHz+ |
| RAM | 4 GB | 8 GB | 16 GB |
| Disk | 40 GB | 80 GB | 120 GB+ |
| Network | Stable connection | Gigabit Ethernet | Gigabit Ethernet |
Disk space
The 40 GB minimum includes space for the PostgreSQL database, which grows with the number of vulnerabilities, hosts, and services. Large environments with millions of vulnerability records may require 80 GB or more for PostgreSQL data alone. Docker images add approximately 500 MB per Faraday image.
Operating System¶
| OS | Supported Versions | Notes |
|---|---|---|
| Ubuntu | 22.04 LTS, 24.04 LTS | Recommended |
| Debian | 12 (Bookworm)+ | |
| Kali Linux | Latest rolling | |
| RHEL | 8, 9 | |
| CentOS Stream | 8, 9 | |
| Rocky Linux | 8, 9 | |
| AlmaLinux | 8, 9 |
Architecture: 64-bit (amd64/x86_64) only.
End-of-life operating systems
Ubuntu 18.04, CentOS 7, and RHEL 7 are end-of-life and unsupported. Their default Python and PostgreSQL versions are below the Faraday minimum requirements.
Software Dependencies¶
Required¶
| Component | Minimum Version | Recommended | Notes |
|---|---|---|---|
| PostgreSQL | 12 | 14+ | Primary data store. Docker reference: postgres:12.7-alpine |
| Redis | 6.0 | 7.x | Celery message broker. Docker reference: redis:8.4-alpine |
| Python | 3.9 | 3.11 | Bare-metal installs only. Docker uses Python 3.11 |
End-of-life software
PostgreSQL 9.6–11, Python 3.7–3.8, and Redis 5.x are end-of-life. Faraday's dependencies (e.g., cryptography>=40.0.1, celery==5.4.0) may not install or function correctly on these versions.
Docker installs¶
| Component | Minimum Version |
|---|---|
| Docker Engine | 20.10+ |
| Docker Compose | v2 (the docker compose CLI plugin) |
Note
Docker installs bundle their own Python, PostgreSQL, and Redis — you do not need to install these separately.
Optional¶
| Component | Version | Purpose |
|---|---|---|
| Elasticsearch | 7.16+ | Advanced search capabilities (configured via faraday-manage settings) |
| NGINX | Any current | Reverse proxy with SSL/TLS termination (Advanced setup) |
| beautifulsoup4 | 4.6+ | Extended report parsing |
| selenium | 3.9+ | Web automation for certain plugins |
Network Requirements¶
Ports¶
| Port | Service | Direction | Notes |
|---|---|---|---|
| 5985 | Faraday Server | Inbound | HTTP API and Web UI |
| 5432 | PostgreSQL | Internal | Database (expose only to Faraday) |
| 6379 | Redis | Internal | Message broker (expose only to Faraday) |
| 443 | NGINX (optional) | Inbound | HTTPS via reverse proxy |
Firewall¶
- Allow inbound TCP port 5985 (or 443 if using NGINX reverse proxy)
- PostgreSQL (5432) and Redis (6379) should only be accessible from the Faraday Server host
- Outbound internet access is required for license validation (Pro/Corp) and plugin updates
Supported Browsers¶
Faraday's Web UI is a React.js application. Use a current version of:
- Google Chrome / Chromium
- Mozilla Firefox
- Microsoft Edge
Key Filesystem Paths¶
| Path | Purpose |
|---|---|
~/.faraday/ |
Faraday configuration root |
~/.faraday/config/server.ini |
Server configuration file |
~/.faraday/logs/ |
Application logs |
~/.faraday/session/ |
Session storage |
~/.faraday/storage/ |
Report and evidence storage |
/home/faraday/.faraday/doc/ |
License files (Pro/Corp) |
The FARADAY_HOME environment variable can override the default configuration root. It is set to /home/faraday in the Docker image.
Configuration Defaults by Deployment Type¶
Bare-metal and Docker deployments use different default values for some settings:
| Setting | Bare-Metal | Docker | Notes |
|---|---|---|---|
bind_address |
localhost |
0.0.0.0 |
Docker binds to all interfaces for container networking |
api_token_expiration |
43200 sec (12 hr) | 604800 sec (7 days) | API token lifetime |
session_timeout |
12 hours | 24 hours | Web session timeout |
delete_report_after_process |
false |
true |
Remove uploaded report files after processing |
These are set in ~/.faraday/config/server.ini. Adjust them to match your security and usability requirements.