# Project Requirements

Want to quickly experiment with Fides? Use the [demo application](/content/docs/getting-started/index.html) to go from "Zero to DSR Automation" in minutes!

## System requirements

Fides consists of the following individual systems:

- **Hosted Database**: A PostgreSQL database server used for permanent storage of configuration data for the webserver.
- **Hosted Cache**: A Redis database server used as a temporary cache during execution and task scheduling.
- **Fides Webserver**: The main application, which houses the Admin UI and API endpoints.

Production deployments may require a storage destination to store the results of completed privacy requests and the Privacy Center can be deployed as a pre-built and customizable portal for receiving privacy requests.

Read about [configuring storage destinations](/content/docs/privacy-requests/guides/storage-destinations/index.html) here and [configuring the privacy center](/content/docs/privacy-center-fidesjs/privacy-center/index.html) here.

Fides requires a general purpose web server (e.g. for AWS EC2, a t3.small), and has no persistent storage requirements.

## Version requirements

| Component | Supported Versions |
| --- | --- |
| **Python** | 3.9 - 3.10 |
| **PostgreSQL** | 12+ |
| **Redis** | 6.2.0+ |

All of these must be installed, either locally or via Docker, before attempting to run Fides as an application. The CLI is capable of running with only the Python dependency.

## Docker requirements

If using Docker, the following minimum versions are required:

- [Docker (opens in a new tab)](https://www.docker.com/products/docker-desktop/): 20.10.11+

## Required Configuration

The configuration variables below are required for all Fides deployments. For a complete list of all configuration options, see the [Configuration Reference](/content/docs/platform/configuration/configuration/index.html).

| Config Variable | Example | Description |
| --- | --- | --- |
| `FIDES__SECURITY__APP_ENCRYPTION_KEY` | athirtytwocharacterencryptionkey | An AES256 encryption key used for DB & JWE encryption. Must be exactly 32 characters (256bits). |
| `FIDES__SECURITY__OAUTH_ROOT_CLIENT_ID` | fidesadmin | The client ID used for the "root" OAuth client. |
| `FIDES__SECURITY__OAUTH_ROOT_CLIENT_SECRET` | fidesadminsecret | The client secret used for the "root" OAuth client. |
| `FIDES__DATABASE__SERVER` | postgres.internal | The hostname for your database server. |
| `FIDES__DATABASE__PORT` | 5432 | The port for your database server. |
| `FIDES__DATABASE__USER` | fides | The username Fides should use to access the database. |
| `FIDES__DATABASE__PASSWORD` | fidessecret | The password Fides should use to access the database |
| `FIDES__DATABASE__DB` | fides | The postgres database name. |
| `FIDES__REDIS__HOST` | redis.internal | The hostname for your Redis server. |
| `FIDES__REDIS__PORT` | 6379 | The port for your Redis server. |
| `FIDES__REDIS__PASSWORD` | fidessecret | The password Fides should use to access Redis. |
