FreeBSD Manual Pages
DIRECTOR(1) General Commands Manual DIRECTOR(1) NAME appjail-director -- Define and run multi-jail environments with AppJail SYNOPSIS appjail-director [--config file] [--env-file file] up [--json] [--overwrite] [--quiet] [--file file] [--project name] appjail-director [--config file] [--env-file file] down [--ignore-failed] [--ignore-services] [--json] [--quiet] [--destroy] [--project name] appjail-director [--config file] [--env-file file] ls [--state state] appjail-director [--config file] [--env-file file] info [--project name] appjail-director [--config file] [--env-file file] describe [--project name] appjail-director [--config file] [--env-file file] check [--project name] appjail-director [--config file] [--env-file file] cancel [--project name] DESCRIPTION appjail-director is a tool for running multi-jail environments on app- jail(1) using a simple YAML specification. A director-spec(5) file is used to define how one or more jails that make up your application are config- ured. Once you have a director-spec(5) file, you can create and start your application with a single command: appjail-director up. The configuration files are loaded in the following order: %%PREFIX%%/etc/director.ini, ~/.config/director/director.ini, from the environment variable DIRECTOR_CONFIG and from the --config option. Only the first two are loaded if they exist, otherwise they are ignored. When speci- fying the configuration file from the environment variable or from the com- mand-line option, you must be sure that these files exist, otherwise an er- ror will be displayed. An environment file specified by --env-file is loaded if it exists, other- wise it is ignored. This file is very useful for when you need to put some secrets or some dynamic values in your director-spec(5) file but they should not be in it and probably not in a repository either. up [--json] [--overwrite] [--quiet] [--file file] [--project name] Reads a director-spec(5) file. Any access to a file or directory specified in the director-spec(5) file is relative to it, not to the current directory in which appjail-director is running. When a director-spec(5) file specified by --file is read, appjail-director will perform some checks to verify if it needs to create or recreate a service. The checks that appjail-director performs are: overwrite, differing, failed, mtime and differing_options. overwrite will recreate the ser- vice if the --overwrite option is specified. differing will recreate the service if it differs from the old file that is copied each time the up command is executed. failed will recreate the service if it has previously failed in some way (e.g. creating or starting it). mtime will recreate the service if the appjail-makejail(5) modifica- tion time differs from the old one, but if ignore_mtime is specified this does not apply. differing_options will recreate the service if the global options change from the previous one, but if reset_options is true, it is ignored. Of course, if a service does not exist, appjail-director will create it. A service is also created if the project is new (does not exist previously). By default, when a project is not specified using the --project op- tion, appjail-director tries to read the DIRECTOR_PROJECT environment variable and, if it is not set, a random name is chosen. When removing a service (specifically, the jail), the remove_force and remove_recursive options specified from the configuration file deter- mine the behavior of this action. -j, --json Output in JSON format. --overwrite Recreate all services, even when it is not necessary. -q, --quiet Quiet mode: suppress normal output. -f file, --file file Specify an alternate director-spec(5) file. Default: appjail-director.yml -p name, --project name Specify an alternate name. If none is specified, a random name is used. down [--ignore-failed] [--ignore-services] [--json] [--quiet] [--destroy] [--project name] Stops the project and if the --destroy flag is used, it will be de- stroyed. Destroy implies stopping and destroying all the jails in that project and removing the project completely. Logs are not removed, you should remove them manually using system commands when you don't need them. The project name is obtained from the command-line option and, if not set, from the DIRECTOR_PROJECT environment variable. --ignore-failed Ignore services that are not destroyed. --ignore-services Ignore services. -j, --json Output in JSON format. -q, --quiet Quiet mode: suppress normal output. -d, --destroy Destroy the project after stopping and destroying each service. -p name, --project name Project name. ls [--state state] Lists projects. In addition to simply displaying the project name, the current status of the project is shown symbolically on the left side as follows: + (DONE), - (FAILED), ! (UNFINISHED), x (DESTROYING), ? (UNKNOWN). -s state, --state state Project status. Default: done, failed, unfinished and destroying info [--project name] Show information about a project. In addition to displaying the services, the current status of each service is shown symbolically on the left side as follows: + (RUNNING), - (STOPPED), ! (FAILED). In addition for !, the status code will be displayed. The project name is obtained from the command-line option and, if not set, from the DIRECTOR_PROJECT environment variable. describe [--project name] Like info but in JSON format. -p name, --project name Project name. check [--project name] Returns 0 if a project exists or non-zero if it does not exist. -p name, --project name Project name. cancel [--project name] Sends a SIGTERM signal to a running project. For this to succeed, the project state must be UNFINISHED and the reg- istered parent PID must be the same as the parent PID of the currently running process. -p name, --project name Project name. ENVIRONMENT DIRECTOR_CONFIG Configuration file. DIRECTOR_PROJECT Project name. SEE ALSO appjail(1) director-spec(5) AUTHORS JesAos Daniel Colmenares Oviedo <DtxdF@disroot.org> FreeBSD ports 15.1 March 04, 2026 DIRECTOR(1)
NAME | SYNOPSIS | DESCRIPTION | ENVIRONMENT | SEE ALSO | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=director&sektion=1&manpath=FreeBSD+15.1-RELEASE+and+Ports>
