Best Practicies for Backing up Configuration / Modifications

Hello,

I was just looking to see what others do in regards to backing up the configuration (env) directory, and if you how you go about reusing it for other systems such as test and dev that could be on local users systems.

I guess my ideal solution would to put the env directory into git and track changes that way, but there are passwords placed in the files, that I would rather not commit if I didn’t need to, and having the passwords makes it a little more difficult switch between environments. Or are there certain files I should ignore completely and just have part of the steps to setting up be run tutor config save ? I know running tutor with a new version does wipe out some of these files (which makes sense), but not every file has a “patch” option such as the requirements.txt and Dockerfile that I had to change when migrating from native to tutor (juniper).

I guess I would like to be able to give our developers an environment as close to production as possible, without actual user data. For example, be able to have the courses and theme available for them to do development with on their laptop / desktop and be able to submit Pull Requests to the main repository to have those changes be brought into the main repo for further testing and deployment.

Thanks for any insight you have!

Tom

1 Like

You should simply backup the config.yml file: all other files from the env/ folder are generated from this single file (and from the tutor templates). For more information, I encourage you to watch the next 20 minutes or so of this video: https://youtu.be/p0NoqR8zlyw?t=1178

This makes complete sense. I just need to store the config.yml and files like $TUTOR_ROOT/env/build/openedx/requirements/private.txt I need to drop in when provisioning a system / tracking outside of the env folder.

Thanks again @regis!

I guess if you are using a private repo in github you could use a gitops approach and have dev and production branches. It wouldn’t be much effort to maintain the two files in different branches.

1 Like