# macaw_host v0.1.4 - API Reference

## Modules

- [Macaw.Host.Build](Macaw.Host.Build.md): An app's build: its version and the commit it was built from, fixed at
compile time.
- [Macaw.Host.Config](Macaw.Host.Config.md): An app's configuration, from the literal `config.exs` on its data volume.
- [Macaw.Host.Config.Literal](Macaw.Host.Config.Literal.md): The literal `config.exs` on a host's data volume: a map that is parsed,
never evaluated.
- [Macaw.Host.Config.Types](Macaw.Host.Config.Types.md): The setting types `Macaw.Host.Config` understands, and how a value of each
is read from an environment variable (a string) or checked from
`config.exs` (a literal).
- [Macaw.Host.Ctl](Macaw.Host.Ctl.md): Generates an app's host control script, `<app>-ctl`, so the apps of the
family stop hand-maintaining thousands of lines of the same script.
- [Macaw.Host.Ctl.Description](Macaw.Host.Ctl.Description.md): The app description `<app>-ctl` is generated from: the `:ctl` key of the
app's `mix.exs` project config, checked once here so the templates can
trust every value.
- [Macaw.Host.Ctl.Recorder](Macaw.Host.Ctl.Recorder.md): A recording stand-in for a generated script's `Ctl.World`, so an app's
tests drive every `<app>-ctl` command without docker on the box and
assert each command's exact docker argv.
- [Macaw.Host.Health](Macaw.Host.Health.md): An app's health, in one shape every `<app>-ctl status` reads.
- [Macaw.Host.Health.Plug](Macaw.Host.Health.Plug.md): Serves an app's health report as JSON: `200` when healthy, `503` when not.
- [Macaw.Host.Release](Macaw.Host.Release.md): The release side of an app's `<app>-ctl`: entry points the script runs as
`bin/<app> eval` (in a throwaway container, so they work with the app
stopped) or `bin/<app> rpc` (asking the running app).
- [Macaw.Host.Secrets](Macaw.Host.Secrets.md): Secrets the system generates itself (`secret_key_base`, signing and
sealing keys), kept in the data directory, readable by their owner only.

## Mix Tasks

- [mix macaw.host.ctl](Mix.Tasks.Macaw.Host.Ctl.md): Generates the app's host control script from the `:ctl` description in
its `mix.exs` (`Macaw.Host.Ctl.Description`) and its own commands
(`Ctl.AppCommands`, in `ctl/app_commands.ex` by default).

