Перейти до вмісту

Розгортання K2 ERP: відмінності між версіями

Матеріал з K2 ERP Wiki
Створена сторінка: {{DISPLAYTITLE:Розгортання системи K2 Cloud ERP Python для розробників}} {{SEO |title=Розгортання системи K2 Cloud ERP Python для розробників — локальний запуск, PyCharm, Git, компоненти та сервер оновлень |description=Розгортання системи K2 Cloud ERP Python для розробників — технічна інструкція з...
 
Немає опису редагування
 
Рядок 8: Рядок 8:
}}
}}


'''Розгортання системи K2 Cloud ERP Python для розробників''' — це технічна інструкція з підготовки локального робочого середовища для розробника, який працює з проєктом [[K2 Cloud ERP]] на Python.
'''Розгортання системи K2 Cloud ERP Python для розробників''' — це технічна інструкція для підготовки локального робочого середовища розробника, який працює з проєктом [[K2 Cloud ERP]] на Python.


Інструкція описує повний базовий цикл: копіювання існуючого проєкту з віддаленого сервера, перший запуск, налаштування конфігурації, відкриття проєкту в PyCharm, підключення Python Interpreter, встановлення Git, авторизацію через SSH, підключення репозиторіїв компонентів, роботу зі скриптом `auto_update`, коміт змін, налаштування завантаження компонент на сервер оновлення, створення нової версії компоненти та тестування на доменах `deb1`–`deb3`.
Інструкція описує повний базовий цикл: копіювання існуючого проєкту з віддаленого сервера, перший запуск, налаштування конфігурації, відкриття проєкту в PyCharm, підключення Python Interpreter, встановлення Git, авторизацію через SSH, підключення репозиторіїв компонентів, роботу зі скриптом auto_update, коміт змін, налаштування завантаження компонент на сервер оновлення, створення нової версії компоненти та тестування на доменах deb1-deb3.


<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:16px; margin:18px 0; border-radius:8px;">
'''Головна ідея:''' ця інструкція потрібна не кінцевому користувачу ERP, а розробнику або технічному партнеру K2, який має локально запустити K2 Cloud ERP, підключити компоненти, працювати з Git і готувати зміни до системи оновлень.
'''Головна ідея.''' Ця інструкція потрібна не кінцевому користувачу ERP, а розробнику або технічному партнеру K2, який має локально запустити K2 Cloud ERP, підключити компоненти, працювати з Git і готувати зміни до системи оновлень.
</div>
 
<div style="border:3px solid #1565c0; background:#e3f2fd; padding:16px; margin:18px 0; border-radius:8px;">
'''Що буде налаштовано.''' Локальний проєкт K2 Cloud ERP, віртуальне середовище Python, запуск через `run.sh` або `run.bat`, PyCharm, Git, SSH-ключі, компоненти, `auto_update`, коміти, сервер оновлень і тестові домени.
</div>


__TOC__
__TOC__
Рядок 33: Рядок 27:
* PyCharm Community або іншу сумісну IDE;
* PyCharm Community або іншу сумісну IDE;
* Git;
* Git;
* SSH-ключ або логін/пароль для репозиторію;
* SSH-ключ або логін і пароль для репозиторію;
* доступ до тестових доменів `deb1`, `deb2`, `deb3`;
* доступ до тестових доменів deb1, deb2, deb3;
* токен доступу до сервера оновлення.
* токен доступу до сервера оновлення.


Рядок 41: Рядок 35:
Перший етап — отримати локальну копію вже існуючого робочого проєкту K2 Cloud ERP.
Перший етап — отримати локальну копію вже існуючого робочого проєкту K2 Cloud ERP.


=== Крок 1.1. Скопіювати проєкт з віддаленого сервера ===
=== 1.1. Скопіювати проєкт з віддаленого сервера ===


Потрібно скопіювати з віддаленого сервера існуючий проєкт по FTP.
Потрібно скопіювати з віддаленого сервера існуючий проєкт по FTP.
Рядок 47: Рядок 41:
Після копіювання на локальному комп’ютері має з’явитися каталог:
Після копіювання на локальному комп’ютері має з’явитися каталог:


