Розгортання системи K2 ERP Python для розробників
Розгортання системи K2 ERP Python для розробників — інструкція з локального розгортання робочого проєкту K2 ERP, підключення розробника, налаштування PyCharm, Git, компонентів, сервера оновлень і процесу публікації нових версій компонент.
Розгортання локального робочого проєкту
Розгортання локально робочого проекту K2 ERP та підключення до нього розробника
1. Копіювання існуючого проекту по ftp, перший запуск
- копіюєм з віддаленого сервера існуючий проект по ftp
- переходимо в каталог /K2CloudERP і запускаємо файл first_run для налаштування параметрів віртуального середовища в поточному локальному розташуванні командою:
bash first_run.sh - для Linux ./first_run.bat - для Windows
- переходимо в файл налаштувань /K2CloudERP/cfg/k2/k2/k2cfg.py і змінюємо там domain_protocol з https на http
- запускаємо додаток:
bash run.sh - для Linux ./run.bat - для Windows
2. Встановлення, середовища розробки Pycharm та відкриття проекту:
для Linux
- встановлення через snap
sudo rm /etc/apt/preferences.d/nosnap.pref sudo apt update sudo apt install snapd sudo snap install pycharm-community --classic pycharm-community
- встановлення через завантаження архіву з сайту
https://www.jetbrains.com/pycharm/download/?section=linux
розпаковуємо архів, переходимо в папку bin і запускаємо
./pycharm.sh
якщо отримали помилку встановлюємо JRE/JDK командами:
sudo apt update sudo apt install default-jdk
для Windows
Завантаження архіву
завантажуємо архів https://www.jetbrains.com/pycharm/download/?section=windows
розпаковуємо архів, запускаємо файл встановленя і встановлюємо згідно інструкцій
- відкриваємо середовище розробки Pycharm,
- відкриваємо поточний завантажений проект та налаштовуємо змінне середовище для поточного проекту:
в правому нижньому куті вибираємо Python Interpreter --> Add new Interpreter -->
у полі locations додаємо шлях до поточної папки venv
у полі Base Interpreter додаємо шлях до поточного виконуваного Python файлу (Пр: ../K2CloudERP/venv/bin.python3.12.exe)
- запускаємо проект в дебаг режимі (кнопка в правому верхньому куті)
- запускаємо проект з консолі Pycharm командою:
bash run.sh - для Linux ./run.bat - для Windows
- активація віртуального середовища вручну
source venv/bin/activate - для Linux .\venv\Scripts\activate - для Windows
3. Встановлення та налаштування git
- встановлення
для Linux
sudo apt update sudo apt install git
для Windows
завантажуємо архів https://git-scm.com/downloads/win розпаковуємо архів, запускаємо файл встановленя і встановлюємо згідно інструкцій
- налалштування git
налаштування користувача
git config --global user.name "Ваше Ім'я" git config --global user.email "ваша_електронна_пошта@example.com"
авторизація з допомогою логіна і пароля
авторизація через ssh
Налаштування SSH ключа
ssh-keygen -t rsa -b 4096 -C "ваша_електронна_пошта@example.com" eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub
копіюєм отриманий ключ і вставляємо у віддалений репозиторій
4. підключаємо віддалений репозиторій git для певної компоненти або списку компонент
для списку компонент (скрипт auto_update)
копіюєм каталог із скриптом і вставляємо в корінь проекту на рівні з виконуваним файлом app.py https://git.corp2.eu/k2erp/python/k2/base/client/auto_update
відкриваємо проект в консолі і переходимо в каталог auto_update
cd auto_update
відкриваємо файл settings.py і додаємо в словник ключі з потрібними компонентами (повний список в файлі settings_example.py)
- виконуємо в консолі команду, для клонування актуальних версій компонент і перейменовування каталогів поточних версій компонент
python git_cmd.py clone
для одної компоненти вручну
- переходимо в папку необхідної компоненти, наприклад k2site
cd components/k2site
- ініціалізуєм git в поточній директорії
git init git checkout -b main (створюємо локальну гілку main і перемикаємось на неї) git checkout master (переключаємось на іншу локальну гілку) git remote add origin http://git.corp2.eu/k2erp/python/k2/base/site/k2site.git git remote -v (перевірка)
- отримуємо дані з віддаленого репозиторію але не змінюємо поточну робочу гілку
git fetch origin
- отримуємо дані з віддаленого репозиторію з віддаленого репозиторію та автоматично об'єднує їх з поточною локальною гілкою.
git pull origin main
- перевіряємо зміни локально скопійованої копії проекту з віддаленим репозиторієм
git status
5. Комміт змін на віддалений репозиторій git
автоматично (скрипт auto_update)
відкриваємо проект в консолі і переходимо в каталог 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
вручну
- після внесених в коді змін перевіряємо їх командою
git status
- додаємо зміни командою
git add .
- комітимо зміни:
git commit -m "Назва комміту"
- пушимо зміни на віддалений репозиторій
git push
- при подальшій роботі отримуємо зміни з віддаленого репозиторію командою
git pull
6. Налаштування завантаження компонент на сервер оновлення
- відкриваємо папку builder/config
- в файлі component-list.txt додаємо список компонент, які будемо завантажувати на сервер оновлення, кожна компонента з нового рядка
components/k2update components/k2adm components/k2site
- в папці ignore створюємо файл з назвою компоненти і додаємо файли і папки, які не потрібно завантажувати на сервер оновлення
( приклад:
k2site.txt __pycache__ .gitignore .git ej2.min.js
)
- в файлі token.txt додаємо токен доступу до сервера оновлення
7. Завантаження нової версії компоненти в систему оновлення
Для створення нової версії компоненти (stable або beta (testing) версії):
- змінюємо версію в файлі setup.py в корні каталогу компоненти (рядок 5 поле version, наприклад version=2.0.4.43, version_type='stable' (testing))
- додаємо опис змін в в файлі history.txt в корні каталогу компоненти (1 рядок, наприклад 2.0.4.43 - додавання додаткового поля в форму реєстрації)
- переходимо в корінь додатку, на рівні з виконуваним файлом app.py:
cd k2
- завантажуємо додані в файлі builder/config/component-list.txt компоненти командою:
python k2update_push.py
8. Оновлюємо змінені версії компонент на тестових доменах deb1-deb3 та тестуємо функціонал.
Контрольний чек-лист розгортання
- Проєкт скопійовано з віддаленого сервера по FTP.
- Виконано
first_run.shабоfirst_run.bat. - У файлі
/K2CloudERP/cfg/k2/k2/k2cfg.pyдля локального запуску зміненоdomain_protocolзhttpsнаhttp. - Проєкт запускається через
run.shабоrun.bat. - У PyCharm налаштовано Python Interpreter на локальне віртуальне середовище
venv. - Встановлено та налаштовано Git.
- Підключено віддалений репозиторій потрібної компоненти або список компонент через
auto_update. - Перевірено
git status,git pull,git push. - Налаштовано
builder/config/component-list.txt,ignoreтаtoken.txtдля сервера оновлень. - Оновлено версію компоненти в
setup.pyі опис змін уhistory.txt. - Виконано
python k2update_push.py. - Оновлено компоненти на тестових доменах
deb1–deb3та перевірено функціонал.