Requirements
What to install before you run your package, with Docker or without it.
For the Full Stack package
What each package contains
| Package | Apps in the download | Runs on its own |
|---|---|---|
| Full Stack | Dashboard and API | Yes, both together |
| Admin Dashboard | Dashboard | Yes, on its built-in mock API with sample data, or pointed at an API |
The NestJS API's code is only in the Full Stack package. The Admin Dashboard package runs without it, on sample data kept in your browser.
With Docker
- Docker Desktop on macOS or Windows, or Docker Engine with the Compose plugin on Linux. Both apps start with one
docker composecommand. - 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. The dashboard 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. Check yours with
node -v. The Docker images use Node.js 24. - Yarn 4, through Corepack. Run
corepack enableonce; each app pins Yarn 4.8.1 in itspackage.json, soyarnpicks that version. Node.js 25 and newer ship without Corepack: runnpm install -g corepackfirst, thencorepack enable. - No global packages. Each app ships its
yarn.lock, soyarn installinstalls the exact versions the template was tested with.
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 beside docker-compose.yml.
| App | Port |
|---|---|
| Dashboard | 3030 |
| API | 8000 |
Port
The dashboard listens on port 3030. Make sure nothing else uses it, or run it on another one.
Optional services
None of these is needed to run the dashboard locally. Each one is switched on by its variables; left empty, its feature stays off and everything else works.
| Service | Without it |
|---|---|
| A Google Gemini, OpenAI or DeepSeek API key, in the API's settings | The AI assistant asks each person for their own key for that provider, which stays in their browser. On the mock API the assistant answers from the sample data and needs no key. |
| A Cloudflare R2 bucket | Profile pictures and chat attachments cannot be uploaded: the upload answers that it is not set up. On the mock API, pictures are kept in the browser. |
| A WeatherAPI.com key | The overview's greeting shows without the weather. |
| An MCP key you choose | The API's MCP endpoint refuses every request. |