Open edX Devstack Development with Apple Macbook M1 Silicon (ARM Architecture)

[EDIT: best to jump to my comment below dated 22-Sep-2022]
Thanks all for digging into this subject a full year before it even hit my radar screen. I recently bought an M2 and decided to give local development a try. On an aside, a mac running Apple Silicon is the low-cost option for freelance developers when you take into consideration all of the software that’s needed in order to avail yourself to would-be customers. Getting it to run a dev-friendly installation of open edx would make it even better.

Now then, following is what i’ve learned so far.

  1. The the official tutor documentation for setting up a local dev environment on ARM based machines is surprisingly easy to follow. I spelunkered around the tutor ecosystem and saw that @regis and @braden in particular worked on this extensively last year, so thanks to both of you for your extra efforts.
  2. [EDIT: see my comment below, 22-Sep-2022] I wrote this bash script for setting up a local dev environment for a client. Anyone reading this could leverage this basic pattern for setting up a local openedx build that includes a custom theme and additional Python requirements. I also wrote this “tutor reset” script for anyone who, like me, ends up making multiple attempts.
  3. The biggest stumbling block for me is making my custom code editable in order to minimize rebuilding the openedx container, at 40+ minutes per iteration. @kmccormick wrote this plugin for auto-mounting a volume, and it seems promising though i’m only just now taking a closer look at it.
  4. The 2nd biggest stumbling block is installing the necessary system software, of which Docker is only one example. The relevant snippets in this install.sh script, though technically written for Ubuntu, are mostly what i used to get my macOS environment setup.
  5. As of this post, MySQL is still fiddly. On my M2, the MariaDB option installs but is buggy. Database migrations froze on my first few attempts, and for now there’s a dearth of searchable info about how to resolve this on google, so I’m going to try the MySQL approach that @braden describes in this thread.

Zooming out. Twenty-five years ago when i was just getting started as a freelance developer i saw a full page magazine advertisement of a guy sitting on a boulder in the wilderness with a laptop staring thoughtfully into the Cascade mountain range, and i thought, “that could be me”. If we can get an Open edX dev environment running locally on a mac laptop then that WILL be me!

2 Likes