Skip to content

Start here ​

Who this is written for

dqx is written at Dolphiq, for our own fleet and for the developers of partners who work on projects that use it. The examples are our own container images and domains, and both are public: the images are on Docker Hub and *.local.dolphiq.eu resolves to 127.0.0.1 for anybody.

If you are not at Dolphiq, one page covers the differences - it is short.

I want to... ​

The five commands that cover most days ​

bash
dqx up            # start this project, and the shared router if it is not running
dqx down          # stop it
dqx shell         # a shell in the site you are standing in
dqx db --url      # the database URL, for a GUI client
dqx doctor        # what is broken here, and what to do about it

Every command works from anywhere inside a project: dqx walks up to find .dq/config.yml, the way git finds a repository, and the directory you are standing in picks the site.

If you have never seen dqx before ​

What dqx is is the two-minute version: a project declares what it needs, dqx generates and runs the environment for it, and the backend is a choice rather than a rewrite.

Words that mean something specific here ​

siteOne domain and one docroot. A project can serve several
checkoutA directory holding one repository's code. Several sites can be served from one
client keyThe short name that prefixes container names and the default schema, from client.key
layoutWhether the application repository is the project (single) or a wrapper holds checkouts under www/ (multi). See layouts
the routerOne Traefik container owning ports 80 and 443, so every project serves at once. See the shared router
backendWhat actually runs the project: docker, DDEV, Lerd or Herd. See choosing one
scaffoldA named recipe that creates an application, not just the environment around it
adoptRead a project that already exists and write its declaration, rather than rewriting the project
pre-routerA project whose own stack publishes fixed ports, served through an override that lasts only while it runs
not adoptedA directory with a stack and no usable dqx config. dqx shows it and runs docker compose for it
the gatebun run test:gate - the build, the tests and the coverage floor that CI runs

dqx v1.78.0