Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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)

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>

home | help