Run Learnio locally
Install and start each app with Node.js and Yarn, one terminal per app.
For the Full Stack package
Before you start: install Node.js 22 or 24 and run corepack enable once. No database server is needed.
Open every terminal where the commands below expect it: inside learnio-lms for the full stack, or next to the app's folder for a single-app package.
| App | Folder | Address |
|---|---|---|
| API | back-end | localhost:8000Local |
| Student site | frontend | localhost:3030Local |
| Admin dashboard | admin-dashboard | localhost:3031Local |
Start the API first: both frontends read all of their data from it.
Start the API
Install and configure
.env.exampleworks as it is for local development.yarn installends with "Done with warnings", which is expected; a real failure ends with "Failed with errors".Having trouble?Terminalcorepack enable cd back-end yarn install cp .env.example .envCreate the database
yarn seedcreatesdatabase.sqlite, its tables and the demo data. Running it again adds nothing new.Terminalinback-endyarn seedStart the server
Terminalinback-endyarn devExpected result: localhost:8000/api/healthLocal answers with a status of
Having trouble?ok.
Start the student site
In a second terminal:
Install and configure
Terminalcd frontend yarn install cp .env.example .envStart it
Terminalinfrontendyarn devExpected result: localhost:3030Local opens the site in English; Arabic is at
Having trouble?/ar.
The API is not part of this package. Without one, the site runs on its bundled sample data and a "Sample data" notice at the bottom of the page says so. Point NEXT_PUBLIC_API_BASE_URL at a Learnio API when you have one.
Start the admin dashboard
In a third terminal:
Install and configure
Terminalcd admin-dashboard yarn install cp .env.example .envStart it and sign in
Terminalinadmin-dashboardyarn devExpected result: localhost:3031Local opens the sign-in form. The super admin is
Having trouble?admin@learnio.comwith the passwordAdmin@123.
The API is not part of this package. Without one, an in-browser mock answers sign-in and the students, staff, roles, categories, settings and notifications screens, and any email and password sign you in as the super admin. Your changes are kept in the browser's storage. The other screens show their error state until an API is connected.
ConfigurationStart over with fresh demo data
Stop the API, then delete the database file and seed it again. This deletes everything you created.
back-endrm -f database.sqlite && yarn seedIn PowerShell:
back-endRemove-Item database.sqlite; yarn seed