Help with Automated Deployment for Tutor Open edX on a Single Instance Using GitHub

I’m currently setting up an Open edX instance using Tutor, and I’m deploying it to a single server. I’d like to set up a workflow where I can track all changes with version control, ideally avoiding any need to manually log into the server to make updates.

My goal is to make changes on my local system, push them to a GitHub repository, and then pull those changes on the server in an automated or semi-automated way.

If anyone could guide me on how to set up automated deployment with Tutor and GitHub, or even share tips on how you handle deployments with Tutor, I’d greatly appreciate the advice!

Hi @teeeeee12,
My main advise is to make sure that all your changes are done in the config.yml and, eventually, a custom Tutor plugin for your site. Make sure you do not touch anything in the env directory. Then it’s just a matter of pulling the latest changes to your config.yml and applying them (that is the question).
The big challenge is that some changes just need a uwsgi-reload, some other need a container restart, and worst case, image(s) rebuild. It’s hard to tell what’s the minimum action needed for each change, that’s why it’s so challenging to do a fully automated CI for a Tutor setup.

There are times you want to make custom changes to the themes or even your plugin, how would you handle that.

There is no standard way to implement a CI for that purpose. I suggest you start doing it manually, and for those tasks that you find yourself doing repeatedly, then try to automate somehow. Depends a lot on your installation, your team, your business case, etc.