--- title: "Storage" description: "Storage Configuration" lead: "Configuring the SQL Storage." date: 2022-03-20T12:52:27+11:00 draft: false images: [] menu: configuration: parent: "storage" weight: 106100 toc: true aliases: - /docs/configuration/storage/ --- __Authelia__ supports multiple storage backends. The backend is used to store user preferences, 2FA device handles and secrets, authentication logs, etc... The available storage backends are listed in the table of contents below. ## Configuration ```yaml storage: encryption_key: a_very_important_secret local: {} mysql: {} postgres: {} ``` ## Options ### encryption_key {{< confkey type="string" required="yes" >}} The encryption key used to encrypt data in the database. We encrypt data by creating a sha256 checksum of the provided value, and use that to encrypt the data with the AES-GCM 256bit algorithm. The minimum length of this key is 20 characters, however we generally recommend above 64 characters. This secret must be generated by the administrator and can be done by following the [Generating a Random Alphanumeric String](../miscellaneous/guides.md#generating-a-random-alphanumeric-string) guide. See [securty measures](../../overview/security/measures.md#storage-security-measures) for more information. ### postgres See [PostgreSQL](postgres.md). ### local See [SQLite](sqlite.md). ### mysql See [MySQL](mysql.md).