树莓派上的 edX——便携式课堂

31 年 2013 月 XNUMX 日 | 作者

edX 的 DevOps 团队一直忙于与社区合作,让世界上的每个人都可以使用 Open edX。 几乎所有的代码都在后面 edx.org is 向公众提供 在 GPL 许可下。 除了 edx-platform 源代码,安装和更新平台的配置脚本在我们的 配置仓库. 我们用来配置的工具叫做 Ansible,一个基于 Python 的配置管理工具,为我们的运营团队在灵活性和简单性之间取得了适当的平衡。

定期地 edX 发布 Vagrant 图片 如果您想在您的 PC 上安装 edX。 看 我们的文件 用于在虚拟机中本地设置平台。

虽然我们通常专注于将 edX 部署到基于云的大型生产服务器,但这篇文章涵盖了一个非常不同的挑战:在 Raspberry Pi 上运行 edX 课程和创作软件的概念验证。

树莓派

这个 Raspberry Pi的 是 ARM/Linux 的低成本计算机,售价约为 35 美元。 在诸如 Pi 之类的低成本设备上运行 edX 网站可能会在互联网访问受限的地区启用便携式教室。 与笔记本电脑或台式电脑相比,这可以用 Pi 以更少的钱完成。

一个最小的站点配置在 Raspberry Pi 上是可用的,但它的性能还不够好,无法在为多个学生服务的真实课程中使用。 然而,该平台仅适用于单个学生,还有潜在的改进空间。

安装软件

  • 第一步:下载预制的树莓派镜像: edx-raspberrypi-20131228.img.gz
  • 第一步刷 SD 卡
    您可以使用 ssh 的默认用户名和密码 – 用户: pi 密码:覆盆子
  • 第一步:确保主管正在运行,并且 LMS 和 CMS 都在运行:
    sudo service supervisor start

    sudo /edx/bin/supervisorctl -c /edx/etc/supervisord.conf
  • 第一步:使用您的浏览器,连接到 LMS 和 Studio:
    LMS on port 18000 - `http://[ip address]:18000 `

    Studio on port 18010 - `http://[ip address]:18010`

    username: staff@example.com password: edx

什么有效,什么无效

  • 使用 Studio 创建新课程

创建新课程页面

  • 以学生身份访问课程

学生对新课程的看法

使用 Chrome 开发工具测量页面呈现时间:

  • LMS 演示课件页面 ~ 5 秒
  • 学生仪表板页面 ~ 5 秒

尚不支持以下功能:

  • 论坛 未启用并且可能与当前版本的 Mongo 不兼容。
  • 未启用自定义代码分级器。
  • ORA / 辨别 未启用机器学习。

树莓派上的 edX 配置

Raspberry Pi硬件

  • 700MHz 树莓派 / 500MB
  • 8 GB SD卡

服务配置

安装后,以下服务将在 Raspberry Pi 上运行:

  • Nginx/独角兽
  • Python/Django 和所有依赖它的 Python 库
  • MySQL
  • 蒙戈
  • Memcached的

edX 所需的一切都位于 /edx 下,并且在多个 Python 虚拟环境中完全自包含。 Mongo 安装在 /edx/mongo 中,即 非 x86 端口 为 ARM 编译。 由于从头开始为 Raspberry Pi 编译所有内容需要几天时间,因此有一个可用的公共映像可以作为一个很好的起点。

在认真使用之前需要一些注意事项和改进:

  • 需要消除无关日志记录:loglevel 设置为 CRITICAL,但跟踪日志当前写入 SD 卡。
  • 整体性能并不理想,如果不设置更积极的缓存或进行额外的代码更改,将很难提高。
  • 更新 edx-platform 存储库大约需要一小时。

使用 Ansible 进行配置

我们使用 Ansible 作为生产系统的 edX 配置管理工具。 带有一些小修改的相同脚本将适用于 Raspberry Pi。

Ansible 是在 Raspberry Pi 上设置的,因此可以很容易地为新版本的 edx-platform 更新它并进行配置更改。 由于资产编译(Coffeescript 和 Sass),更新大约需要一个小时,尽管该步骤可以离线完成,因为它不是特定于架构的。

如何将 Raspberry Pi 更新到最新的 edx 平台提交

以下命令可以直接在 Raspberry Pi 上运行以更新其配置或 edx-platform repo 版本:

 
# Ensure that the configuration repo is on the Raspberry Pi branch

sudo /edx/bin/更新配置 jarv/raspberrypi
# 运行 Raspberry Pi Ansible 剧本
cd /edx/app/edx_ansible/edx_ansible/playbooks/edx-east
/edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook -i localhost, -c local --tags deploy raspberrypi.yml -e "edx_platform_version=master" 

帮助和故障排除

如果您需要 edX 方面的帮助,请加入我们的 社区邮件列表. 如果您有关于在 Raspberry Pi 上运行 edX 的具体问题,请记住这只是一个原型,并没有得到官方维护和支持。 如果你确实让它在 Raspberry Pi 或其他平台上运行, 请让我知道 ——我很想听听你的意见!

装载

开始讨论在 讨论.openedx.org

时间更多? 查看下面的文章。

公布 2026 年 Open edX® TOC 社区代表
赋能国家:乌克兰如何利用 Open edX® 平台扩展国家在线学校规模
在 2026 年 Open edX 大会上进行演讲——演讲者招募!
NASA如何利用Open edX平台将开放科学教育扩展到20,000名研究人员
参加 2026 年 Open edX 会议!

2026 年 Open edX 会议将展示世界上最好的开源在线学习管理系统之一 Open edX 平台的创新用例,并发现教学设计、课程群以及操作和扩展 Open edX 平台的方法方面的最新进展,包括突破性技术,例如生成式人工智能。