С чего начать
Что такое деплой простыми словами и чем он отличается от публикации
Коротко
Деплой — это перенос готового кода на сервер и его запуск там, чтобы программой могли пользоваться другие люди, а не только вы на своём компьютере. По смыслу это то же самое, что публикация сайта, только слово шире: деплоят и сайты, и ботов, и API, и обновления уже работающих программ. Обычно деплой состоит из четырёх этапов: сборки, запуска, проверки и выдачи адреса. На платформах вроде Netrun все этапы проходят сами после загрузки кода, а в интерфейсе это называется публикацией.
- Слово «деплой» пришло из английского deploy — «развернуть», то есть установить программу на сервер и запустить её.
- Деплой обычно состоит из четырёх этапов: сборки, запуска, проверки работоспособности и выдачи адреса.
- Продакшн, или прод, — это рабочая версия программы, которой пользуются настоящие люди, в отличие от версии на компьютере разработчика.
- CI/CD — это автоматизация, при которой проверка кода и деплой запускаются сами после каждого изменения.
- Telegram-боту деплой тоже нужен, хотя ссылки на сайт у него нет: бот должен работать на сервере, а не на выключаемом ноутбуке.
Пока программа работает только на вашем компьютере, ею пользуетесь только вы. Сайт открывается по адресу localhost, бот отвечает, пока не закрыт ноутбук. Чтобы сайт открылся у друга, а бот отвечал ночью, код нужно перенести на сервер — компьютер, который всегда включён и подключён к интернету, — и запустить там. Вот это и называется деплоем.
Разработчики говорят «задеплоить», в интерфейсах чаще пишут «опубликовать», а смысл один и тот же. Отличие только в широте: «публикация» звучит как что-то про сайт, а деплоят всё — ботов, API, фоновые скрипты, обновления. Ниже — из чего состоит деплой, какие слова встречаются рядом и что сделать, чтобы ваш первый деплой прошёл без сюрпризов.
| Слово | Что значит по-человечески | Пример |
|---|---|---|
| Деплой (deploy) | Выложить программу на сервер и запустить её | «Задеплоил бота» — бот теперь работает не на ноутбуке |
| Сборка (build) | Подготовить код к запуску: скачать библиотеки, собрать файлы | Установка пакетов из requirements.txt или package.json |
| Продакшн, прод (production) | Рабочая версия, которой пользуются люди | «Упал прод» — сломалась живая версия сайта |
| Сервер | Компьютер, который всегда включён и подключён к интернету | Арендованная машина в дата-центре |
| Окружение (environment) | Место, где запущен код, со своими настройками | Ваш ноутбук, тестовый сервер, рабочий сервер |
| Переменные окружения | Настройки и секреты, которые передаются программе снаружи, а не пишутся в коде | Токен бота в переменной BOT_TOKEN |
| CI/CD | Автоматическая проверка и деплой после каждого изменения кода | Тесты и публикация сами запускаются после git push |
| Откат (rollback) | Вернуть предыдущую рабочую версию | Новая версия сломалась — вернули вчерашнюю |
Перечислите библиотеки проекта в одном файле#
Первый этап деплоя — сборка: сервер скачивает библиотеки, которые нужны вашему коду. Он узнаёт о них только из специального файла — requirements.txt у Python, package.json у Node.js, go.mod у Go. Если библиотека установлена у вас на компьютере, но в файле её нет, на сервере программа упадёт с ошибкой вроде ModuleNotFoundError. Проверьте, что всё, что вы импортируете, перечислено в этом файле.
Вынесите пароли и токены из кода#
Токен бота, ключ от нейросети и пароль от базы не должны лежать в коде: код часто попадает в репозиторий и в чужие руки. На сервере такие значения передаются программе через переменные окружения, а код читает их по имени. Так один и тот же код работает и у вас на компьютере, и на сервере, а секреты не утекают вместе с ним.
Проверьте, как программа запускается и слушает порт#
Второй этап — запуск: сервер должен понять, какую команду выполнить, чтобы программа заработала. Сайту при этом важно слушать адрес 0.0.0.0, а не localhost, и брать номер порта из переменной окружения PORT, иначе снаружи его не будет видно. Бот на опросе ничего не слушает, ему достаточно токена и понятной точки входа.
Выберите, где программа будет жить#
Сервер можно арендовать целиком (VPS) и всё настроить самому: систему, обновления, перезапуск после сбоев, сертификат HTTPS. А можно взять хостинг приложений, где этим занимается платформа, а от вас нужен только код. Первый путь даёт больше контроля, второй экономит время. Новичку обычно проще второй.
Опубликуйте код и дождитесь проверки#
Третий и четвёртый этапы — проверка и выдача адреса: платформа убеждается, что программа действительно поднялась и отвечает, и только после этого выдаёт ссылку. В Netrun код загружается архивом, из GitHub или прямо из редактора с ИИ, а на экране видно, на каком этапе публикация. Если что-то пошло не так, ошибка показывается человеческими словами вместе с логами.
Проверьте результат и запомните, как обновлять#
Откройте ссылку с другого устройства или напишите боту с другого аккаунта: если работает, деплой прошёл. Обновление кода — это повторный деплой новой версии, адрес при этом не меняется. Учтите, что файлы, которые программа записала на диск, при обновлении могут пропасть: в Netrun всё, что должно сохраниться, пишется в постоянную папку /data.
Деплой звучит как что-то из мира опытных программистов, но по сути это одна мысль: перенести программу с вашего компьютера туда, где она будет работать для всех. Если не хочется разбираться с сервером, загрузите код в Netrun: платформа сама соберёт проект, запустит его, проверит и выдаст ссылку с HTTPS. Заранее проверить проект можно бесплатно и без регистрации на странице проверки. Попробовать Netrun.
Частые вопросы
Чем деплой отличается от публикации сайта?
По сути ничем: и то и другое означает выложить программу на сервер и запустить её для других людей. «Публикация» обычно говорят про сайты, а «деплой» — про любой код, включая ботов, API и фоновые скрипты. В интерфейсе Netrun деплой называется публикацией.
Нужен ли свой сервер, чтобы задеплоить проект?
Не обязательно. Можно арендовать сервер целиком и настроить его самому, а можно воспользоваться хостингом приложений, где сервер уже настроен и от вас нужен только код. Для первого проекта второй путь обычно проще и быстрее.
Что значит «задеплоить на прод»?
Это значит выложить новую версию туда, где ей пользуются настоящие люди. Продом называют рабочую версию программы, в отличие от версии на компьютере разработчика или тестового сервера. Отсюда осторожность: ошибка на проде видна всем пользователям.
Почему после деплоя сайт не открывается, хотя на компьютере всё работало?
Чаще всего причина в одном из трёх: сайт слушает только localhost вместо 0.0.0.0, порт прописан в коде вместо чтения переменной PORT, или нужная библиотека не указана в файле зависимостей. На своём компьютере это незаметно, а на сервере ломает запуск. Логи деплоя обычно прямо называют проблему.
Нужно ли новичку настраивать CI/CD?
Для первого проекта — нет. CI/CD полезен, когда изменения выходят часто и их нужно автоматически проверять тестами. Пока вы обновляете проект время от времени, достаточно повторной публикации вручную.
Можно ли задеплоить проект бесплатно?
Да, у многих хостингов есть бесплатные тарифы с ограничениями. В Netrun на бесплатном тарифе можно опубликовать один проект: сайт засыпает без посетителей и просыпается сам, а бот работает ограниченное время. Для круглосуточной работы нужен тариф Pro.
Как опубликовать проект?
Загрузите код или подключите GitHub, ответьте на пару вопросов о проекте и получите ссылку. Всё остальное — сборку, запуск и HTTPS — мы берём на себя.
Нужен ли свой сервер или VPS?
Нет. Netrun разворачивает проект на своих серверах. Не нужно арендовать VPS, настраивать systemd и nginx или продлевать сертификаты — всё это работает за вас.
Нужно ли уметь работать с Docker?
Нет. Netrun сам определяет язык проекта и собирает его. Если у вас уже есть Dockerfile или docker-compose, мы их поддержим, но писать их специально не требуется.