COMPNET
DevOps и CI/CD

Сборка и развёртывание приложений на VPS

Настраиваем процесс, в котором изменения из GitHub собираются в Docker-образы через GitHub Actions и выпускаются на ваш VPS — для нового приложения или существующего проекта.

Путь обновления: ветка в репозитории, шаги workflow, сборка образа и сервер, на который он развёртывается
Схема

Как проходит доставка обновления

Базовый процесс, который настраиваем для проекта.

  1. 1.Изменения в GitHub

    Код и конфигурация хранятся в репозитории, изменения вносятся через ветки.

  2. 2.Запуск GitHub Actions

    Workflow запускается по правилу выпуска, согласованному для проекта.

  3. 3.Сборка Docker-образа

    Приложение собирается в Docker-образ, который сохраняется в реестре образов.

  4. 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.

  • Описание процесса

    Как выпускается обновление и как запустить выпуск вручную, если это предусмотрено.

  • Перечень настроек

    Какие секреты и переменные окружения нужно задать — без их значений в описании.

Заявка

Обсудить развёртывание

Расскажите о проекте: новое это приложение или уже работающее, где хранится код и на каком сервере оно должно работать.

Укажите хотя бы один способ связи — телефон или email.