```bash
<syntaxhighlight lang="text">
/K2CloudERP
/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.
== Пов’язані сторінки ==
* [[K2 ERP]]
* [[K2 Cloud ERP]]
* [[Архітектура K2 ERP]]
* [[Розгортання K2 ERP]]
* [[Партнерська хмара K2]]
* [[Магазин доповнень K2]]
* [[Сертифікація K2]]
* [[Партнерська програма K2]]
* [[Впровадження ERP]]
* [[Навчання ERP]]
* [[Міграція з 1С]]
* [[Міграція з BAS]]
* [[Українська ERP]]
* [[Українське програмне забезпечення]]
== 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 перед використанням змін у ширшому середовищі.
== Див. також ==
* [[K2 ERP]]
* [[K2 Cloud ERP]]
* [[Розгортання K2 ERP]]
* [[Архітектура K2 ERP]]
* [[Магазин доповнень K2]]
* [[Сертифікація K2]]
* [[Партнерська програма K2]]
* [[Українська ERP]]
[[Категорія:K2 ERP]]
[[Категорія:K2 Cloud ERP]]
[[Категорія:Розгортання K2 ERP]]
[[Категорія:Розробка K2 ERP]]
[[Категорія:Python]]
[[Категорія:PyCharm]]
[[Категорія:Git]]
[[Категорія:Компоненти K2 ERP]]
[[Категорія:Магазин доповнень K2]]
[[Категорія:Архітектура K2 ERP]]
[[Категорія:Сертифікація K2]]
[[Категорія:Партнерська програма K2]]
[[Категорія:Українська ERP]]
[[Категорія:Українське програмне забезпечення]]
[[Категорія:Корпоративна Wiki]]

Поточна версія на 19:11, 2 травня 2026


SEO title: Розгортання системи K2 Cloud ERP Python для розробників — локальний запуск, PyCharm, Git, компоненти та сервер оновлень SEO description: Розгортання системи K2 Cloud ERP Python для розробників — технічна інструкція з локального копіювання проєкту K2 Cloud ERP, першого запуску, налаштування PyCharm, Python Interpreter, Git, SSH, підключення компонентів, роботи з auto_update, коміту змін, завантаження компонент на сервер оновлень і тестування на доменах deb1-deb3. SEO keywords: K2 Cloud ERP Python, розгортання K2 Cloud ERP, K2 ERP для розробників, локальне розгортання K2 ERP, PyCharm K2 ERP, Git K2 ERP, auto_update K2, компоненти K2 ERP, k2update_push.py, first_run.sh, first_run.bat, run.sh, run.bat, сервер оновлень K2, deb1 deb2 deb3, українська ERP, K2 ERP Alternative to: ручне розгортання без інструкції; хаотичне підключення компонентів; локальні доробки без Git; оновлення без версій; розробка без dev-середовища


Розгортання системи 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.

Після копіювання на локальному комп’ютері має з’явитися каталог:

/K2CloudERP

1.2. Перейти в каталог проєкту

Перейдіть у каталог локального проєкту:

cd /K2CloudERP

1.3. Виконати перший запуск

Перший запуск потрібен для налаштування параметрів віртуального середовища в поточному локальному розташуванні.

Для Linux:

bash first_run.sh

Для Windows:

./first_run.bat

1.4. Змінити протокол домену в конфігурації

Після першого запуску потрібно перейти у файл налаштувань:

/K2CloudERP/cfg/k2/k2/k2cfg.py

У цьому файлі потрібно змінити значення параметра:

domain_protocol = "https"

на:

domain_protocol = "http"

Це потрібно для локального запуску проєкту в режимі розробки.

1.5. Запустити додаток

Для Linux:

bash run.sh

Для Windows:

./run.bat

Після цього локальний додаток K2 Cloud ERP має запуститися в робочому середовищі розробника.

2. Встановлення PyCharm і відкриття проєкту

Для роботи з кодом K2 Cloud ERP рекомендується використовувати PyCharm.

2.1. Встановлення PyCharm для Linux через snap

Спочатку потрібно видалити обмеження для snap, якщо воно є:

sudo rm /etc/apt/preferences.d/nosnap.pref

Оновити пакети:

sudo apt update

Встановити snapd:

sudo apt install snapd

Встановити PyCharm Community:

sudo snap install pycharm-community --classic

Запустити PyCharm:

pycharm-community

2.2. Встановлення PyCharm для Linux через архів

Потрібно завантажити архів PyCharm для Linux із сайту JetBrains:

https://www.jetbrains.com/pycharm/download/?section=linux

Після завантаження потрібно розпакувати архів, перейти в папку:

bin

і запустити PyCharm:

./pycharm.sh

Якщо під час запуску виникла помилка, потрібно встановити JRE/JDK:

sudo apt update
sudo apt install default-jdk

Після цього повторити запуск:

./pycharm.sh

2.3. Встановлення PyCharm для Windows

Для Windows потрібно завантажити PyCharm із сайту JetBrains:

https://www.jetbrains.com/pycharm/download/?section=windows

Після завантаження потрібно розпакувати архів або запустити файл встановлення та встановити PyCharm згідно з інструкціями інсталятора.

2.4. Відкриття проєкту в PyCharm

Після встановлення потрібно:

  • відкрити PyCharm;
  • вибрати відкриття існуючого проєкту;
  • відкрити локально завантажений каталог K2CloudERP.

2.5. Налаштування Python Interpreter

Після відкриття проєкту потрібно налаштувати змінне середовище для поточного проєкту.

У правому нижньому куті PyCharm потрібно вибрати:

Python Interpreter

Далі вибрати:

Add new Interpreter

У полі Location потрібно додати шлях до поточної папки venv.

У полі Base Interpreter потрібно додати шлях до поточного виконуваного Python-файлу.

Приклад для Linux:

../K2CloudERP/venv/bin/python3.12

Приклад для Windows:

..\K2CloudERP\venv\Scripts\python.exe

Після налаштування інтерпретатора PyCharm має використовувати віртуальне середовище саме цього локального проєкту.

2.6. Запуск проєкту в debug-режимі

Для запуску в debug-режимі потрібно скористатися кнопкою запуску в правому верхньому куті PyCharm.

Також можна запускати проєкт із консолі PyCharm.

Для Linux:

bash run.sh

Для Windows:

./run.bat

2.7. Ручна активація віртуального середовища

Для Linux:

source venv/bin/activate

Для Windows:

.\venv\Scripts\activate

Після активації середовища команди Python і pip будуть виконуватися в межах локального venv цього проєкту.

3. Встановлення та налаштування Git

Git потрібен для роботи з компонентами K2, отримання змін із віддалених репозиторіїв, фіксації локальних змін і публікації змін у віддалений репозиторій.

3.1. Встановлення Git для Linux

Оновити пакети:

sudo apt update

Встановити Git:

sudo apt install git

Перевірити встановлення:

git --version

3.2. Встановлення Git для Windows

Для Windows потрібно завантажити Git:

https://git-scm.com/downloads/win

Після завантаження потрібно розпакувати архів або запустити файл встановлення та встановити Git згідно з інструкціями.

Після встановлення бажано перевірити Git у консолі:

git --version

3.3. Налаштування користувача Git

Потрібно вказати ім’я користувача:

git config --global user.name "Ваше Ім'я"

Потрібно вказати email:

git config --global user.email "ваша_електронна_пошта@example.com"

Перевірити налаштування можна командою:

git config --global --list

3.4. Авторизація в Git

Можливі два варіанти авторизації:

  • авторизація за допомогою логіна і пароля;
  • авторизація через SSH.

3.5. Налаштування SSH-ключа

Для створення SSH-ключа потрібно виконати команду:

ssh-keygen -t rsa -b 4096 -C "ваша_електронна_пошта@example.com"

Після цього потрібно запустити SSH-agent:

eval "$(ssh-agent -s)"

Додати ключ:

ssh-add ~/.ssh/id_rsa

Показати публічний ключ:

cat ~/.ssh/id_rsa.pub

Отриманий ключ потрібно скопіювати й додати у віддалений Git-репозиторій.

4. Підключення віддаленого Git-репозиторію для компоненти або списку компонент

Компоненти K2 можна підключати двома способами:

  • автоматично через скрипт auto_update;
  • вручну для однієї конкретної компоненти.

4.1. Підключення списку компонент через auto_update

Для списку компонент використовується скрипт auto_update.

Потрібно скопіювати каталог зі скриптом і вставити його в корінь проєкту на рівні з виконуваним файлом:

app.py

Репозиторій скрипта:

https://git.corp2.eu/k2erp/python/k2/base/client/auto_update

Після копіювання потрібно відкрити проєкт у консолі й перейти в каталог:

cd auto_update

Далі потрібно відкрити файл:

settings.py

У файл settings.py потрібно додати в словник ключі з потрібними компонентами.

Повний список компонент можна дивитися у файлі:

settings_example.py

Після налаштування потрібно виконати команду для клонування актуальних версій компонент і перейменування каталогів поточних версій компонент:

python git_cmd.py clone

4.2. Підключення однієї компоненти вручну

Для ручного підключення однієї компоненти потрібно перейти в папку потрібної компоненти.

Наприклад, для k2site:

cd components/k2site

Ініціалізувати Git у поточній директорії:

git init

Створити локальну гілку main і перемкнутися на неї:

git checkout -b main

За потреби можна перемкнутися на іншу локальну гілку, наприклад master:

git checkout master

Додати віддалений репозиторій:

git remote add origin http://git.corp2.eu/k2erp/python/k2/base/site/k2site.git

Перевірити підключений remote:

git remote -v

Отримати дані з віддаленого репозиторію, але не змінювати поточну робочу гілку:

git fetch origin

Отримати дані з віддаленого репозиторію та автоматично об’єднати їх із поточною локальною гілкою:

git pull origin main

Перевірити зміни локально скопійованої копії проєкту з віддаленим репозиторієм:

git status

5. Коміт змін на віддалений Git-репозиторій

Зміни можна комітити двома способами:

  • автоматично через auto_update;
  • вручну через стандартні команди Git.

5.1. Коміт змін через auto_update

Потрібно відкрити проєкт у консолі й перейти в каталог:

cd auto_update

Клонувати компоненти з віддаленого сервера:

python git_cmd.py clone

Перевірити статус:

python git_cmd.py status

Закомітити зміни:

python git_cmd.py commit

Отримати зміни з віддаленого сервера:

python git_cmd.py pull

Запушити зміни на віддалений репозиторій:

python git_cmd.py push

5.2. Коміт змін вручну

Після внесення змін у код потрібно перевірити статус:

git status

Додати зміни:

git add .

Створити коміт:

git commit -m "Назва комміту"

Запушити зміни на віддалений репозиторій:

git push

При подальшій роботі потрібно отримувати зміни з віддаленого репозиторію командою:

git pull

6. Налаштування завантаження компонент на сервер оновлення

Для завантаження компонент на сервер оновлення потрібно налаштувати конфігурацію в каталозі:

builder/config

6.1. Налаштування component-list.txt

Потрібно відкрити файл:

builder/config/component-list.txt

У цьому файлі потрібно додати список компонент, які будуть завантажуватися на сервер оновлення.

Кожна компонента додається з нового рядка.

Приклад:

components/k2update
components/k2adm
components/k2site

6.2. Налаштування ignore для компонент

У папці:

builder/config/ignore

потрібно створити файл із назвою компоненти.

Наприклад:

k2site.txt

У цей файл потрібно додати файли й папки, які не потрібно завантажувати на сервер оновлення.

Приклад вмісту:

__pycache__
.gitignore
.git
ej2.min.js

6.3. Налаштування token.txt

У файл:

builder/config/token.txt

потрібно додати токен доступу до сервера оновлення.

Цей токен використовується для авторизації під час завантаження компонент.

7. Завантаження нової версії компоненти в систему оновлення

Для створення нової версії компоненти потрібно підготувати її як stable або beta/testing-версію.

7.1. Змінити версію компоненти в setup.py

Потрібно відкрити файл:

setup.py

у корені каталогу компоненти.

У файлі потрібно змінити версію в полі version.

Приклад:

version = "2.0.4.43"

Також потрібно вказати тип версії.

Для stable-версії:

version_type = "stable"

Для testing/beta-версії:

version_type = "testing"

7.2. Додати опис змін у history.txt

Потрібно відкрити файл:

history.txt

у корені каталогу компоненти.

У першому рядку потрібно додати опис змін.

Приклад:

2.0.4.43 - додавання додаткового поля в форму реєстрації

7.3. Перейти в корінь додатку

Потрібно перейти в корінь додатку на рівні з виконуваним файлом app.py.

Приклад:

cd k2

7.4. Завантажити компоненти на сервер оновлення

Після того як компоненти додані в:

builder/config/component-list.txt

потрібно виконати команду:

python k2update_push.py

Ця команда завантажує в систему оновлення компоненти, вказані у списку.

8. Оновлення компонент на тестових доменах deb1-deb3

Після завантаження нових версій компонент у систему оновлення потрібно оновити змінені компоненти на тестових доменах:

  • deb1;
  • deb2;
  • deb3.

Після оновлення потрібно протестувати функціонал.

Мета цього етапу — перевірити, що нова версія компоненти:

  • коректно встановлюється;
  • не ламає наявний функціонал;
  • сумісна з поточним середовищем;
  • не створює помилок у залежних модулях;
  • працює відповідно до опису змін у history.txt.

Рекомендований порядок роботи розробника

  1. Скопіювати проєкт по FTP.
  2. Виконати first_run.sh або first_run.bat.
  3. Змінити domain_protocol з https на http.
  4. Запустити проєкт через run.sh або run.bat.
  5. Відкрити проєкт у PyCharm.
  6. Налаштувати Python Interpreter на локальний venv.
  7. Встановити й налаштувати Git.
  8. Налаштувати SSH-ключ або інший спосіб авторизації.
  9. Підключити потрібні компоненти через auto_update або вручну.
  10. Внести зміни в код.
  11. Перевірити git status.
  12. Закомітити й запушити зміни.
  13. Налаштувати builder/config/component-list.txt.
  14. Налаштувати ignore для компонент.
  15. Додати токен у token.txt.
  16. Оновити версію в setup.py.
  17. Додати опис змін у history.txt.
  18. Виконати python k2update_push.py.
  19. Оновити компоненти на deb1, deb2, deb3.
  20. Протестувати функціонал.

Типові помилки під час локального розгортання

Перша помилка — не виконати 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 перед використанням змін у ширшому середовищі.

Див. також