FILE → FOLDER → WORKING DIRECTORY → PROCESS → SERVICE → PORT → SERVER → DOMAIN → USER
Файл хранит код или данные. Папка объединяет файлы. Путь говорит, где они лежат. Процесс - запущенная программа. Служба - процесс, которым управляет система и который может стартовать после перезагрузки. Порт - сетевой вход конкретного сервиса. Среда выполнения - среда, в которой код выполняется. Переменная окружения - настройка, переданная процессу извне.
ХАРДКОДИНГ PRO
Гайд №15. Публикация проекта и VPS
Простыми словами: как сделать так, чтобы твой бот, сайт или ИИ-сервис работал в интернете постоянно, даже когда твой ноутбук выключен.
VPS = удалённый компьютерGitHub = история версийSSH = безопасный доступАвтозапуск 24/7Домен + HTTPSПроверка работы
Весь путь в одной картинке: проект на компьютере → сервер → домен → реальные пользователи.
Если запомнить только одну мысль
Публикация проекта, или деплой, - это перенос готового проекта с твоего компьютера туда, где он сможет работать постоянно.
Ты не обязан становиться системным администратором. Твоя задача - понимать общий маршрут, правильно поставить задачу ИИ и уметь проверить конечный результат.
Проект→GitHub→удалённый сервер→домен→проверка
Словарь перед стартом: 10 терминов без программистского языка
Не пытайся всё запомнить. Просто возвращайся сюда, когда встретишь незнакомое слово.
ДеплойПубликация проекта. Был у тебя на ноутбуке, стал работать для пользователей.
VPSАрендованный удалённый компьютер в дата-центре. Он включён 24/7.
GitHubХранилище кода и истории его изменений. Позволяет вернуться к рабочей версии.
SSHБезопасный способ подключиться к удалённому серверу и дать ему команды.
.envФайл с секретными настройками: токенами, паролями, адресами баз. В GitHub его не кладут.
Автозапуск сервиса (systemd)Встроенный в Linux «дежурный», который запускает твой сервис и поднимает его снова после сбоя.
ДоменЧеловеческий адрес вроде example.ru вместо цифр IP-адреса сервера.
HTTPSЗащищённое соединение с сайтом. Именно замочек возле адреса в браузере.
Быстрая проверкаПроверяем, что сервис вообще жив и главная функция работает. Техническое название - smoke test.
Сквозная проверкаПовторяем путь настоящего пользователя от начала до результата. Техническое название - E2E.
1. Что значит «опубликовать проект»
Представь, что ИИ собрал тебе Telegram-бота или сайт. Пока он запускается только на твоём ноутбуке, им по-настоящему никто не может стабильно пользоваться.
По-человечески: деплой - это когда мы берём уже проверенный проект и переносим его на постоянно включённый компьютер в интернете.
До деплоя код зависит от твоего компьютера. После деплоя сервис живёт на сервере.
Пока проект только у тебя
он зависит от твоего ноутбука;
после выключения компьютера может перестать работать;
другим людям сложно дать стабильный доступ;
изменения легко случайно потерять.
После публикации
проект работает на отдельном сервере;
пользователь получает постоянный адрес или Telegram-бота;
сервис умеет запускаться автоматически;
ошибки записываются в журнал;
можно вернуть предыдущую рабочую версию.
Зачем тебе это: именно после этого твоя разработка превращается из эксперимента в настоящий цифровой продукт.
2. Твой компьютер или удалённый сервер
Это не выбор «или-или». Обычно проект создают и меняют на своём компьютере, а рабочую версию для пользователей держат на удалённом сервере.
Разрабатываем и экспериментируем локально. Рабочий сервис для людей держим в стабильной среде.
VPS простыми словами: это обычный компьютер, только он стоит не у тебя дома, а в дата-центре. Ты арендуешь его через интернет. У него есть процессор, память, диск и операционная система.
Где
Для чего удобно
Что важно понимать
Твой Mac или Windows
Создавать, экспериментировать, быстро смотреть изменения
Если ноутбук выключен, локально запущенный сервис тоже выключен
Готовая облачная платформа
Быстро опубликовать простой сайт или приложение
Проще, но меньше контроля
VPS, то есть удалённый сервер
Боты, ИИ-агенты, серверная часть сайта, API, несколько сервисов
Нужно один раз правильно настроить
Облачный сервер с видеокартой
Свои ИИ-модели, генерация, тяжёлые вычисления
Дороже и сложнее, новичку обычно не нужен
Правило для старта: кодить можно локально. Всё, что должно работать для клиентов 24/7, лучше выносить в постоянную среду.
3. Путь проекта от идеи до пользователя
Тебе не нужно помнить команды. Нужно понимать, что происходит на каждом этапе.
Код становится реальным сервисом не одним действием, а короткой цепочкой проверяемых переходов.
1
Код проекта
ИИ создаёт и изменяет файлы проекта. Пока это просто рабочая версия.
2
Git - история изменений проекта
Мы сохраняем контрольные точки. Если ИИ сломает проект, можно увидеть, что изменилось, и вернуться назад.
3
GitHub - главное место хранения кода и его истории
Здесь лежит код проекта и его история. Секретные ключи сюда не кладём.
4
VPS - удалённый компьютер
На сервер попадает нужная версия проекта. Там она запускается и работает постоянно.
5
Домен - удобный адрес
Вместо набора цифр пользователь открывает понятный адрес вроде мой-сервис.рф.
6
Проверка реальным сценарием
Мы открываем сервис как обычный пользователь и проверяем главную функцию от начала до результата.
Главная мысль: «ИИ написал код» и «продукт работает для людей» - это два разных состояния.
Путь публикации: локальный проект → GitHub → VPS → домен → проверка production
4. Как ИИ получает доступ к удалённому серверу
Чтобы ИИ мог установить программу, проверить файлы или перезапустить сервис на VPS, ему нужен безопасный канал связи.
SSH простыми словами: это защищённая дверь в твой удалённый компьютер. Через неё можно открыть терминал сервера и выполнять команды.
SSH - транспорт команд. Приватный ключ остаётся приватным.
Вариант с паролем
Работает, но для постоянной автоматизации менее удобен. Пароли приходится хранить и передавать аккуратно.
Вариант с ключом доступа SSH
Создаётся пара ключей. Публичная часть лежит на сервере, а приватная остаётся только у владельца или в защищённом инструменте.
Очень важно: приватный SSH-ключ - это почти как ключ от квартиры. Не вставляй его в обычный чат и не загружай в GitHub.
Что говорить ИИ: «Подключись к серверу через уже настроенный безопасный доступ. Секреты и приватные ключи в ответе не показывай».
5. Зачем тебе GitHub, если ты не программист
GitHub нужен не ради «программистской культуры». Он даёт тебе контроль над проектом.
Что он даёт
История: видно, что и когда изменилось.
Точка возврата: можно вернуться к рабочей версии.
Переносимость: проект можно забрать на другой сервер.
Совместная работа: разные ИИ и люди работают с одной базой кода.
По-человечески: GitHub - это сейф с версиями твоего проекта. Если после новой правки всё сломалось, у тебя есть куда вернуться.
6. Где хранить пароли, токены и ключи
Код путешествует через Git. Секреты живут в защищённой runtime-среде.
.env простыми словами: это отдельный файл с настройками, которые нельзя публиковать вместе с кодом. Например, пароль от базы, токен Telegram-бота или ключ к ИИ-модели.
Представь, что код - это автомобиль, а секреты - ключи от автомобиля. Инструкцию по устройству машины можно хранить публично. Ключ зажигания - нет.
# пример файла .env на сервере
РЕЖИМ_РАБОТЫ=рабочий
АДРЕС_БАЗЫ=...
ТОКЕН_TELEGRAM=...
КЛЮЧ_ИИ=...
СЕКРЕТ_АВТОРИЗАЦИИ=...
Безопасная проверка: проси ИИ подтвердить, что нужный секрет существует, но не проси показывать его значение.
Пример задания: «Проверь, что все обязательные секретные настройки существуют. Значения не показывай. Напиши только: настройка найдена или отсутствует».
7. Как сделать так, чтобы сервис работал постоянно
Если ты просто запустил программу в открытом окне терминала, она часто работает только пока это окно и подключение живы.
Нам нужен автозапуск: специальная служба должна сама запускать проект после перезагрузки сервера и перезапускать его, если он упал.
Автозапуск сервиса (systemd) следит за процессом, перезапускает его и поднимает после reboot.
Автозапуск сервиса (systemd)
Встроенный в Linux «дежурный». Он знает команду запуска твоего сервиса, следит за ним и может поднять его снова. Для новичка достаточно понимать именно это.
Контейнер приложения (Docker)
Способ упаковать приложение вместе с нужным окружением в отдельную «коробку». Полезно, но для первого простого проекта не всегда обязательно.
Сервис действительно работает 24/7, если: ты закрыл терминал, выключил ноутбук, сервер перезагрузился, а бот или сайт всё равно снова доступен.
Не учи команды наизусть. Попроси ИИ проверить статус службы, перезапустить её и показать безопасные строки журнала.
8. Домен и защищённый доступ к сайту
До этого момента приложение уже может работать на сервере. Теперь делаем нормальный вход для пользователя.
Пользователь идёт на домен, домен приводит его на VPS, reverse proxy передаёт запрос приложению.
мой-сайт.рф→поиск сервера→VPS→приложение
Адресная книга интернета (DNS)
Когда человек вводит домен, DNS подсказывает браузеру, на какой сервер нужно идти. То есть связывает красивое имя с IP-адресом сервера.
Промежуточный веб-сервер
Обычно внутри VPS приложение работает на своём техническом порту. Nginx, Caddy или Traefik принимают внешний запрос и передают его нужному приложению. Технический термин - reverse proxy.
Защищённое соединение (HTTPS)
Это тот самый замочек в браузере. Данные между пользователем и сайтом шифруются.
Важная проверка: фраза «сервер ответил кодом 200» ещё не гарантирует, что пользователь видит именно нужную страницу. Открой адрес и проверь содержимое и главный сценарий.
9. Как доказать, что всё действительно работает
Самая опасная фраза от ИИ: «Готово, всё работает». Нам нужны не слова, а проверки.
Быстрая проверка
Техническое название - smoke test. Проверяем самое базовое: сервис запущен, главная функция отвечает, база доступна.
Сквозная проверка
Техническое название - E2E test. Повторяем путь реального человека: открыл → вошёл → сделал действие → получил правильный результат.
Логи - журнал работы сервиса
Логи - это записи о том, что происходило внутри программы. Если сервис упал, именно по ним ИИ чаще всего понимает причину.
Пример: вместо «бот почему-то не отвечает» ты получаешь факт: «в 21:14 внешний сервис вернул ошибку, поэтому ответ не был отправлен».
Что попросить ИИ показать после публикации
какая версия проекта сейчас запущена;
работает ли служба автозапуска;
какой публичный адрес открыть;
результат быстрой проверки;
результат одного сквозного пользовательского сценария;
последние безопасные строки логов без паролей и ключей;
к какой рабочей версии можно вернуться.
10. Что делать, если после изменения всё сломалось
Главное - не просить ИИ хаотично «почини всё». Сначала нужно вернуть пользователям рабочую версию.
Ошибка→смотрим журнал→находим последнее изменение→возвращаем рабочую версию→проверяем снова
Откат, или rollback: это возврат к предыдущей рабочей версии проекта. Это нормальная штатная операция, а не провал.
Что случилось
Что проверяем первым
Сервис вообще не запускается
Статус службы и последние записи журнала
После обновления пользователь видит ошибку
Что именно изменилось, есть ли все настройки и доступ к базе
Домен не открывает приложение
Связь домена с сервером и маршрутизацию запроса
Работает только до перезагрузки
Включён ли автозапуск
Новая функция сломала старую
Вернуться к рабочей версии и провести сквозную проверку
11. 6 готовых заданий для ИИ
Их можно копировать почти без изменений. Они специально написаны так, чтобы ИИ объяснял действия новичку.
Промпт 1. Разобраться в проекте до публикации
Если автоматическое копирование не сработает, текст можно выделить вручную.
Промпт 2. Подготовить VPS
Если автоматическое копирование не сработает, текст можно выделить вручную.
Промпт 3. Опубликовать проект через GitHub
Если автоматическое копирование не сработает, текст можно выделить вручную.
Промпт 4. Подключить домен и HTTPS
Если автоматическое копирование не сработает, текст можно выделить вручную.
Промпт 5. Сделать работу 24/7
Если автоматическое копирование не сработает, текст можно выделить вручную.
Промпт 6. Проверить рабочий сервис
Если автоматическое копирование не сработает, текст можно выделить вручную.
12. Финальная проверка проекта
Не надо понимать весь код. Нужно уметь честно поставить галочку напротив каждого пункта.
Твой прогресс0 / 25
Отмечай только то, что реально проверено.
13. Практика: опубликуй один свой настоящий проект
Не создавай новый учебный проект. Возьми то, что тебе реально нужно: Telegram-бота, сайт, мини-приложение, ИИ-агента или небольшой сервис.
Цель домашки: не «потренироваться с сервером», а впервые получить собственный цифровой продукт, который работает без твоего ноутбука.
Что должно получиться
код проекта сохранён в GitHub;
рабочая версия запущена на VPS или подходящей облачной платформе;
пароли и токены отделены от кода;
сервис автоматически запускается;
есть понятная точка входа: домен, ссылка или рабочий Telegram-бот;
проведена быстрая проверка;
проведён один полный сценарий пользователя;
проверено восстановление после перезапуска;
ИИ оставил короткую инструкцию: как обновить, проверить и восстановить сервис.
Артефакт победы: пришли в группу ссылку или рабочего бота + скрин результата + коротко напиши, что теперь работает без твоего компьютера.
Перед переходом дальше: Переходи дальше, когда сделал минимальную практику этого урока и можешь показать результат. Кнопка «Дальше» означает следующий учебный урок, а не обязанность внедрить каждую технологию.