Розгортання K2 ERP
Розгортання системи K2 Cloud ERP Python для розробників — це технічна інструкція для підготовки локального робочого середовища розробника, який працює з проєктом K2 Cloud ERP на Python.
Інструкція описує повний базовий цикл: копіювання існуючого проєкту з віддаленого сервера, перший запуск, налаштування конфігурації, відкриття проєкту в PyCharm, підключення Python Interpreter, встановлення Git, авторизацію через SSH, підключення репозиторіїв компонентів, роботу зі скриптом auto_update, коміт змін, налаштування завантаження компонент на сервер оновлення, створення нової версії компоненти та тестування на доменах deb1-deb3.
Головна ідея: ця інструкція потрібна не кінцевому користувачу ERP, а розробнику або технічному партнеру K2, який має локально запустити K2 Cloud ERP, підключити компоненти, працювати з Git і готувати зміни до системи оновлень.
Передумови
Перед початком розгортання розробнику потрібно мати доступ до існуючого проєкту K2 Cloud ERP на віддаленому сервері, FTP-доступ для копіювання файлів, доступ до репозиторіїв Git, права на роботу з потрібними компонентами та технічні параметри для сервера оновлень, якщо планується публікація нових версій компонент.
Також бажано заздалегідь підготувати:
- робочий комп’ютер на Linux або Windows;
- доступ до FTP;
- Python-середовище, яке використовується проєктом;
- PyCharm Community або іншу сумісну IDE;
- Git;
- SSH-ключ або логін і пароль для репозиторію;
- доступ до тестових доменів deb1, deb2, deb3;
- токен доступу до сервера оновлення.
1. Копіювання існуючого проєкту по FTP і перший запуск
Перший етап — отримати локальну копію вже існуючого робочого проєкту K2 Cloud ERP.
1.1. Скопіювати проєкт з віддаленого сервера
Потрібно скопіювати з віддаленого сервера існуючий проєкт по FTP.
Після копіювання на локальному комп’ютері має з’явитися каталог:
<syntaxhighlight lang="text"> /K2CloudERP </syntaxhighlight>
1.2. Перейти в каталог проєкту
Перейдіть у каталог локального проєкту:
<syntaxhighlight lang="bash"> cd /K2CloudERP </syntaxhighlight>
1.3. Виконати перший запуск
Перший запуск потрібен для налаштування параметрів віртуального середовища в поточному локальному розташуванні.
Для Linux:
<syntaxhighlight lang="bash"> bash first_run.sh </syntaxhighlight>
Для Windows:
<syntaxhighlight lang="bat"> ./first_run.bat </syntaxhighlight>
1.4. Змінити протокол домену в конфігурації
Після першого запуску потрібно перейти у файл налаштувань:
<syntaxhighlight lang="text"> /K2CloudERP/cfg/k2/k2/k2cfg.py </syntaxhighlight>
У цьому файлі потрібно змінити значення параметра:
<syntaxhighlight lang="python"> domain_protocol = "https" </syntaxhighlight>
на:
<syntaxhighlight lang="python"> domain_protocol = "http" </syntaxhighlight>
Це потрібно для локального запуску проєкту в режимі розробки.
1.5. Запустити додаток
Для Linux:
<syntaxhighlight lang="bash"> bash run.sh </syntaxhighlight>
Для Windows:
<syntaxhighlight lang="bat"> ./run.bat </syntaxhighlight>
Після цього локальний додаток K2 Cloud ERP має запуститися в робочому середовищі розробника.
2. Встановлення PyCharm і відкриття проєкту
Для роботи з кодом K2 Cloud ERP рекомендується використовувати PyCharm.
2.1. Встановлення PyCharm для Linux через snap
Спочатку потрібно видалити обмеження для snap, якщо воно є:
<syntaxhighlight lang="bash"> sudo rm /etc/apt/preferences.d/nosnap.pref </syntaxhighlight>
Оновити пакети:
<syntaxhighlight lang="bash"> sudo apt update </syntaxhighlight>
Встановити snapd:
<syntaxhighlight lang="bash"> sudo apt install snapd </syntaxhighlight>
Встановити PyCharm Community:
<syntaxhighlight lang="bash"> sudo snap install pycharm-community --classic </syntaxhighlight>
Запустити PyCharm:
<syntaxhighlight lang="bash"> pycharm-community </syntaxhighlight>
2.2. Встановлення PyCharm для Linux через архів
Потрібно завантажити архів PyCharm для Linux із сайту JetBrains:
<syntaxhighlight lang="text"> https://www.jetbrains.com/pycharm/download/?section=linux </syntaxhighlight>
Після завантаження потрібно розпакувати архів, перейти в папку:
<syntaxhighlight lang="bash"> bin </syntaxhighlight>
і запустити PyCharm:
<syntaxhighlight lang="bash"> ./pycharm.sh </syntaxhighlight>
Якщо під час запуску виникла помилка, потрібно встановити JRE/JDK:
<syntaxhighlight lang="bash"> sudo apt update sudo apt install default-jdk </syntaxhighlight>
Після цього повторити запуск:
<syntaxhighlight lang="bash"> ./pycharm.sh </syntaxhighlight>
2.3. Встановлення PyCharm для Windows
Для Windows потрібно завантажити PyCharm із сайту JetBrains:
<syntaxhighlight lang="text"> https://www.jetbrains.com/pycharm/download/?section=windows </syntaxhighlight>
Після завантаження потрібно розпакувати архів або запустити файл встановлення та встановити PyCharm згідно з інструкціями інсталятора.
2.4. Відкриття проєкту в PyCharm
Після встановлення потрібно:
- відкрити PyCharm;
- вибрати відкриття існуючого проєкту;
- відкрити локально завантажений каталог K2CloudERP.
2.5. Налаштування Python Interpreter
Після відкриття проєкту потрібно налаштувати змінне середовище для поточного проєкту.
У правому нижньому куті PyCharm потрібно вибрати:
<syntaxhighlight lang="text"> Python Interpreter </syntaxhighlight>
Далі вибрати:
<syntaxhighlight lang="text"> Add new Interpreter </syntaxhighlight>
У полі Location потрібно додати шлях до поточної папки venv.
У полі Base Interpreter потрібно додати шлях до поточного виконуваного Python-файлу.
Приклад для Linux:
<syntaxhighlight lang="text"> ../K2CloudERP/venv/bin/python3.12 </syntaxhighlight>
Приклад для Windows:
<syntaxhighlight lang="text"> ..\K2CloudERP\venv\Scripts\python.exe </syntaxhighlight>
Після налаштування інтерпретатора PyCharm має використовувати віртуальне середовище саме цього локального проєкту.
2.6. Запуск проєкту в debug-режимі
Для запуску в debug-режимі потрібно скористатися кнопкою запуску в правому верхньому куті PyCharm.
Також можна запускати проєкт із консолі PyCharm.
Для Linux:
<syntaxhighlight lang="bash"> bash run.sh </syntaxhighlight>
Для Windows:
<syntaxhighlight lang="bat"> ./run.bat </syntaxhighlight>
2.7. Ручна активація віртуального середовища
Для Linux:
<syntaxhighlight lang="bash"> source venv/bin/activate </syntaxhighlight>
Для Windows:
<syntaxhighlight lang="bat"> .\venv\Scripts\activate </syntaxhighlight>
Після активації середовища команди Python і pip будуть виконуватися в межах локального venv цього проєкту.
3. Встановлення та налаштування Git
Git потрібен для роботи з компонентами K2, отримання змін із віддалених репозиторіїв, фіксації локальних змін і публікації змін у віддалений репозиторій.
3.1. Встановлення Git для Linux
Оновити пакети:
<syntaxhighlight lang="bash"> sudo apt update </syntaxhighlight>
Встановити Git:
<syntaxhighlight lang="bash"> sudo apt install git </syntaxhighlight>
Перевірити встановлення:
<syntaxhighlight lang="bash"> git --version </syntaxhighlight>
3.2. Встановлення Git для Windows
Для Windows потрібно завантажити Git:
<syntaxhighlight lang="text"> https://git-scm.com/downloads/win </syntaxhighlight>
Після завантаження потрібно розпакувати архів або запустити файл встановлення та встановити Git згідно з інструкціями.
Після встановлення бажано перевірити Git у консолі:
<syntaxhighlight lang="bash"> git --version </syntaxhighlight>
3.3. Налаштування користувача Git
Потрібно вказати ім’я користувача:
<syntaxhighlight lang="bash"> git config --global user.name "Ваше Ім'я" </syntaxhighlight>
Потрібно вказати email:
<syntaxhighlight lang="bash"> git config --global user.email "ваша_електронна_пошта@example.com" </syntaxhighlight>
Перевірити налаштування можна командою:
<syntaxhighlight lang="bash"> git config --global --list </syntaxhighlight>
3.4. Авторизація в Git
Можливі два варіанти авторизації:
- авторизація за допомогою логіна і пароля;
- авторизація через SSH.
3.5. Налаштування SSH-ключа
Для створення SSH-ключа потрібно виконати команду:
<syntaxhighlight lang="bash"> ssh-keygen -t rsa -b 4096 -C "ваша_електронна_пошта@example.com" </syntaxhighlight>
Після цього потрібно запустити SSH-agent:
<syntaxhighlight lang="bash"> eval "$(ssh-agent -s)" </syntaxhighlight>
Додати ключ:
<syntaxhighlight lang="bash"> ssh-add ~/.ssh/id_rsa </syntaxhighlight>
Показати публічний ключ:
<syntaxhighlight lang="bash"> cat ~/.ssh/id_rsa.pub </syntaxhighlight>
Отриманий ключ потрібно скопіювати й додати у віддалений Git-репозиторій.
4. Підключення віддаленого Git-репозиторію для компоненти або списку компонент
Компоненти K2 можна підключати двома способами:
- автоматично через скрипт auto_update;
- вручну для однієї конкретної компоненти.
4.1. Підключення списку компонент через auto_update
Для списку компонент використовується скрипт auto_update.
Потрібно скопіювати каталог зі скриптом і вставити його в корінь проєкту на рівні з виконуваним файлом:
<syntaxhighlight lang="text"> app.py </syntaxhighlight>
Репозиторій скрипта:
<syntaxhighlight lang="text"> https://git.corp2.eu/k2erp/python/k2/base/client/auto_update </syntaxhighlight>
Після копіювання потрібно відкрити проєкт у консолі й перейти в каталог:
<syntaxhighlight lang="bash"> cd auto_update </syntaxhighlight>
Далі потрібно відкрити файл:
<syntaxhighlight lang="text"> settings.py </syntaxhighlight>
У файл settings.py потрібно додати в словник ключі з потрібними компонентами.
Повний список компонент можна дивитися у файлі:
<syntaxhighlight lang="text"> settings_example.py </syntaxhighlight>
Після налаштування потрібно виконати команду для клонування актуальних версій компонент і перейменування каталогів поточних версій компонент:
<syntaxhighlight lang="bash"> python git_cmd.py clone </syntaxhighlight>
4.2. Підключення однієї компоненти вручну
Для ручного підключення однієї компоненти потрібно перейти в папку потрібної компоненти.
Наприклад, для k2site:
<syntaxhighlight lang="bash"> cd components/k2site </syntaxhighlight>
Ініціалізувати Git у поточній директорії:
<syntaxhighlight lang="bash"> git init </syntaxhighlight>
Створити локальну гілку main і перемкнутися на неї:
<syntaxhighlight lang="bash"> git checkout -b main </syntaxhighlight>
За потреби можна перемкнутися на іншу локальну гілку, наприклад master:
<syntaxhighlight lang="bash"> git checkout master </syntaxhighlight>
Додати віддалений репозиторій:
<syntaxhighlight lang="bash"> git remote add origin http://git.corp2.eu/k2erp/python/k2/base/site/k2site.git </syntaxhighlight>
Перевірити підключений remote:
<syntaxhighlight lang="bash"> git remote -v </syntaxhighlight>
Отримати дані з віддаленого репозиторію, але не змінювати поточну робочу гілку:
<syntaxhighlight lang="bash"> git fetch origin </syntaxhighlight>
Отримати дані з віддаленого репозиторію та автоматично об’єднати їх із поточною локальною гілкою:
<syntaxhighlight lang="bash"> git pull origin main </syntaxhighlight>
Перевірити зміни локально скопійованої копії проєкту з віддаленим репозиторієм:
<syntaxhighlight lang="bash"> git status </syntaxhighlight>
5. Коміт змін на віддалений Git-репозиторій
Зміни можна комітити двома способами:
- автоматично через auto_update;
- вручну через стандартні команди Git.
5.1. Коміт змін через auto_update
Потрібно відкрити проєкт у консолі й перейти в каталог:
<syntaxhighlight lang="bash"> cd auto_update </syntaxhighlight>
Клонувати компоненти з віддаленого сервера:
<syntaxhighlight lang="bash"> python git_cmd.py clone </syntaxhighlight>
Перевірити статус:
<syntaxhighlight lang="bash"> python git_cmd.py status </syntaxhighlight>
Закомітити зміни:
<syntaxhighlight lang="bash"> python git_cmd.py commit </syntaxhighlight>
Отримати зміни з віддаленого сервера:
<syntaxhighlight lang="bash"> python git_cmd.py pull </syntaxhighlight>
Запушити зміни на віддалений репозиторій:
<syntaxhighlight lang="bash"> python git_cmd.py push </syntaxhighlight>
5.2. Коміт змін вручну
Після внесення змін у код потрібно перевірити статус:
<syntaxhighlight lang="bash"> git status </syntaxhighlight>
Додати зміни:
<syntaxhighlight lang="bash"> git add . </syntaxhighlight>
Створити коміт:
<syntaxhighlight lang="bash"> git commit -m "Назва комміту" </syntaxhighlight>
Запушити зміни на віддалений репозиторій:
<syntaxhighlight lang="bash"> git push </syntaxhighlight>
При подальшій роботі потрібно отримувати зміни з віддаленого репозиторію командою:
<syntaxhighlight lang="bash"> git pull </syntaxhighlight>
6. Налаштування завантаження компонент на сервер оновлення
Для завантаження компонент на сервер оновлення потрібно налаштувати конфігурацію в каталозі:
<syntaxhighlight lang="text"> builder/config </syntaxhighlight>
6.1. Налаштування component-list.txt
Потрібно відкрити файл:
<syntaxhighlight lang="text"> builder/config/component-list.txt </syntaxhighlight>
У цьому файлі потрібно додати список компонент, які будуть завантажуватися на сервер оновлення.
Кожна компонента додається з нового рядка.
Приклад:
<syntaxhighlight lang="text"> components/k2update components/k2adm components/k2site </syntaxhighlight>
6.2. Налаштування ignore для компонент
У папці:
<syntaxhighlight lang="text"> builder/config/ignore </syntaxhighlight>
потрібно створити файл із назвою компоненти.
Наприклад:
<syntaxhighlight lang="text"> k2site.txt </syntaxhighlight>
У цей файл потрібно додати файли й папки, які не потрібно завантажувати на сервер оновлення.
Приклад вмісту:
<syntaxhighlight lang="text"> __pycache__ .gitignore .git ej2.min.js </syntaxhighlight>
6.3. Налаштування token.txt
У файл:
<syntaxhighlight lang="text"> builder/config/token.txt </syntaxhighlight>
потрібно додати токен доступу до сервера оновлення.
Цей токен використовується для авторизації під час завантаження компонент.
7. Завантаження нової версії компоненти в систему оновлення
Для створення нової версії компоненти потрібно підготувати її як stable або beta/testing-версію.
7.1. Змінити версію компоненти в setup.py
Потрібно відкрити файл:
<syntaxhighlight lang="text"> setup.py </syntaxhighlight>
у корені каталогу компоненти.
У файлі потрібно змінити версію в полі version.
Приклад:
<syntaxhighlight lang="python"> version = "2.0.4.43" </syntaxhighlight>
Також потрібно вказати тип версії.
Для stable-версії:
<syntaxhighlight lang="python"> version_type = "stable" </syntaxhighlight>
Для testing/beta-версії:
<syntaxhighlight lang="python"> version_type = "testing" </syntaxhighlight>
7.2. Додати опис змін у history.txt
Потрібно відкрити файл:
<syntaxhighlight lang="text"> history.txt </syntaxhighlight>
у корені каталогу компоненти.
У першому рядку потрібно додати опис змін.
Приклад:
<syntaxhighlight lang="text"> 2.0.4.43 - додавання додаткового поля в форму реєстрації </syntaxhighlight>
7.3. Перейти в корінь додатку
Потрібно перейти в корінь додатку на рівні з виконуваним файлом app.py.
Приклад:
<syntaxhighlight lang="bash"> cd k2 </syntaxhighlight>
7.4. Завантажити компоненти на сервер оновлення
Після того як компоненти додані в:
<syntaxhighlight lang="text"> builder/config/component-list.txt </syntaxhighlight>
потрібно виконати команду:
<syntaxhighlight lang="bash"> python k2update_push.py </syntaxhighlight>
Ця команда завантажує в систему оновлення компоненти, вказані у списку.
8. Оновлення компонент на тестових доменах deb1-deb3
Після завантаження нових версій компонент у систему оновлення потрібно оновити змінені компоненти на тестових доменах:
- deb1;
- deb2;
- deb3.
Після оновлення потрібно протестувати функціонал.
Мета цього етапу — перевірити, що нова версія компоненти:
- коректно встановлюється;
- не ламає наявний функціонал;
- сумісна з поточним середовищем;
- не створює помилок у залежних модулях;
- працює відповідно до опису змін у history.txt.
Рекомендований порядок роботи розробника
- Скопіювати проєкт по FTP.
- Виконати first_run.sh або first_run.bat.
- Змінити domain_protocol з https на http.
- Запустити проєкт через run.sh або run.bat.
- Відкрити проєкт у PyCharm.
- Налаштувати Python Interpreter на локальний venv.
- Встановити й налаштувати Git.
- Налаштувати SSH-ключ або інший спосіб авторизації.
- Підключити потрібні компоненти через auto_update або вручну.
- Внести зміни в код.
- Перевірити git status.
- Закомітити й запушити зміни.
- Налаштувати builder/config/component-list.txt.
- Налаштувати ignore для компонент.
- Додати токен у token.txt.
- Оновити версію в setup.py.
- Додати опис змін у history.txt.
- Виконати python k2update_push.py.
- Оновити компоненти на deb1, deb2, deb3.
- Протестувати функціонал.
Типові помилки під час локального розгортання
Перша помилка — не виконати first_run після копіювання проєкту. У такому разі віртуальне середовище може залишитися прив’язаним до старого шляху.
Друга помилка — не змінити domain_protocol з https на http для локальної роботи. Через це локальний запуск може працювати некоректно.
Третя помилка — підключити в PyCharm неправильний Python Interpreter. Якщо IDE використовує не той venv, залежності можуть не збігатися з проєктом.
Четверта помилка — працювати з компонентами без Git або без перевірки git status. Це ускладнює контроль змін.
П’ята помилка — пушити зміни без попереднього pull. Через це можуть виникати конфлікти або втрата актуального коду.
Шоста помилка — оновити версію компоненти в setup.py, але забути опис змін у history.txt.
Сьома помилка — завантажити компоненту на сервер оновлення й не перевірити її на тестових доменах deb1-deb3.
Контрольний чек-лист розробника
- Проєкт скопійовано по FTP.
- Виконано first_run.sh або first_run.bat.
- У k2cfg.py змінено domain_protocol з https на http.
- Проєкт запускається через run.sh або run.bat.
- Встановлено PyCharm.
- Відкрито локальний проєкт у PyCharm.
- Налаштовано Python Interpreter на локальний venv.
- Git встановлено.
- Налаштовано user.name і user.email.
- Налаштовано SSH-ключ або інший спосіб авторизації.
- Підключено потрібні компоненти через auto_update або вручну.
- Перевірено git status.
- Зміни закомічено й запушено.
- Налаштовано builder/config/component-list.txt.
- Налаштовано ignore для компонент.
- Додано токен у token.txt.
- Оновлено версію в setup.py.
- Додано опис змін у history.txt.
- Виконано python k2update_push.py.
- Компоненти перевірено на deb1, deb2, deb3.
Пов’язані сторінки
SEO-призначення сторінки
Сторінка Розгортання системи K2 Cloud ERP Python для розробників має допомагати розробникам, технічним партнерам і командам впровадження знаходити повну інструкцію з локального запуску K2 Cloud ERP, налаштування PyCharm, Git, компонентів, сервера оновлень і тестових доменів.
Вона покриває запити: “K2 Cloud ERP Python розгортання”, “локальне розгортання K2 ERP”, “K2 ERP для розробників”, “first_run.sh K2”, “run.sh K2 ERP”, “PyCharm K2 Cloud ERP”, “Git компоненти K2 ERP”, “auto_update K2”, “k2update_push.py”, “сервер оновлень K2”, “deb1 deb2 deb3 K2”.
Коротко
Розгортання системи K2 Cloud ERP Python для розробників — це технічний процес, який дозволяє розробнику отримати локальну копію проєкту, налаштувати віртуальне середовище, запустити K2 Cloud ERP, підключити PyCharm, налаштувати Git, працювати з компонентами, комітити зміни та публікувати нові версії компонент у систему оновлень.
Головний результат інструкції — правильна технічна дисципліна розробника K2: локальний запуск, окремий venv, контроль Git, робота з компонентами, версіонування, сервер оновлень і обов’язкове тестування на deb1-deb3 перед використанням змін у ширшому середовищі.