# Module Netplex_controller

    module Netplex_controller: sig .. end

Controller

The controller is the main part of the Netplex system that starts and stop the individual service containers.

    val create_controller : Netplex_types.parallelizer ->
           Netplex_types.controller_config -> Netplex_types.controller

Create a controller with the default event system

    val create_controller_for_esys : Unixqueue.event_system ->
           Netplex_types.parallelizer ->
           Netplex_types.controller_config -> Netplex_types.controller

Create a controller for the passed event system

    val extract_config : Netplex_types.logger_factory list ->
           Netplex_types.config_file -> Netplex_types.controller_config

Extracts the controller config

## Configuring the controller

There is a `controller` section that may configure the controller:

     netplex {
             ...
             controller {
               socket_directory = "/var/run/myapp_sockets";
               max_level = "debug";
               logging { ... };
             }
             ...
           }

The `socket_directory` overrides the location where the special directory with Unix Domain sockets and other runtime files is created.

The `max_level` parameter defines the global maximum log level. It defaults to "info". By setting it to "debug" (as shown) debug logging is enabled. This parameter can be modified at runtime.

The `logging` section is explained in `Netplex_log`.

    module Debug: sig .. end