Skip to the article
Aniq-UI

KinoraRequirements

Requirements

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

For the Full Stack package

What each package contains

PackageApps in the downloadRuns on its own
Full StackAPI and dashboardYes, both together
DashboardDashboardYes, on built-in sample data until you connect the template's API
BackendAPIYes, serving the API only

A single-app package does not include the other app. The dashboard can use an API you already run, but the API's code is only in the Full Stack and Backend 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.9 or newer for the dashboard and the Full Stack: the dashboard's yarn dev and yarn start use Node's --env-file-if-exists option, which arrived in 22.9. The API alone needs Node.js 22 or newer. The Docker images run Node.js 22 too.
  • Yarn 4, through Corepack. Run corepack enable once; each app pins Yarn 4.8.1, so yarn picks the right one. If your Node.js has no Corepack, install it first with npm install -g corepack.
  • No global packages.

Database

No database server. The API uses SQLite by default and yarn seed 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 DASHBOARD_PORT or API_PORT in a .env next to docker-compose.yml.

AppPort
API8000
Dashboard3030

Port

The dashboard listens on port 3030, or on PORT from its .env. Make sure nothing else uses it.

Port

The API listens on port 8000, or on PORT from its .env. Make sure nothing else uses it.

An API to connect

Nothing is needed to try the dashboard: it runs on its own sample data. To use real data, it needs the template's API running, whose address you set in its .env. The API is sold as its own package.

Optional services

None of these is needed to run Kinora locally. Each is switched on by its keys in back-end/.env, and a key left at its .env.example value counts as not set.

ServiceWithout it
Cloudflare R2 or another S3-compatible bucketThe demo pictures are served by the dashboard from its own public/assets folder. Uploading a new profile picture, progress photo or attachment answers 400 with "File storage is not configured on this server".
A Google Gemini, OpenAI or DeepSeek keyThe AI assistant's page says "No AI model is connected". Every other screen works.
An MCP_API_KEY of your ownEvery request to POST /api/mcp, the route a coding agent uses, is refused.

There is no mail transport and no payment provider in the template: no email is sent, the forgot-password and reset-password pages are the screens only (no reset is sent), and the billing card shows seeded figures.

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.