¿Cómo manejar las templates editables del usuario en un entorno de alojamiento sin estado en la nube?

He estado utilizando desde hace algunos años un PHP CMS / ERP hecho en casa basado en componentes de Symfony para mis clientes. Cada sitio que utiliza este marco está alojado en un "clásico" alojamiento de Linux y yo uso git para implementar actualizaciones. Cada sitio tiene una carpeta que almacena templates html / css, imágenes y files descargables a los que el administrador del sitio puede acceder para personalizar su sitio. Esta carpeta está ignorada por git para que mis actualizaciones de frameworks a través de git no sobrescriban los cambios del administrador del sitio.

Estoy pensando en mover esos sitios en un entorno escalable basado en la nube como Heroku. Según tengo entendido, esta carpeta ignorada por git se restablecería cada vez que hiciera git push para Heroku o para cada nuevo dyno creado. ¿Cómo podría manejar esto sin include esta carpeta personalizada en el repository git?

He pensado en almacenar templates de HTML / CSS en la database y copyrlas en el disco cada vez que se actualicen, después de cada implementación de git o de la creación de una nueva instancia. Pero eso no resolvería el problema de las imágenes o los files descargables.

En lugar de almacenar files subidos por usuarios localmente, Heroku recomienda ponerlos en un service externo como Amazon S3 .

Es posible que desee utilizar una biblioteca existente para esto, por ejemplo, KnpGaufretteBundle :

Utiliza Gaufrette fácilmente en tus proyectos de Symfony.

Gaufrette en sí es "una biblioteca PHP5 que proporciona una capa de abstracción del sistema de files". Amazon S3 es uno de sus back-end compatibles .