---
title: "How to Deploy an Actix Application | Hostman Docs"
---

> For the complete documentation index for AI agents, see [llms.txt](https://hostman.com/llms.txt).

You can find the step-by-step deployment guide [here](https://hostman.com/docs/app-platform/backend-apps/).

This guide covers the build process, binary selection logic, and the runtime requirements your Actix application must meet to be successfully deployed on Hostman App Platform.

## Building the Application

The application is built using the following environment:

-   Rust
-   Cargo

The build process runs in the root of the repository or in the directory specified in the **Project directory path** field.

The template uses a multi-stage build process. During the first stage, the application binary is compiled in release mode. During the second stage, the final runtime image starts the compiled application.

By default, the following build command is executed:

```shell
cargo build --locked --release
```

Make sure your project includes a valid `Cargo.toml` file with all required dependencies correctly defined.

The `--locked` flag forces Cargo to use dependency versions from `Cargo.lock`. Ensure that the `Cargo.lock` file is up to date and committed to the repository.

If your application requires additional system packages during the build process, such as OpenSSL libraries, specify them in the **Dependencies** field. These packages are installed before the `cargo build` command runs.

## Selecting the Binary to Run

After the build is completed, App Platform selects the binary to run using the following logic:

1.  If the build command explicitly includes the `--bin <name>` or `--bin=<name>` flag, that binary is used.
2.  If the `--bin` flag is not provided, the template attempts to detect the binary using the `default-run` value from `Cargo.toml` through `cargo metadata`.
3.  If `default-run` is not defined, the template scans the `target/release` directory.
4.  If exactly one executable binary is found, it is selected automatically.
5.  If multiple executable binaries are found, the build fails with an error. In this case, specify the binary explicitly in the build command:

```shell
cargo build --locked --release --bin <name>
```

## Application Requirements

Make sure your application listens on `0.0.0.0` instead of `127.0.0.1`. Otherwise, external connections will not be able to reach the application.
