# `Hyper.Cfg.Dirs`
[🔗](https://github.com/harmont-dev/hyper/blob/main/lib/hyper/cfg/dirs.ex#L1)

The node's work directory and every directory derived from it.

`work_dir` is the single configurable root (`config.toml`-only, shared with the
setuid helper); everything else is a fixed sub-path so the node and helper
agree on layout without a second key to keep in sync.

# `chroot_base`

```elixir
@spec chroot_base() :: Path.t()
```

Per-VM chroot directories (`<work_dir>/jails`).

# `firecracker_install_dir`

```elixir
@spec firecracker_install_dir() :: Path.t()
```

Where a node-downloaded firecracker installs (`<work_dir>/redist/firecracker`).

# `layer_dir`

```elixir
@spec layer_dir() :: Path.t()
```

Read-only image layer store. Delegates to `Hyper.Cfg.Img.store/0`.

# `redist_dir`

```elixir
@spec redist_dir() :: Path.t()
```

Node-downloaded binaries (`<work_dir>/redist`).

# `scratch_dir`

```elixir
@spec scratch_dir() :: Path.t()
```

Per-VM copy-on-write writable layers (`<work_dir>/scratch`).

# `socket_dir`

```elixir
@spec socket_dir() :: Path.t()
```

Per-VM control/gRPC sockets (`<work_dir>/socks`).

# `umoci_install_dir`

```elixir
@spec umoci_install_dir() :: Path.t()
```

Where the default umoci installs (`<work_dir>/redist/umoci`).

# `vmlinux_install_dir`

```elixir
@spec vmlinux_install_dir() :: Path.t()
```

Where guest kernels install (`<work_dir>/redist/vmlinux`).

# `work_dir`

```elixir
@spec work_dir() :: Path.t()
```

Root work directory for this node. config.toml `work_dir`, default `/srv/hyper`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
