Розгортання K2 ERP: відмінності між версіями
R (обговорення | внесок) Створена сторінка: {{DISPLAYTITLE:Розгортання системи K2 Cloud ERP Python для розробників}} {{SEO |title=Розгортання системи K2 Cloud ERP Python для розробників — локальний запуск, PyCharm, Git, компоненти та сервер оновлень |description=Розгортання системи K2 Cloud ERP Python для розробників — технічна інструкція з... |
R (обговорення | внесок) Немає опису редагування |
||
| Рядок 8: | Рядок 8: | ||
}} | }} | ||
'''Розгортання системи K2 Cloud ERP Python для розробників''' — це технічна інструкція | '''Розгортання системи K2 Cloud ERP Python для розробників''' — це технічна інструкція для підготовки локального робочого середовища розробника, який працює з проєктом [[K2 Cloud ERP]] на Python. | ||
Інструкція описує повний базовий цикл: копіювання існуючого проєкту з віддаленого сервера, перший запуск, налаштування конфігурації, відкриття проєкту в PyCharm, підключення Python Interpreter, встановлення Git, авторизацію через SSH, підключення репозиторіїв компонентів, роботу зі скриптом | Інструкція описує повний базовий цикл: копіювання існуючого проєкту з віддаленого сервера, перший запуск, налаштування конфігурації, відкриття проєкту в PyCharm, підключення Python Interpreter, встановлення Git, авторизацію через SSH, підключення репозиторіїв компонентів, роботу зі скриптом auto_update, коміт змін, налаштування завантаження компонент на сервер оновлення, створення нової версії компоненти та тестування на доменах deb1-deb3. | ||
'''Головна ідея:''' ця інструкція потрібна не кінцевому користувачу ERP, а розробнику або технічному партнеру K2, який має локально запустити K2 Cloud ERP, підключити компоненти, працювати з Git і готувати зміни до системи оновлень. | |||
'''Головна ідея | |||
__TOC__ | __TOC__ | ||
| Рядок 33: | Рядок 27: | ||
* PyCharm Community або іншу сумісну IDE; | * PyCharm Community або іншу сумісну IDE; | ||
* Git; | * Git; | ||
* SSH-ключ або логін | * SSH-ключ або логін і пароль для репозиторію; | ||
* доступ до тестових доменів | * доступ до тестових доменів deb1, deb2, deb3; | ||
* токен доступу до сервера оновлення. | * токен доступу до сервера оновлення. | ||
| Рядок 41: | Рядок 35: | ||
Перший етап — отримати локальну копію вже існуючого робочого проєкту K2 Cloud ERP. | Перший етап — отримати локальну копію вже існуючого робочого проєкту K2 Cloud ERP. | ||
=== | === 1.1. Скопіювати проєкт з віддаленого сервера === | ||
Потрібно скопіювати з віддаленого сервера існуючий проєкт по FTP. | Потрібно скопіювати з віддаленого сервера існуючий проєкт по FTP. | ||
| Рядок 47: | Рядок 41: | ||
Після копіювання на локальному комп’ютері має з’явитися каталог: | Після копіювання на локальному комп’ютері має з’явитися каталог: | ||
<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
Розгортання системи 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.
Рекомендований порядок роботи розробника
- Скопіювати проєкт по 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 перед використанням змін у ширшому середовищі.