Сборка и развёртывание приложений на VPS
Настраиваем процесс, в котором изменения из GitHub собираются в Docker-образы через GitHub Actions и выпускаются на ваш VPS — для нового приложения или существующего проекта.
Как проходит доставка обновления
Базовый процесс, который настраиваем для проекта.
1.Изменения в GitHub
Код и конфигурация хранятся в репозитории, изменения вносятся через ветки.
2.Запуск GitHub Actions
Workflow запускается по правилу выпуска, согласованному для проекта.
3.Сборка Docker-образа
Приложение собирается в Docker-образ, который сохраняется в реестре образов.
4.Развёртывание на VPS
Сервер получает новые образы и перезапускает контейнеры приложения.
Не каждое изменение сразу попадает на рабочий сервер: правило выпуска согласуем для проекта — например, публикация только после слияния в основную ветку или по ручному запуску.
Новое приложение или существующий проект
Новое приложение
Настраиваем сборку и развёртывание в рамках разработки, чтобы обновления выпускались по согласованному процессу.
Существующий проект
Сначала изучаем инфраструктуру: репозиторий, сервер и текущий способ запуска. Затем предлагаем, что настроить или доработать, и согласуем объём работ.
Каким проектам подходит
Сайты и веб-приложения
Frontend и серверная часть, которые работают на вашем VPS.
Backend и API
Серверная часть для сайтов, веб-сервисов и мобильных приложений.
Серверная часть мобильных приложений
API и backend на VPS. Сборка и публикация самого приложения в App Store и Google Play — отдельный процесс.
Проекты на собственном сервере
Когда приложение должно работать на вашем VPS.
Какие работы выполняем
Базовый процесс сборки и развёртывания.
Репозиторий и ветки
Организуем работу с репозиторием GitHub: основная ветка и ветки для изменений.
Docker-образы
Готовим Dockerfile для частей приложения и настраиваем их сборку.
Workflow GitHub Actions
Описываем сборку и выпуск в workflow, который запускается по правилу проекта.
Развёртывание на VPS
Настраиваем запуск контейнеров на сервере через Docker Compose и их обновление до новых образов.
Дополнительные работы — по согласованию
Подключаем, если это нужно проекту. Объём и условия согласуем отдельно.
Автоматические проверки
Тесты, проверка типов и сборка до выпуска.
Миграции базы данных
Применение миграций при обновлении.
Резервная копия перед миграциями
Копия базы данных перед изменением её структуры.
Возврат к предыдущей версии
Запуск предыдущих Docker-образов, сохранённых по версии, — вручную, по инструкции.
Проверка после запуска
Проверка, что приложение отвечает после обновления.
Секреты и настройки
Ключи и пароли хранятся в GitHub Secrets и на сервере, а не в коде.
Что передаём заказчику
Конфигурацию в репозитории
Dockerfile, файлы Docker Compose и workflow GitHub Actions.
Описание процесса
Как выпускается обновление и как запустить выпуск вручную, если это предусмотрено.
Перечень настроек
Какие секреты и переменные окружения нужно задать — без их значений в описании.
Обсудить развёртывание
Расскажите о проекте: новое это приложение или уже работающее, где хранится код и на каком сервере оно должно работать.