CLI tool for deploying a complete stack locally, for demonstration, testing, or development purposes.


Before using the CLI, make sure you have the following dependencies installed on your local machine:
  • Docker installed on your system but Podman works, too.
  • Go Compiler to run the CLI by its source code.
The CLI is only available from the codebase at the moment. Releasing compiled binaries are planned and in the works.

Run CLI from codebase

Step 1: By using a command line interpreter – Git Bash or Powershell –, pull's GitHub repsitory by executing git pull, if you don't already have the repository on your local machine you have to clone the repository by executing git clone
Step 2: Open the CLI folder, and execute go run . up and wait until you get back the command promt. It should take a few minutes the first time running, as it will pull a few docker images.
Step 3: Enter localhost:3000 in your browser's address bar. You're ready to use
dyrectorio's command-line interface (CLI) lets you run a complete dyrectorio development environment locally with the following services: UI Service (crux-ui), Backend Service (crux), PostgreSQL databases, Authentication, Migrations, and SMTP mock mail server. The default container names are listed below:
  • dyrectorio-stack_crux
  • dyrectorio-stack_crux-migrate
  • dyrectorio-stack_crux-ui
  • dyrectorio-stack_kratos
  • dyrectorio-stack_kratos-migrate
  • dyrectorio-stack_mailslurper
  • dyrectorio-stack_crux-postgres
  • dyrectorio-stack_kratos-postgres
The dyrectorio-stack prefix can be changed in the settings.yaml file of the application.
When you contribute to dyrectorio, you can turn off crux and crux-ui with the global options listed below or overriding the values in the settings file.

CLI commands

dyo [global options] command [command options] [arguments...]
up, u Run the stack
down, d Stop the stack
help, h Shows a list of commands or help for one command
--config value, -c value configuration location [$DYO_CONFIG]
--disable-crux, --dc disable crux(backend) service (default: false) [$DISABLE_CRUX]
--disable-crux-ui, --dcu disable crux-ui(frontend) service (default: false) [$DISABLE_CRUXUI]
--help, -h show help (default: false)
--version, -v print the version (default: false)
--write, -w enables writing configuration, storing current state (default: false)
As you seen above you can start the application with the up subcommand, after you finished your work, you can stop and remove the containers with the down subcommand.
Running the stack again without stopping it will result in containers stopped, removed then recreated.


The CLI generates a settings.yaml file containing the default configurations if the program doesn't find a configuration on the given path, or a default path if there isn't. Default paths is depending on your OS, you can find these on:
  • Linux: $XDG_CONFIG_HOME/dyo-cli/settings.yaml where the $XDG_CONFIG_HOME usually resolving to $HOME/.config.
  • Mac OSX: $HOME/Library/Application Support/dyo-cli/settings.yaml.
  • Windows: %AppData%/dyo-cli/settings.yaml.
The settings.yaml file contains the following:
# This option directly affects the docker images' tags.
# This applies to kratos, crux, and crux-ui. Currently we offer stable and latest tags.
version: latest
# Turns off backend and the migration that belongs to it.
crux_disabled: false
# Turns off frontend.
crux-ui_disabled: false
# The network's name where the containers will run. Agent will be installed here by
# agent's install script.
network-name: dyrectorio-stack
# Adjusts container and volume names' prefixes.
prefix: dyrectorio-stack
# The following settings are mostly self-describing, you can see the default values
# here. If an option isn't available here, the CLI will use a predefined default,
# where the secrets will be a new 32 character long random string. The ports here
# will be exposed for your convenience, if theres any local address that is bound to a
# defined port here, feel free to change it, and restart the CLI.
# Timezone of the application, affects both crux and crux-ui.
timezone: Europe/Budapest
crux-agentgrpc-port: 5000
crux-grpc-port: 5001
crux-ui-port: 3000
crux-secret: iX4B6KjrzKU7Bz6vg2jp89tIkAgZwaL7
cruxPostgresPort: 5432
cruxPostgresDB: crux
cruxPostgresUser: crux
cruxPostgresPassword: RbK2fDQ499lDJFwsFcFS5aqj9BEISFlU
kratosAdminPort: 4434
kratosPublicPort: 4433
kratosPostgresPort: 5433
kratosPostgresDB: kratos
kratosPostgresUser: kratos
kratosPostgresPassword: ySW7ae1QRvi63RA2yBwJZwYQunI5CPNX
kratosSecret: B0VLli7yRs9hxdai7R2HCpZDHuf6mJcy
mailSlurperPort: 4436
mailSlurperPort2: 4437

Get help

To get usage tips and learn more about available commands from within Nhost CLI, run the following:
go run . help
If you have additional questions or ideas for new features, you can start an issue or a new discussion on our CLI’s open-source repository. You can also chat with our team on Discord.
We’d love to hear from you!
Copy link
On this page
Run CLI from codebase
CLI commands
Get help​