---
title: "Деплой приложения Actix в App Platform"
description: "Как развернуть приложение Actix в сервисе App Platform. Документация и инструкции по работе с облачными сервисами Timeweb Cloud."
---

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

> [!NOTE]
> Пример Actix-приложения для деплоя можно найти на [Гитхабе](https://github.com/timeweb-cloud-apps/app-example-actix).

## Сборка приложения

При сборке приложения используется среда:

-   Rust
    
-   Cargo
    

Сборка выполняется в корне репозитория или в директории, которую вы укажете в поле «Путь к директории проекта».

Шаблон использует `multistage build`: на первом этапе собирается бинарный файл в режиме `release`, а на втором запускается готовое приложение.

По умолчанию во время сборки будет выполнена команда:

```bash
cargo build --locked --release
```

Убедитесь, что в проекте присутствует файл `Cargo.toml`, и в нем корректно описаны зависимости приложения. Флаг `--locked` фиксирует версии зависимостей из `Cargo.lock`, поэтому файл `Cargo.lock` должен быть актуальным и добавленным в репозиторий.

Если для сборки нужны дополнительные системные пакеты, например библиотеки для работы с OpenSSL, укажите их в поле «Зависимости». Они будут установлены до запуска `cargo build`.

## Выбор бинарного файла для запуска

После сборки App Platform выбирает бинарный файл для запуска в следующем порядке:

1.  Если в команде сборки явно указан флаг `--bin <name>` или `--bin=<name>`, будет использован этот бинарный файл.
    
2.  Если флаг `--bin` не указан, шаблон попробует определить бинарный файл по значению `default-run` из файла `Cargo.toml` через `cargo metadata`.
    
3.  Если `default-run` не задан, шаблон просканирует директорию `target/release`.
    
4.  Если найден ровно один исполняемый бинарный файл, будет запущен он.
    

Если кандидатов несколько, сборка завершится с ошибкой. В этом случае укажите бинарный файл явно в команде сборки:

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

## Требования к приложению

Убедитесь, что приложение слушает `0.0.0.0`, а не `127.0.0.1`, иначе внешние подключения работать не будут.
