Skip to content

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.

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.

Terminal window
git clone https://github.com/entirius/entirius-zeno.git
cd entirius-zeno
make setup

make setup runs these steps in order. The last column is what each took in the recorded run.

StepDoesTook
preflightchecks the prerequisites and that Docker answers, writes .env from .env.example when it is missing0 s
clone-testsclones the demo data and test package4 s
buildbuilds the backend image from the develop branch of its GitHub repository99 s
upstarts PostgreSQL, Redis, RabbitMQ, the backend and its workers, waits until the backend answers17 s
mailstarts the mail sandbox1 s
frontendsbuilds and starts the storefront and the CMS from their GitHub repositories103 s
toolboxchecks the AI toolbox; switched off by default, see below0 s
seedloads the demo data: fixtures, the catalog import, prices, stock, pictures607 s
summaryprints the URLs and the logins1 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.

URLWhatLogin
http://localhost:8180/the CMSadmin / admin123
http://localhost:3100/the storefrontnone
http://localhost:8100/api/schema/swagger-ui/the API explorer of the backendnone
http://localhost:8100/admin/Django adminadmin / admin123
http://localhost:8200/the stack dashboardnone
http://localhost:8380/the REST API of the mail sandboxnone; 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.

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 the stack and keep the data:

Terminal window
make down

Remove the containers and the data:

Terminal window
make clean

Update and keep the data:

Terminal window
git pull --ff-only
make setup SEED=0

Drop 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.