<span id="deploy-from-local-code" />

# Развертывание из локального кода

Когда ваш код не на GitHub — или вы просто хотите итерироваться быстрее — загрузите текущую директорию напрямую с помощью `lizard up`. Она упаковывает вашу рабочую директорию в tarball, отправляет на узлы сборки и развертывает.

<span id="deploy-the-current-directory" />

## Развернуть текущую директорию

```bash
lizard up
```

- Загружает текущую директорию как tarball, уважая `.gitignore` (отключается через `--no-gitignore`).
- Принудительно включает `sourceType=upload`.
- Выводит логи сборки через SSE и печатает живой URL по завершении.

Если директория ещё не привязана к проекту, `up` сначала запускает `init`. В интерактивном TTY это происходит в диалоговом режиме; в неинтерактивном (CI) проект **не** создаётся молча — команда выдаёт ошибку и просит выполнить `lizard init --name <project>` (или передать `--name`). Это защищает от появления пустого проекта из-за опечатки.

<span id="common-flags" />

## Основные флаги

| Флаг | Назначение |
|------|----------|
| `-s, --service <name>` | Выбрать/создать конкретный сервис |
| `--build-command <cmd>` | Переопределить команду сборки |
| `--start-command <cmd>` | Переопределить команду запуска |
| `--pre-deploy-command <cmd>` | Запустить один раз перед каждым деплоем (например, миграции) |
| `--port <number>` | Порт контейнера (`0` = [режим воркера](https://lizard.build/ru/docs/deploy/workers)) |
| `--region <code>` | Регион для развертывания |
| `-d, --detach` | Запустить деплой и выйти без стриминга логов |
| `-c, --ci` | Вывод, дружественный к CI |
| `--no-gitignore` | Загрузить всё, игнорируя `.gitignore` |

```bash
lizard up --service api --start-command "node server.js" --port 8080
```

<span id="setting-buildstart-commands" />

## Установка команд сборки и запуска

Передача `--build-command` или `--start-command` переключает сервис на путь **синтезированного Dockerfile**. На этом пути `Procfile` и `package.json` `scripts.start` **не** считываются — задавайте команду запуска явно (или включите `CMD` в свой Dockerfile). Подробнее в разделе [Конвейер сборки](https://lizard.build/ru/docs/concepts/build-pipeline). Чаще всего это касается Python: [Django, Flask и FastAPI](https://lizard.build/blog/python-app-hosting#deploying-django) требуют разную строку `gunicorn` или `uvicorn`.

<span id="re-deploying-an-upload-service" />

## Повторное развертывание upload-сервиса

`lizard up` повторно загружает и пересобирает. Чтобы пересобрать **последнюю** загрузку с текущими переменными без повторной загрузки:

```bash
lizard redeploy --service api
```

## Headless / CI

Для неинтерактивных сценариев явно привяжите проект перед деплоем:

```bash
export LIZARD_TOKEN=lzd_xxx
lizard init --name my-project
lizard up --ci --service api
```

<span id="when-to-prefer-github-instead" />

## Когда лучше выбрать GitHub

Загрузка отлично подходит для быстрой итерации и ситуаций без удалённого репозитория. Для всего долгоживущего предпочитайте [источник из GitHub](https://lizard.build/ru/docs/deploy/github), чтобы пуши автоматически переразвертывали приложение и у вас была чистая история деплоев.

<span id="see-also" />

## См. также

- [`lizard up`](https://lizard.build/ru/docs/cli/up) — полный справочник команд.
- [Конвейер сборки](https://lizard.build/ru/docs/concepts/build-pipeline) — как определяется и собирается ваш стек.
