I like to use S3 for backups and then all sites can share the same backup set. Then when you do a backup on production, you can immediately restore it on your staging sites to see that it works with the current data.
Just my 10 cents, and not to take away from the helpful comments here on backups, but stepping back a bit: Iām really not sure if āsynchronisingā installs of Discourse is worth much effort.
Unless you intend on PRing into Discourse core, developing plugins or TCs is where itās at and gives you the most robust, efficient solution for customisation.
The key thing with developing Plugins and Theme Components is they will be deployed to multiple instances of Discourse over which you may not have control in any case?
So having a slightly unique local Discourse instance for development is totally ok. (within reason)
The key workflow should involve keeping the plugin or TC up to date in a shared repo, most likely on Github.
I totally agree. I have a few clients with customizations that canāt be checked (or are easiest checked) against their actual data, so they really like to see the site with the current data.
Yes, thatās fair. It depends what you are trying to do and what the client base is (single target, or multiple customers?) and how much control you expect to have.
Thank you all for your advice. Most likely, I will use PRing into Discourse core. Therefore, I need the ability to upload the assembly to the git, and from the git to the server
If you are PRing to Discourse core, then again, exact config of local install not critical (just make sure you are on latest), because code contribution is a very controlled process anyway, especially with test cases., so a little variation in settings or content is unlikely to be an issue.
Normally, if working on joint contributions, youād fork to your orgās repo and work on there before PRing?
No, I not working on joint contributions. I work for personal use
I didnāt to put it that way
How can I install a discourse from a fork of the git?
I will make changes into Discourse core and add them to my repo on git
Now I have Discourse configured
Then, when everything is ready, I update my build.
Then I continue the development again. Iām changing some settings in the control panel. There can be a lot of them.
When I want to update my build, I will need to update the settings as well
In this case, I will have to manually set the settings