Deployment workflow

Silverstripe 4

I’m not used to developing websites, have mostly worked with C++ and Java. I’m currently building a Silverstripe website and trying to figure out how the deploy workflow is normally done.

What I’m hoping is to be able to work on the website on my local computer and push the changes to the server, with database and uploaded images. Also to be able to download the current state of the database and uploaded images to have a local copy to work with.
Is that possible with some tool or do I need to handle the Silverstripe code, database and uploaded images separately?

I know that there are tools like deployer. But that tool seems to only handle the code for the website. It does not help me with the database and the uploaded image resources. Or am I wrong?