Skip to the article
Aniq-UI

LearnioRequirements

Requirements

What to install before you run your package, with Docker or without it.

For the Full Stack package

What your package contains

PackageApps in the downloadRuns on its own
Full StackAPI, student site, admin dashboardYes, all three together
Student siteStudent siteYes, on bundled sample data until you connect a Learnio API
Admin dashboardAdmin dashboardYes, on an in-browser mock until you connect a Learnio API
APIAPIYes, serving the API only

A single-app package does not include the other apps. The frontends can use an API you already run, but the API's code is only in the Full Stack and API packages.

With Docker

  • Docker Desktop on macOS or Windows, or Docker Engine with the Compose plugin on Linux. The full stack starts with one docker compose command.
  • An internet connection for the first build, which downloads the base images and the dependencies.
  • Nothing else: Docker brings Node.js, and the database is a SQLite file inside a Docker volume.

With Docker

  • Docker Desktop on macOS or Windows, or Docker Engine on Linux. Your app has its own Dockerfile; Compose is not needed.
  • An internet connection for the first build, which downloads the base image and the dependencies.

Without Docker

  • Node.js 22 or 24, the LTS releases Learnio is tested on. Node 26 works too, but it no longer ships Corepack: run npm install -g corepack first.
  • Yarn 4, through Corepack. Run corepack enable once; each app pins its own Yarn version, so yarn picks the right one.

Database

No database server and no C++ compiler. The API uses SQLite by default and creates the file for you; Docker uses SQLite too. MySQL is supported as a configuration change, not a code change.

Ports

Each app listens on a fixed local port. Make sure nothing else uses them, or, with Docker, move one with SITE_PORT, ADMIN_PORT or API_PORT in a .env next to docker-compose.yml.

AppPort
API8000
Student site3030
Admin dashboard3031

Port

The student site listens on port 3030. Make sure nothing else uses it.

Port

The admin dashboard listens on port 3031. Make sure nothing else uses it.

Port

The API listens on port 8000. Make sure nothing else uses it.

An API to connect

Nothing is needed to try your app: it runs on its own sample data. To use real data, it needs a running Learnio API, whose address you set in its .env. The API is sold as its own package.

Optional services

None of these is needed to run Learnio locally. Each is switched on by its keys in back-end/.env.

ServiceWithout it
Cloudflare R2 or another S3-compatible bucketMedia is served from the apps' bundled sample files; only uploading new media stops working.
Resend, for emailEvery message is written to the API's log instead.
Stripe and PayPalThe checkout runs on a built-in simulator that completes orders without charging anyone. Free courses never need a processor.
Google, OpenAI or DeepSeek keysThe AI assistant asks the admin for their own key in the browser.
A Jitsi Meet serverThe calendar shows live classes as unavailable.

Stuck on a step?

Find a fix before you start over.

Troubleshooting

Cookie Preferences

We use cookies to enhance your browsing experience, analyze site traffic, and personalize content. By clicking "Accept All", you consent to our use of cookies for analytics and personalized advertising.