Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Доставка и развертывание

Рабочая директория проекта /opt/npchat, доступ на запись есть только у пользователей группы npchat.

Параметра для запуска приложения распологаются в /opt/npchat/.env.production, читать может только группа.

Новые файлы в директории создаются с группой npchat, так как установлен setgid.

В корне рабочей директории располагаются директории релизов, куда помещается код или бинарные файлы сборок (прим.: /opt/npchat/v0.0.1-alpha).

Приложение запускается внутри docker-контейнера с именем npchat.api, образ для запуска контейнера создается с версией, которая совпадает с названием директории.

Автоматизация развертывания организована в 3 этапа:

  1. Посредством github-actions или вручную (git tag tagname && git push origin $_), создать тэг с версией в репозитории.
  2. Запустить workflow, который отправляет код тэга на сервер, в соответствующую директорию и собирает docker-образ.
  3. Запустить workflow, который запускает контейнер из образа, предварительно удалив существующий контейнер. В случае ошибки запуска нового контейнера, workflow запустит старый контейнер из прошлой рабочей версии. Если прошлая версия не запустилась, будет оправлено emergency оповещение.