Skip to content

Your first project ​

Two ways in: create one, or adopt one that already exists.

Create one ​

bash
dqx init ~/projects/my-app --scaffold laravel \
  --client-name "My App" --domain my-app.test --php 8.4

That writes the project, creates the application from a named recipe, installs it and starts it — one command, not a sequence you have to remember.

It tells you what it decided:

target         ~/projects/my-app
site           my-app.test
php            8.4
scaffold       laravel:13  (`laravel` is the newest registered version dqx knows)
node           22  (the `laravel:13` scaffold sets it)
services       db, mailpit  (the `laravel:13` scaffold sets it)
clientKey      my_app  (derived from `My App`)

Everything it assumed says why, and anything it will not guess it asks for instead. See creating projects for the whole surface, including several sites, aliases and your own recipes.

Adopt one that exists ​

A project with its own docker-compose.yml and a hand-written install script does not need rewriting. dqx adopt reads what the project already is and writes the declaration for it:

bash
cd ~/projects/existing
dqx adopt

It prints what it would write, what it read out of the project, and anything it could not place — and changes nothing. dqx adopt --write applies it.

It reads more than the old config: the schema each site's .env actually connects to, the image the stack actually runs, the repository each checkout actually came from. Where those disagree with what was declared, it says so rather than choosing quietly.

Then, every day ​

bash
dqx up          # and dqx down
dqx shell       # a shell in the site you are standing in
dqx composer | npm | artisan | test
dqx db --url    # today's database URL, for a GUI client
dqx info        # every URL this project serves
dqx doctor      # what is and is not working here

The daily commands page covers the rest.

dqx v1.1.0