Quickstart
One command builds and starts the whole platform in Docker on your machine: the backend with a demo catalog, the CMS, the storefront and a mail sandbox that catches every mail the stack sends. The product names of those parts are on Concepts.
Before You Start
Section titled “Before You Start”make setup checks these first and stops with a message when one is missing:
- Docker Engine with the Compose v2 plugin
- git, GNU make, Python 3, curl and bash
No GitHub account, no SSH key: every repository is cloned over https.
Disk: the three images the recorded run built were 3.25GB (backend), 1.33GB (CMS) and 1.65GB (storefront).
The recording host had 32 CPUs and 30 GB of memory.
Run It
Section titled “Run It”git clone https://github.com/entirius/entirius-zeno.gitcd entirius-zenomake setupmake setup runs these steps in order. The last column is what each took in the recorded run.
| Step | Does | Took |
|---|---|---|
| preflight | checks the prerequisites and that Docker answers, writes .env from .env.example when it is missing | 0 s |
| clone-tests | clones the demo data and test package | 4 s |
| build | builds the backend image from the develop branch of its GitHub repository | 99 s |
| up | starts PostgreSQL, Redis, RabbitMQ, the backend and its workers, waits until the backend answers | 17 s |
| starts the mail sandbox | 1 s | |
| frontends | builds and starts the storefront and the CMS from their GitHub repositories | 103 s |
| toolbox | checks the AI toolbox; switched off by default, see below | 0 s |
| seed | loads the demo data: fixtures, the catalog import, prices, stock, pictures | 607 s |
| summary | prints the URLs and the logins | 1 s |
Measured on 2026-10-12 in one run; a first run builds everything from source, so yours depends on your network and machine. That whole recording took 1098 s: besides the steps above it ran the checks, the test suite, an update, the teardown and the service-only path.
A step that fails names itself in the output. The common causes and their fixes: Troubleshooting.
What You Get
Section titled “What You Get”| URL | What | Login |
|---|---|---|
http://localhost:8180/ | the CMS | admin / admin123 |
http://localhost:3100/ | the storefront | none |
http://localhost:8100/api/schema/swagger-ui/ | the API explorer of the backend | none |
http://localhost:8100/admin/ | Django admin | admin / admin123 |
http://localhost:8200/ | the stack dashboard | none |
http://localhost:8380/ | the REST API of the mail sandbox | none; the mailbox user is sandbox / sandbox |
The stack runs the access module, so the seed also creates one staff user per role: viewer, editor, manager,
accessadmin (Administrator) and norole (staff without a role). The password is the user name followed by 123.
Sign in to the CMS as each of them and you see what that role may read and change. admin is a superuser and sees
everything. How roles and the gate work: Access and API Tokens.
make urls prints every URL of the running stack, with the ports and credentials of PostgreSQL, Redis and RabbitMQ.
Their host ports are the standard ones +100, so instances you already run on the standard ports keep working.
Without the AI Toolbox
Section titled “Without the AI Toolbox”The AI toolbox is the gateway to language models. It is a separate service, it is not public, and the stack does not
need it: .env.example ships AI_TOOLBOX_ENABLED=0 and the recorded run reported the toolbox state disabled.
- Works: the catalog, the CMS, the storefront, cart and checkout, imports and the mail sandbox.
- Off: AI drafts and rewrites of lead mails, lead intel analysis, translations. The CMS blocks those actions and says why in a hint.
With credentials from the Entirius team, set AI_TOOLBOX_ENABLED=1, AI_TOOLBOX_BASE_URL, AI_TOOLBOX_API_KEY and
AI_TOOLBOX_CHANNEL in .env, run make setup SEED=0 so the containers start again with the new values, then run
make toolbox-check. What each feature does in each toolbox state:
AI Toolbox.
Stop, Reset, Update
Section titled “Stop, Reset, Update”Stop the stack and keep the data:
make downRemove the containers and the data:
make cleanUpdate and keep the data:
git pull --ff-onlymake setup SEED=0Drop SEED=0 to load the demo data again. The recorded run executed all three. The update, with warm caches and
nothing new to pull, took 10 s.
Sign In to the CMS at http://localhost:8180/, or open the storefront at
http://localhost:3100/. From there:
- Concepts: channels, languages, modules and the names you will meet.
- CMS Guides: one task per guide, with screenshots of the demo data.
- API: the two explorers and how a request is authenticated.
- Service Only: the backend alone, without Docker.
- Troubleshooting: symptoms of a local run, with cause and fix.