MinIO: Compose default
The Compose stack stores media in theminio-data Docker volume and creates the MINIO_BUCKET bucket during startup.
/storage/ and proxy that path to 127.0.0.1:9000/<MINIO_BUCKET>/. Keep the MinIO console private. The bundled initialization policy allows anonymous GetObject access for social platforms, but does not allow bucket listing or uploads. Anyone who obtains a media URL can read that object.
Local filesystem
Local storage is useful for development or a custom non-Compose deployment:uploads/ directory together with PostgreSQL.
Cloudflare R2
For a separately managed S3-compatible bucket, use Cloudflare R2:Backup checklist
Back up media together with both PostgreSQL databases and the.env file. ENCRYPTION_KEY is required to decrypt stored provider credentials. Test restoring a media object, the application database, and Temporal’s database before relying on the backup.
