Hosting Grafana on AWS using Docker grafana image

Hi there,
Firstly, I’m new to Grafana , Docker and AWS :slight_smile:

I’ve managed to run grafana from a docker image on AWS EC2 instance

I created a Github repo with a Dockerfile and a docker-compose.yml to automate the deploying process using the grafana/grafana image from dockerhub.
And mounted some docker volumes to make the configuration, dashboards, users, and all the data created in Grafana persistent when containter stops and re-run.
So the server is working correctly with grafana now.

However, I still have 2 esencial questions:

  1. How can I backup consistently all the grafana data (Config, Dashboards, Users, etc, etc).
    I mean, If I need to migrate to another server. The best practice is to copy manually the grafana.db and grafana.ini ?
    I found provisioning feature very basic for this purpose, because it won’t save all the details that me and the users can modify on the run.
    I would really like to keep all this data in a repository instead, is that possible ??

2)I’m able to modify the grafana UI (Logos, titles, etc) , but again, how can I backup this changes in a Github for example.
Only way is commit the container to my personal docker-hub?
Because I read this is not a good practice and better to use public grafana/grafana image from dockerhub, so I can update grafana easily.

I tend to think all the grafana data and the UI modifications I’m doing will be lost if I want to migrate to another server.
Besides, due to this restrictions, I understand I cannot make changes on my local server and then deploy them to the AWS server. Right ?
So I would need to start from scratch at some point. Which means losing a lot of time again and again for a newbie.

Am I missing something?
Do you have any advice? which is the best practice?

Thank you in advance for any help,