Skip to the article
Aniq-UI

Dashboard 2Run the dashboard without Docker

Run the dashboard without Docker

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.9 or newer and run corepack enable once. No database server is needed.

View requirements

Open each terminal in the dashboard-2-full-stack folder. Start the API first: the dashboard reads all of its data from it.

AppFolderAddress
APIback-endlocalhost:8000/api/healthLocal
Dashboardfront-endlocalhost:3030Local

Start the API

  1. Install and configure

    .env.example works as it is for local development: SQLite in ./database.sqlite, the API on port 8000, and the dashboard allowed from http://localhost:3030.

    Terminalin dashboard-2-full-stack
    corepack enable
    cd back-end
    yarn install
    cp .env.example .env
    Having trouble?
  2. Create the database

    yarn seed creates database.sqlite, its tables and the sample data: 12 admins, 5 roles and 25 permissions, 15 users and 12 deleted ones, 15 projects and 12 deleted ones, 10 tasks, 13 app settings and 50 countries. Running it again keeps your admins and their passwords, users, projects, tasks and countries, and adds what is missing. It puts the app settings and the five built-in roles' permissions back to their sample values, and gives the Viewer role to every admin other than admin@example.com that does not hold it yet.

    Terminalin back-end
    yarn seed
  3. Start the server

    yarn dev restarts the API whenever you save a file.

    Terminalin back-end
    yarn dev

    Expected result: The health checkLocal answers with "status":"ok" and "database":"up".

    Having trouble?

Start the dashboard

In a second terminal:

  1. Install and configure

    The copied .env points the dashboard at the API on port 8000, and at the same server for the live permission updates.

    Terminalin dashboard-2-full-stack
    cd front-end
    yarn install
    cp .env.example .env
  2. Start it and sign in

    Terminalin front-end
    yarn dev

    Expected result: localhost:3030Local opens the sign-in page. Sign in with admin@example.com and the password Admin@123.

    Having trouble?

Without the copied .env, the dashboard does not look for the API at all: it runs on its built-in mock API with sample data kept in your browser.

Start the dashboard

No .env file is needed: with no API address set, the dashboard runs on its built-in mock API with sample data.

  1. Install

    Terminal
    corepack enable
    cd dashboard-2-front-end
    yarn install
    Having trouble?
  2. Start it and sign in

    Terminalin dashboard-2-front-end
    yarn dev

    Expected result: localhost:3030Local opens the sign-in page. Sign in with admin@example.com and the password Admin@123, and the overview opens with a "Sample data" notice.

    Having trouble?

To point it at your API, copy the example settings with cp .env.example .env: they expect the API at http://localhost:8000/api. Change NEXT_PUBLIC_API_BASE_URL and NEXT_PUBLIC_WEBSOCKET_BASE_URL if yours runs elsewhere, then restart yarn dev.

Production build of the API

First set the API's .env for production: with NODE_ENV=production the API creates no tables on start, and it refuses to start while JWT_SECRET is empty or still the example value, or while CORS_ORIGIN is empty.

back-end/.env
NODE_ENV=production
JWT_SECRET=paste-the-generated-secret-here
CORS_ORIGIN=https://admin.your-domain.com
FRONTEND_URL=https://admin.your-domain.com

Generate the secret with node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Then, in back-end, build it, create the tables once with yarn seed:prod, and start it:

Terminalin back-end
yarn build
yarn seed:prod
yarn start:prod

yarn seed:prod is the only command that creates the tables, and it also adds the sample data and the sample admins with their public passwords. Before going live, sign in and change the sample admins' passwords under Settings, Security, or delete them, and keep your own JWT_SECRET as above, before the dashboard is reachable by anyone else. Run it once: a second run puts the app settings and the built-in roles' permissions back to their sample values.

Production build of the dashboard

In the dashboard's folder, build once and start. It serves on port 3030, or on PORT from .env or the environment.

Terminal
yarn build
yarn start

The dashboard compiles its NEXT_PUBLIC_* values in at build time, so run yarn build again after changing .env.

Start over with fresh sample data

Stop the API, then delete the database file and seed it again, in back-end. This deletes everything you created.

Terminalin back-end
rm -f database.sqlite* && yarn seed

In PowerShell:

Terminalin back-end
Remove-Item database.sqlite*; yarn seed

yarn reset empties every table and keeps them; yarn drop drops every table. Run yarn seed after either.

Next

Was this helpful?

Checked against the 2026-10-09-2 release

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.