Skip to content

Service Only

The backend is a Django service, and it boots on its own: no Docker, no business modules, SQLite as the database. You get the Django admin, the OpenAPI schema and the API explorer. You do not get products, a CMS, a storefront, Celery or PostgreSQL: for those, run the Quickstart.

The CI of the service runs the same install, then its test suite, on every push to develop and on every pull request. A recorded run on 2026-10-12 took the path below from the clone to a development server that answered.

  • git
  • uv. The service declares requires-python = ">=3.12", and uv downloads a matching Python when your machine has none.
Terminal window
git clone https://github.com/entirius/entirius-service-volkanos.git
cd entirius-service-volkanos
uv sync --frozen
cp main/settings_example.py main/settings_local.py
uv run python manage.py migrate
uv run python manage.py runserver
StepTook
clone2 s
uv sync --frozen1 s
copy the settings0 s
migrate2 s
runserver, until the admin sign-in page answered1 s

The recording host had the packages in its uv cache; a first sync downloads them. That run bound port 8900 (runserver 127.0.0.1:8900) to stay off a port in use on the recording host. Without an argument the server listens on port 8000:

  • http://127.0.0.1:8000/admin/: Django admin
  • http://127.0.0.1:8000/api/schema/swagger-ui/: the API explorer

The schema and the explorer answer staff only. The database starts without users, so create one with Django’s createsuperuser command, sign in at /admin/, then open the explorer in the same browser. API_SCHEMA_PUBLIC = True in main/settings_local.py serves them to everyone.

  • main/settings_local.py is the per-environment settings file. The service refuses to boot without it, which is why the copy step is there. The example sets a development secret key and DEBUG = True: it is for your machine only.
  • SQLite comes from the example: DATABASE_URL is unset, so it falls back to db.sqlite3 in the clone.
  • No business module. LOCAL_APPS in the example is an empty list, so there is no catalog, no checkout and no content, and no API of theirs.
  • The access module is there. The service installs it in every environment: staff roles, the gate in front of the admin API and application tokens. The recorded migrate applied its migrations on SQLite; Django prints warning models.W047 for one of its constraints there. How it works: Access and API Tokens.

main/settings_example.py carries the full module list as a commented LOCAL_APPS. The order matters: every module comes after the modules it requires. Modules such as the PIM need PostgreSQL 15 or newer, so this SQLite setup stops being enough once you enable them. The Quickstart stack is the reference configuration with every module on: its settings file. Picking a subset for your own service: Your Own Service.

  • Quickstart: the whole platform with demo data.
  • API: the two explorers and how a request is authenticated.