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.

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

<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.

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

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

Див. також