frappe_docker/DEPLOY.md
abounoone 717d19f966 Add hrms app and update branch strategy docs
apps.json:
- Add frappe/hrms @ version-16 (HR & Payroll, ★7.6k)
- Reorder: erpnext → hrms → crm → helpdesk → payments → insights → lms → telephony

DEPLOY.md:
- Add branch strategy table
- Add GitHub Actions workflows section

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 09:06:59 +00:00

6.9 KiB
Raw Blame History

Frappe ERP — развёртывание и обновление

Стратегия обновления приложений

Приложение Ветка Почему
frappe version-16 стабильная ветка мажорной версии
erpnext version-16 стабильная ветка мажорной версии
hrms version-16 стабильная ветка мажорной версии
crm main нет ветки version-16, main = стабильный
helpdesk main нет ветки version-16
insights main v2.x line, v3.x — отдельная мажорная версия
lms main нет ветки version-16
payments develop нет релизов, активная разработка
telephony develop нет релизов, активная разработка

Автоматические обновления — GitHub Actions каждый понедельник проверяет новые теги и создаёт PR при наличии обновлений (.github/workflows/check-app-updates.yml).

Автосборка образа — при merge в main с изменениями apps.json автоматически стартует сборка и публикация образа в GHCR (.github/workflows/build-image.yml).


Структура репозитория

frappe_docker/
├── apps.json                          ← список приложений для образа
├── compose.yaml                       ← основной docker-compose
├── .env                               ← конфигурация (не в git, создать из .env.example)
├── .env.example                       ← шаблон конфигурации
├── Makefile                           ← все команды управления
├── DEPLOY.md                          ← эта документация
│
├── .github/
│   └── workflows/
│       ├── check-app-updates.yml      ← еженедельная проверка обновлений → PR
│       └── build-image.yml            ← сборка образа при изменении apps.json
│
├── images/
│   ├── layered/Containerfile          ← сборка на базе frappe/build (быстро)
│   └── custom/Containerfile           ← сборка с нуля (полный контроль)
│
├── overrides/
│   ├── compose.assets-volume.yaml     ← общий том assets (обязателен)
│   ├── compose.mariadb.yaml           ← встроенная MariaDB
│   └── ...                            ← другие оверрайды (proxy, ssl, etc.)
│
└── scripts/
    ├── build.sh                       ← сборка образа
    ├── update-apps.sh                 ← проверка обновлений приложений
    └── new-site.sh                    ← создание нового сайта

Первый запуск

# 1. Создать конфигурацию
cp .env.example .env
# Отредактировать .env: задать DB_PASSWORD, FRAPPE_SITE_NAME_HEADER и т.д.

# 2. Собрать образ с приложениями из apps.json
make build

# 3. Запустить стек
make up

# 4. Создать сайт (если ещё не создан)
./scripts/new-site.sh erp.local YourAdminPassword

Обновление приложений

Шаг 1 — проверить доступные обновления

./scripts/update-apps.sh

Скрипт покажет последние коммиты каждого приложения из apps.json.

Шаг 2 — обновить apps.json при необходимости

Если нужна конкретная ветка или тег:

// apps.json
[
  { "url": "https://github.com/frappe/erpnext",  "branch": "version-16" },
  { "url": "https://github.com/frappe/crm",       "branch": "main" }
]

Шаг 3 — полный цикл обновления

make update

Это выполнит:

  1. make build — пересборка образа frappe-custom:v16
  2. docker compose up -d --no-deps — замена контейнеров без даунтайма DB/Redis
  3. bench migrate — применение миграций БД
  4. bench build — пересборка JS/CSS assets
  5. Перезапуск nginx

Частичные операции

make migrate          # только миграции (после ручного обновления)
make assets           # только пересборка JS/CSS
make restart          # перезапуск backend/frontend
make backup           # резервная копия сайта
make logs             # логи backend в реальном времени
make shell            # bash в контейнере backend
make ps               # статус всех контейнеров

Смена версии (например, v16 → v17)

# 1. Обновить ветки в apps.json
# 2. Пересобрать с новым тегом
make build TAG=v17

# 3. Обновить .env
# CUSTOM_TAG=v17

# 4. Пересоздать стек
make up
make migrate

Добавление нового приложения

  1. Добавить в apps.json:
{ "url": "https://github.com/frappe/hrms", "branch": "version-16" }
  1. Пересобрать образ и обновить:
make update
  1. Установить на сайт:
make shell
bench --site erp.local install-app hrms

Переменные окружения (.env)

Переменная Описание Пример
CUSTOM_IMAGE Имя Docker-образа frappe-custom
CUSTOM_TAG Тег образа v16
PULL_POLICY missing — использовать локальный образ missing
DB_PASSWORD Пароль MariaDB (сильный пароль)
FRAPPE_SITE_NAME_HEADER Имя сайта erp.local
HTTP_PUBLISH_PORT Внешний порт HTTP 8090
BACKUP_CRONSTRING Расписание бэкапов @every 6h