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 | API, ordering website, staff dashboard | Yes, all three together |
| Ordering Website | Ordering website | No: it needs the template's API running |
| Staff Dashboard | Staff dashboard | No: it needs the template's API running |
| Backend API | API | Yes, serving the API only |
A single-app package does not include the other apps. The website and the dashboard read everything from the template's API, and the API's code is only in the Full Stack and Backend 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 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. 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 24 or newer, the version every app declares and its Docker image uses. Check yours with
node -v. - Yarn 4, through Corepack. Run
corepack enableonce; each app pins its own Yarn version, soyarnpicks the right one. If your Node.js has no Corepack, install it first withnpm 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 SITE_PORT, ADMIN_PORT or API_PORT in a .env beside docker-compose.yml.
| App | Port |
|---|---|
| API | 8000 |
| Ordering website | 3030 |
| Staff dashboard | 3031 |
Port
The website listens on port 3030 and expects the API on 8000. Make sure nothing else uses them.
Port
The dashboard listens on port 3031 and expects the API on 8000. Make sure nothing else uses them.
Port
The API listens on port 8000, and by default accepts the website from 3030 and the dashboard from 3031. Make sure nothing else uses port 8000.
An API to connect
Your app has no data of its own. It needs the template's API running and seeded, whose address you set in its .env. The API is sold as its own package, the Backend API, and is part of the Full Stack.
Optional services
None of these is needed to run the restaurant locally. Each is switched on by its variables in the API's .env; a variable left commented out keeps its feature off.
| Service | Without it |
|---|---|
| Stripe or PayPal | Checkout offers a built-in demo payment that marks an order paid without moving money, for trying the flow. |
| Cloudflare R2 or another S3-compatible bucket | Uploads are stored on the API's own disk (with Docker, in the data volume), and the API serves the seeded pictures itself. |
| Resend, for mail | "Forgot password" answers as usual but sends nothing, and the API's log says mail is not configured. |
| A Google AI (Gemini) key | The AI assistant, the studio's listing writer and the photo restyle say they are not connected. |
| A Higgsfield key and secret | The studio's generated photos and clips stay off. |
| The background-removal model file | The studio's "Remove background" button does not appear. It runs on your own server, needs no key, and costs nothing per image. |