Three ways to run it¶
The same registry runs in three shapes. They differ in one question: whose platforms does the app show?
| Open catalog | One organization | Provider portal | |
|---|---|---|---|
DIRECTORY_MODE |
search |
curated |
portal |
| Whose platforms | Everyone's | Yours | Each provider's own |
| Who runs the server | Us (the pilot) | You | Us — or you, for many providers |
| The app opens onto | A search box | Your fixed list | That provider's fixed list |
| Who can add a platform | Anyone, self-service | Your admins | Each provider, to their own list |
| Learner reports | Yes — that's the point | No | No |
| One app or many | One app for everyone | Your own branded app | One branded app per provider |
| Read more | For learners | One organization | Provider portal |
Open catalog — one app for the whole ecosystem¶
The pilot at openedx-lms.stepanok.com. Any owner registers their Open edX platform, and any learner finds it by search or by URL in one shared app — the Moodle-or-Canvas shape.
Because anyone can list anything, this is the only mode with a moderation side: learners report platforms from the app, and an admin blocks or dismisses. Nothing is taken down automatically.
Pick this if you want your platform reachable from an app you don't have to build or maintain.
One organization — your own server, your own app¶
You fork the project and run the registry yourself. It lists only your platforms, there is no public sign-up and no reporting, and your mobile builds point at your own domain. Nothing about your platforms leaves your infrastructure.
Pick this if you run several Open edX platforms and you want the registry inside your own perimeter. → One organization (curated)
Provider portal — many organizations, one server¶
The same white-label result, without running a server. Each provider registers on
the portal, adds their own platforms, and gets a permanent address
(/p/<slug>) to compile into their own builds. Each provider sees and changes
only their own list.
Pick this if you want your own branded app across your own platforms and don't want to operate infrastructure for it. → Provider portal
What the mobile apps see¶
All three serve the same two endpoints, so the apps need no code change to move
between them — only a different DIRECTORY_URL:
LMS_DIRECTORY:
ENABLED: true
DIRECTORY_URL: "https://openedx-lms.stepanok.com" # open catalog
# DIRECTORY_URL: "https://registry.example.edu" # your own server
# DIRECTORY_URL: "https://providers.example.com/p/your-org" # provider portal
DIRECTORY_MODE: "curated" # required for the last two — see below
GET <DIRECTORY_URL>/api/v1/config tells the app which behaviour to use. It
answers search for the open catalog and curated for the other two — a
provider-portal address reports curated precisely so a provider build behaves
exactly like a self-hosted white-label one.
Set DIRECTORY_MODE: \"curated\" in any white-label build
Both apps fall back to search mode when the registry is unreachable. Without the local flag, a branded app that starts offline opens a search box over every public platform. The flag can only add curated mode, never remove it.
See API reference for the endpoints themselves.