<a id="halon-manual"></a>

# Halon manual

[Halon](http://halon.io/) Engage & Protect is a fast, flexible and powerful email infrastructure software (MTA);
designed for demanding uses such as large-scale email services. The software is provided as Linux binaries, tooling for configuration and deployment, and management interfaces
for maximum adaptability to specific uses.

This manual references many other resources, such as:

* [Script language reference](https://docs.halon.io/hsl/)
* [Script library](https://docs.halon.io/go/scriptlibrary)
* [Knowledge base](https://docs.halon.io/go/knowledgebase)

<a id="table-of-contents"></a>

## Table of contents

* [System requirements](requirements.html.md)
  * [Storage disks](requirements.html.md#storage-disks)
  * [CPU](requirements.html.md#cpu)
  * [RAM](requirements.html.md#ram)
  * [DNS](requirements.html.md#dns)
  * [Linux tunables](requirements.html.md#linux-tunables)
* [Installation](install.html.md)
  * [Linux](install.html.md#linux)
    * [Ubuntu](install.html.md#ubuntu)
      * [Version pinning](install.html.md#version-pinning)
    * [RHEL](install.html.md#rhel)
      * [Version locking](install.html.md#version-locking)
    * [Azure Linux](install.html.md#azure-linux)
  * [Docker & K8s](install.html.md#docker-k8s)
  * [Upgrade](install.html.md#upgrade)
    * [Versioning scheme](install.html.md#versioning-scheme)
    * [Lifecycle compatibility](install.html.md#lifecycle-compatibility)
  * [License](install.html.md#license)
  * [Configuration](install.html.md#configuration)
  * [Programs](install.html.md#programs)
    * [Default paths](install.html.md#default-paths)
    * [File permissions](install.html.md#file-permissions)
    * [Troubleshooting](install.html.md#troubleshooting)
* [Configuration](config.html.md)
  * [Startup configuration](config_startup.html.md)
    * [Server directives](config_startup.html.md#server-directives)
    * [Monitor directives](config_startup.html.md#monitor-directives)
    * [Queue directives](config_startup.html.md#queue-directives)
    * [Threads directives](config_startup.html.md#threads-directives)
      * [Scripts](config_startup.html.md#scripts)
      * [Events](config_startup.html.md#events)
    * [Other directives](config_startup.html.md#other-directives)
    * [Clustering directives](config_startup.html.md#clustering-directives)
    * [Environment directives](config_startup.html.md#environment-directives)
      * [Performance and log](config_startup.html.md#performance-and-log)
      * [Configuration paths](config_startup.html.md#configuration-paths)
      * [Other environment](config_startup.html.md#other-environment)
  * [Running configuration](config_smtpd.html.md)
    * [Script directives](config_smtpd.html.md#script-directives)
    * [Server directives](config_smtpd.html.md#server-directives)
    * [Transport directives](config_smtpd.html.md#transport-directives)
    * [Monitor directives](config_smtpd.html.md#monitor-directives)
    * [Queue directives](config_smtpd.html.md#queue-directives)
    * [General directives](config_smtpd.html.md#general-directives)
    * [List directives](config_smtpd.html.md#list-directives)
    * [Resolver directives](config_smtpd.html.md#resolver-directives)
    * [Other directives](config_smtpd.html.md#other-directives)
    * [Example](config_smtpd.html.md#example)
  * [Suspend configuration](config_suspend.html.md)
    * [Suspend directives](config_suspend.html.md#suspend-directives)
  * [Policy configuration](config_policy.html.md)
    * [Policy directives](config_policy.html.md#policy-directives)
    * [Rate directives](config_policy.html.md#rate-directives)
  * [Delivery configuration](config_delivery.html.md)
    * [Delivery directives](config_delivery.html.md#delivery-directives)
  * [Performance tuning](config_tuning.html.md)
    * [Thread tuning](config_tuning.html.md#thread-tuning)
      * [servers[].threads.event](config_tuning.html.md#servers-threads-event)
      * [threads.scripts[].count](config_tuning.html.md#threads-scripts-count)
      * [threads.scripts[].concurrent](config_tuning.html.md#threads-scripts-concurrent)
      * [queues.threads.pickup](config_tuning.html.md#queues-threads-pickup)
      * [resolver.threads.event](config_tuning.html.md#resolver-threads-event)
      * [resolver.threads.ready](config_tuning.html.md#resolver-threads-ready)
    * [Startup configuration](config_tuning.html.md#startup-configuration)
      * [environment.syslog.mask](config_tuning.html.md#environment-syslog-mask)
      * [spool.fsync](config_tuning.html.md#spool-fsync)
      * [spool.loader.threads.wait](config_tuning.html.md#spool-loader-threads-wait)
      * [environment.uuid.version](config_tuning.html.md#environment-uuid-version)
    * [Running configuration](config_tuning.html.md#running-configuration)
      * [servers[].logging](config_tuning.html.md#servers-logging)
      * [servers[].phases.connect.remoteptr](config_tuning.html.md#servers-phases-connect-remoteptr)
      * [servers[].phases.data.multipart](config_tuning.html.md#servers-phases-data-multipart)
      * [servers[].phases.data.fixheaders](config_tuning.html.md#servers-phases-data-fixheaders)
    * [Resolver subsystem](config_tuning.html.md#resolver-subsystem)
      * [resolver.concurrency](config_tuning.html.md#resolver-concurrency)
      * [resolver.ednsbuffersize](config_tuning.html.md#resolver-ednsbuffersize)
      * [resolv.conf](config_tuning.html.md#resolv-conf)
        * [systemd](config_tuning.html.md#systemd)
        * [K8s](config_tuning.html.md#k8s)
    * [Queueing subsystem](config_tuning.html.md#queueing-subsystem)
      * [queues.pickup.prereaddata](config_tuning.html.md#queues-pickup-prereaddata)
      * [queues.pickup.backpressure](config_tuning.html.md#queues-pickup-backpressure)
      * [pooling](config_tuning.html.md#pooling)
    * [Memory tuning](config_tuning.html.md#memory-tuning)
    * [Disk tuning](config_tuning.html.md#disk-tuning)
* [Queuing subsystem](queue.html.md)
  * [Active queue](queue_active.html.md)
    * [Active queue pickup](queue_active.html.md#active-queue-pickup)
  * [Delivery settings](queue_delivery.html.md)
  * [Queue policies](queue_policy.html.md)
    * [Available fields](queue_policy.html.md#available-fields)
    * [Loading policy](queue_policy.html.md#loading-policy)
    * [Policy counter thresholds](queue_policy.html.md#policy-counter-thresholds)
      * [Policy conditions](queue_policy.html.md#policy-conditions)
      * [Policy properties](queue_policy.html.md#policy-properties)
    * [Backoff policy](queue_policy.html.md#backoff-policy)
    * [Policies with *uniqueip*](queue_policy.html.md#policies-with-uniqueip)
    * [Policy precedence](queue_policy.html.md#policy-precedence)
    * [Policy counter groups](queue_policy.html.md#policy-counter-groups)
  * [Cluster-aware policy](queue_cluster.html.md)
    * [Example architecture](queue_cluster.html.md#example-architecture)
    * [Delivery Orchestrator: `clusterd`](queue_cluster.html.md#delivery-orchestrator-clusterd)
    * [Writing policy for clusters](queue_cluster.html.md#writing-policy-for-clusters)
      * [Advanced usage: selective non-clustered properties](queue_cluster.html.md#advanced-usage-selective-non-clustered-properties)
    * [Observing clustered policy in operation](queue_cluster.html.md#observing-clustered-policy-in-operation)
    * [Moving messages between instances](queue_cluster.html.md#moving-messages-between-instances)
  * [Message suspension](queue_suspend.html.md)
    * [Excluding IPs from pool](queue_suspend.html.md#excluding-ips-from-pool)
  * [Changing message states](queue_changing.html.md)
    * [Messages on hold](queue_changing.html.md#messages-on-hold)
  * [Spool startup](queue_load.html.md)
  * [On-disk format](queue_load.html.md#on-disk-format)
  * [Queue statistics via CLI/API](queue_cli.html.md)
* [Command line interface](cli.html.md)
  * [Queue management](cli_queue.html.md)
    * [List messages](cli_queue.html.md#list-messages)
    * [Export messages](cli_queue.html.md#export-messages)
    * [Take actions on messages](cli_queue.html.md#take-actions-on-messages)
      * [Actions and working states](cli_queue.html.md#actions-and-working-states)
    * [Show messages distribution](cli_queue.html.md#show-messages-distribution)
    * [Show message structure in queue](cli_queue.html.md#show-message-structure-in-queue)
    * [Active queue policies](cli_queue.html.md#active-queue-policies)
    * [Active queue suspensions](cli_queue.html.md#active-queue-suspensions)
    * [Active queue delivery settings](cli_queue.html.md#active-queue-delivery-settings)
    * [Moving the queue files with *hqfmove*](cli_queue.html.md#moving-the-queue-files-with-hqfmove)
    * [Trace messages](cli_queue.html.md#trace-messages)
    * [Loading queue files](cli_queue.html.md#loading-queue-files)
  * [Configuration management](cli_config.html.md)
    * [Script syntax and packing](cli_config.html.md#script-syntax-and-packing)
    * [Reloading configurations](cli_config.html.md#reloading-configurations)
    * [Blue-green testing](cli_config.html.md#blue-green-testing)
    * [Remote configuration](cli_config.html.md#remote-configuration)
  * [Script engine](cli_script.html.md)
    * [Shared memory functions](cli_script.html.md#shared-memory-functions)
    * [Cache statement](cli_script.html.md#cache-statement)
  * [DNS resolver](cli_dns.html.md)
  * [Statistics and information](cli_stats.html.md)
    * [halontop](cli_stats.html.md#halontop)
    * [halonctl process-stats](cli_stats.html.md#halonctl-process-stats)
  * [Metrics summary](openmetrics.html.md)
  * [Script interpreter](cli_hsh.html.md)
    * [Options](cli_hsh.html.md#options)
    * [Script interpreter](cli_hsh.html.md#id1)
    * [Interactive shell](cli_hsh.html.md#interactive-shell)
* [API](api.html.md)
  * [Endpoint](api_endpoints.html.md)
    * [Monitor](api_monitor.html.md)
      * [Endpoints](api_monitor.html.md#endpoints)
        * [/metrics](api_monitor.html.md#metrics)
        * [/ready](api_monitor.html.md#ready)
        * [/healthy](api_monitor.html.md#healthy)
    * [Control socket](api_control_sockets.html.md)
    * [HTTP/JSON](api_http_json.html.md)
      * [Installation](api_install.html.md)
        * [Distributions](api_install.html.md#distributions)
          * [Ubuntu](api_install.html.md#ubuntu)
          * [RHEL](api_install.html.md#rhel)
          * [Azure Linux](api_install.html.md#azure-linux)
        * [Startup](api_install.html.md#startup)
      * [Upgrade](api_upgrade.html.md)
      * [Configuration](api_config.html.md)
        * [Authentication directives](api_config.html.md#authentication-directives)
        * [Listener directives](api_config.html.md#listener-directives)
        * [Other directives](api_config.html.md#other-directives)
        * [Environment directives](api_config.html.md#environment-directives)
      * [Examples](api_examples.html.md)
  * [API reference](api_reference.html.md)
    * [Command list](api_reference.html.md#command-list)
  * [Version compatibility](api_reference.html.md#version-compatibility)
  * [HTTP submission](http_submission.html.md)
    * [Endpoint reference](http_submission.html.md#endpoint-reference)
      * [Authentication](http_submission.html.md#authentication)
      * [HTTP request format](http_submission.html.md#http-request-format)
      * [HTTP response format](http_submission.html.md#http-response-format)
    * [Examples](http_submission.html.md#examples)
* [Web administration](web.html.md)
* [Code editor integrations](editors.html.md)
  * [Visual Studio Code](vscode.html.md)
    * [Extensions](vscode.html.md#extensions)
      * [Configuration Packer](vscode.html.md#configuration-packer)
      * [HSL Syntax](vscode.html.md#hsl-syntax)
      * [HSL Linter](vscode.html.md#hsl-linter)
      * [HSL Debugger](vscode.html.md#hsl-debugger)
      * [Code Companion](vscode.html.md#code-companion)
        * [Providing feedback](vscode.html.md#providing-feedback)
        * [Working with Dev Containers and Remote SSH](vscode.html.md#working-with-dev-containers-and-remote-ssh)
        * [Limitations](vscode.html.md#limitations)
        * [Copilot error messages](vscode.html.md#copilot-error-messages)
    * [Setting up a development environment](vscode.html.md#setting-up-a-development-environment)
    * [Editing YAML with custom tags](vscode.html.md#editing-yaml-with-custom-tags)
  * [Vim](vim.html.md)
    * [Features](vim.html.md#features)
    * [Installation](vim.html.md#installation)
      * [Upgrade](vim.html.md#upgrade)
    * [Screenshots](vim.html.md#screenshots)
* [Plugins](plugins.html.md)
  * [FFI](plugins_ffi.html.md)
  * [Native plugins](plugins_native.html.md)
    * [Exported by plugin](plugins_native.html.md#exported-by-plugin)
      * [Command plugin](plugins_native.html.md#command-plugin)
      * [HSL plugin](plugins_native.html.md#hsl-plugin)
      * [Queue plugin](plugins_native.html.md#queue-plugin)
      * [Delivery plugin](plugins_native.html.md#delivery-plugin)
    * [Exported by MTA](plugins_native.html.md#exported-by-mta)
      * [Objects](plugins_native.html.md#objects)
      * [Callable](plugins_native.html.md#callable)
      * [HSL plugin](plugins_native.html.md#id1)
      * [Lists plugin](plugins_native.html.md#lists-plugin)
      * [Inject plugin](plugins_native.html.md#inject-plugin)
      * [Import plugin](plugins_native.html.md#import-plugin)
      * [Queue plugin](plugins_native.html.md#id4)
      * [Delivery plugin](plugins_native.html.md#id5)
      * [Monitor plugin](plugins_native.html.md#monitor-plugin)
  * [HSL plugins](plugins_hsl.html.md)
  * [Development](plugins_development.html.md)
    * [hsh](plugins_development.html.md#hsh)
      * [hsh.yaml](plugins_development.html.md#hsh-yaml)
      * [hsh-app.yaml](plugins_development.html.md#hsh-app-yaml)
  * [Examples](plugins_examples.html.md)

* [Changelog](changelog.html.md)
