How to back up Appwrite in Docker (2026)
To back up Appwrite in Docker you cannot just dump the database — you also need the app's data volumes and its config. Dockstash dumps its MariaDB database consistently, captures the 3 volumes of on-disk data, and snapshots docker-compose.yml plus .env in one encrypted run.
What Appwrite stores
| Compose services | appwrite, mariadb, redis |
|---|---|
| Databases detected | mariadb |
| Data volumes | appwrite_uploads (/storage/uploads), appwrite_cache, db_data (/var/lib/mysql) |
| Config paths | docker-compose.yml, .env |
The backup plan
- Dump the MariaDB database. Run mariadb-dump --all-databases --single-transaction inside the db container to capture projects, collections, documents, and user accounts consistently.
- Capture the storage volumes. Restic the uploads and functions volumes under /storage. Appwrite stores uploaded files, function code, and certificates on disk, separate from the database.
- Capture compose and .env config. Restic docker-compose.yml and .env (_APP_OPENSSL_KEY_V1) so encrypted values in the database can be decrypted after restore.
Restoring Appwrite
The _APP_OPENSSL_KEY_V1 in .env encrypts secrets stored in MariaDB — restore it exactly or encrypted data is unreadable. Restore the storage volumes alongside the database so file documents resolve.
Back up Appwrite in one click All guides
Last updated: July 2026
Related database guides
Frequently asked questions
What database does Appwrite use?
MariaDB. Dockstash runs mariadb-dump --single-transaction for a consistent snapshot of projects, collections, documents, and users.
Where are Appwrite files and functions stored?
Under /storage volumes on disk — uploads, function code, and certificates. Back these up alongside the database dump for a complete restore.
Why is _APP_OPENSSL_KEY_V1 critical?
It encrypts sensitive values stored in the database. Restore the database without the matching key and those values cannot be decrypted.