# Первый проект

URL: https://docs.nolay.ru/start/first-project/
Updated: 2026-09-23

> Задеплоить проект из GitHub, архива, Git по ссылке или готового образа мастером в четыре шага.

После этой страницы на вашем сервере будет работать проект. Нужен [подключённый сервер](/start/connect-server/) со статусом «Онлайн».

## Мастер проекта

Откройте сервер в панели и нажмите «Новый проект». Мастер идёт в четыре шага:

1. **Источник.** Откуда брать код и как назвать проект.
2. **Определение.** Агент получает код на сервер и подбирает сборщик, порт и проверку готовности. Результат можно изменить.
3. **Домен.** Адрес, по которому проект откроется. Пустое поле оставляет проект внутренним.
4. **Дополнительно.** Бэкапы, база рядом и защита. Всё это можно включить и позже.

Кнопка «Создать и задеплоить» запускает сборку. Окно деплоя показывает шаги и лог сборки.

![Шаг «Источник»: четыре способа получить код. «GitHub через приложение» доступен после подключения GitHub в настройках.](https://docs.nolay.ru/shots/ru/project-new-light.png)

## Источники кода

### GitHub через приложение

Подходит для закрытых и открытых репозиториев. Один раз подключите приложение Nolay в «Настройки», вкладка GitHub, и дайте ему доступ к нужным репозиториям. В мастере выберите репозиторий и ветку из списка.

После этого каждый push в выбранную ветку сам запускает деплой, а статус деплоя виден в GitHub рядом с коммитом.

### Публичный Git по ссылке

Открытый репозиторий на GitHub, GitLab или своём сервере: укажите адрес и ветку. Для закрытого репозитория по ссылке задайте проекту секрет `NOLAY_GIT_TOKEN` (HTTPS) или `NOLAY_GIT_SSH_KEY` (SSH-ключ многострочным значением). Логин и токен в адрес не пишутся.

### Архив

Архив `.zip`, `.tar.gz` или `.tgz` с компьютера, без git, до 200 МБ. Уберите из архива `node_modules`, каталоги сборки и `.git`: они не нужны, сборка идёт на сервере.

Панель архив не хранит: он проходит через hub к агенту и удаляется. Для следующего деплоя архив загружается заново.

### Готовый образ

Образ из реестра, например `ghcr.io/org/app:1.2`. Сборки нет, агент скачивает образ и запускает. Образ должен скачиваться без входа в реестр: закрытые реестры с логином пока не поддерживаются.

## Как собирается образ

Сборка всегда идёт на вашем сервере. Сборщик по умолчанию `auto`:

1. Есть `Dockerfile` в корне: сборка по нему.
2. Стек узнан по файлам: шаблон Nolay (Node.js, Next.js, Python, Go, Bun, Ruby, статика) или Railpack.
3. Стек не узнан: ошибка «стек не распознан», тогда добавьте Dockerfile или выберите сборщик вручную.

Все сборщики и поля описаны в [справочнике `nolay.toml`](/reference/nolay-toml/). Файл `nolay.toml` в корне репозитория имеет приоритет над формой в панели.

## Проверить, что проект работает

Статус проекта в панели «Работает». Если домен не задан, проект доступен только внутри сервера. Чтобы открыть его из браузера, подключите [домен](/guides/domains/).

## Если не получилось

| Что видно | Почему | Что сделать |
|---|---|---|
| «Деплой завершился ошибкой» | Сборка упала | Последние строки лога сборки называют причину |
| «Проверка готовности не прошла» | Приложение не ответило на порту | Проверьте порт в настройках и что приложение слушает `0.0.0.0` |
| Код `git_access_denied` | Нет доступа к репозиторию | [Справочник ошибок](/reference/errors/#agent-git_access_denied) |
| «Архив больше 200 МБ» | В архиве зависимости или сборки | Упакуйте только исходники |

## Что дальше

Подключите [домен и HTTPS](/guides/domains/) и задайте [секреты](/guides/secrets/).
