Skip to content

The daily commands ​

Every command works from anywhere inside a project — dqx walks up to find .dq/config.yml, the way git finds a repository. Standing in a site's directory also picks that site.

Starting and stopping ​

dqx upStart every site of the project, and say which one failed rather than reporting success
dqx downStop this project
dqx killStop every project on every backend and free 80 and 443; the runtimes keep running
dqx kill --allThat, and the runtimes too, giving their memory back
dqx updatePull the images this project declares

dqx up also brings up the shared router if it is not running, reissues the certificate when it does not cover a domain yet, and frees a port another project is holding — naming what it stopped.

Working inside a project ​

dqx shellA shell in the site, in the directory you are standing in
dqx exec -- <cmd>One command in the site
dqx composer / npm / artisan / phpThe tool, in the right container and directory
dqx testThe project's test suite
dqx run <name>A command the project declared in commands:
dqx openThe site, in your browser

The database ​

dqx dbOpen the client
dqx db --urlToday's URL, for TablePlus or a dump
dqx db:import <file> / db:exportIn and out
dqx snapshot / dqx restoreThe database and the storage directories

The published port changes on every up — that is deliberate, so two projects never fight over one port. dqx db --url prints the one that is true now.

Seeing what is going on ​

dqx infoEvery URL, port and connection this project has
dqx info --jsonThe same, for a script or an agent
dqx listEvery project on the machine, on every backend
dqx logs [service]Tail logs
dqx doctorWhat is broken here, and what to do about it
dqx memoryWhat each project is costing, and what the VM holds beyond that

Xdebug ​

bash
dqx xdebug on     # and off, and `dqx xdebug` to see which

Per developer and gitignored, so it never lands in somebody else's checkout, and dqx up re-applies your choice.

dqx v1.1.0