Skip to content
This repository was archived by the owner on May 27, 2023. It is now read-only.

devind-team/dcis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ сборов

ДокумСнтация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π΄Π²ΡƒΡ… сСрвисов:

  • Django сСрвСр, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ GraphQL API (ΠΏΠ°ΠΏΠΊΠ° server)
  • SSR Nuxt ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (ΠΏΠ°ΠΏΠΊΠ° client)

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΎΠ±Π° сСрвиса.

IDE

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ являСтся PyCharm.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹:

  • Vue.js
  • Pug
  • GraphQL

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹:

  • GitToolBox
  • Conventional Commit

Настройка Django сСрвСра (ΠΏΠ°ΠΏΠΊΠ° server)

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвиса ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ зависимости:

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ВСрсия
Python 3.10
Poetry latest
PostgreSQL latest
Redis latest

Для Windows Redis ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ поддСрТиваСтся, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ WSL, ΠΊΠ°ΠΊ это описано Π½Π° сайтС Redis, ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ.

Π’ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сцСнариях, для прСобразования docx Π² pdf ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ установлСнный LibreOffice. Для запуска Ρ‚Π°ΠΊΠΈΡ… сцСнариСв ΠΈΠ· Windows рСкомСндуСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Django сСрвСр Π² WSL с установлСнным LibreOffice.

Π—Π΄Π΅ΡΡŒ ΠΈ Π΄Π°Π»Π΅Π΅ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ server, для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

cd server

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ poetry run для всСх ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. Активация окруТСния описана Π² сСкции "Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки PyCharm".

ПослС установки зависимостСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL.

Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - devind.

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ .env Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ server.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ копирования Ρ„Π°ΠΉΠ»Π° .env.example с Π½ΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ .env.

ΠŸΡ€ΠΈ нСобходимости Π² Ρ„Π°ΠΉΠ»Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…:

  • Имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠ»ΡŽΡ‡ DB_APP_NAME)
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ (ΠΊΠ»ΡŽΡ‡ DB_APP_USER)
  • ΠŸΠ°Ρ€ΠΎΠ»ΡŒ (ΠΊΠ»ΡŽΡ‡ DB_APP_PASSWORD)

На Windows Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· созданного Ρ„Π°ΠΉΠ»Π° всС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с символа #.

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости Python

Для установки зависимостСй Python Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

poetry install
  1. Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Redis сСрвСр Π·Π°ΠΏΡƒΡ‰Π΅Π½

На Linux это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

sudo service redis-server restart

На macOS Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

brew services start redis

На Windows Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² диспСтчСр Π·Π°Π΄Π°Ρ‡ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ слуТбу Redis, Ссли ΠΎΠ½Π° остановлСна.

  1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ скрипт, Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

# Unix
poetry run python3 manage.py migrate
poetry run python3 manage.py load_fixtures
# Windows
poetry run python manage.py migrate
poetry run python manage.py load_fixtures

Π”Π°Π»Π΅Π΅ сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

# Unix
poetry run python3 manage.py runserver
# Windows
poetry run python manage.py runserver

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки PyCharm

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСрвисом ΠΈΠ· PyCharm Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Python ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅

Для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ окруТСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ File, Settings, Project: dcis, Python interpreter. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΡˆΠ΅ΡΡ‚Π΅Ρ€Π΅Π½ΠΊΠΎΠΉ, Π΄Π°Π»Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ° Add. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ мСню Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Poetry Environment, Π΄Π°Π»Π΅Π΅ Existing Environment. Pycharm Π΄ΠΎΠ»ΠΆΠ΅Π½ автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ, созданному с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ poetry install. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ok Π² ΠΎΠ±ΠΎΠΈΡ… мСню.

  1. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Django

Для настройки Django Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ File, Settings, Languages & Frameworks, Django. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Enanle Django Support, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ server Π² качСствС Django project root, Π° Ρ„Π°ΠΉΠ» server/deving/settings.py Π² качСствС Settings, Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ок.

  1. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ

Настройка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ осущСствляСтся Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π²ΠΎΠ·Π»Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Run. НСобходимо Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Add Configuration..., Ссли Π½ΠΈ ΠΎΠ΄Π½Π° конфигурация Π½Π΅ создана, ΠΈΠ»ΠΈ Edit Configurations..., Ссли Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΈ созданы ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ + Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Django Server ΠΈΠ· списка, ввСсти имя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "server") ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ok.

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ· PyCharm

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… осущСствляСтся Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ. НСобходимо Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Database, Π·Π°Ρ‚Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ +, Π΄Π°Π»Π΅Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ DataSource, PostgreSQL. Π’ появившСмся ΠΎΠΊΠ½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ установку Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, Ссли PyCharm Π΅Ρ‘ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚, Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ поля Π² соотвСтствии с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° .env ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ok.

ПослС описанных Π²Ρ‹ΡˆΠ΅ дСйствий появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ:

  1. Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±Π΅Π· прСфикса poetry run.
  2. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Python Console c настроСнным ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ Django.
  3. Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвис ΠΏΡƒΡ‚Π΅ΠΌ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Run.
  4. Π’Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· PyCharm.

Настройка Nuxt ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (ΠΏΠ°ΠΏΠΊΠ° client)

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвиса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ зависимости:

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ВСрсия
Node.js latest LTS
Yarn latest

ПослС установки зависимостСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ .env Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΠ΅ client.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡƒΡ‚Π΅ΠΌ копирования Ρ„Π°ΠΉΠ»Π° .env.example с Π½ΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ .env.

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости Node.js.

Для установки зависимостСй Node.js Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ client ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

yarn
  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром.

Для возмоТности Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку Π½Π° ΠΏΠ°ΠΏΠΊΡƒ server/storage Π² ΠΏΠ°ΠΏΠΊΠ΅ client/static.

Для этого Π² Unix Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python3 init.py

Π’ Windows Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора ΠΈ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

python init.py

Π”Π°Π»Π΅Π΅ сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ client ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

yarn run dev

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки PyCharm

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сСрвисом ΠΈΠ· PyCharm Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ.

Настройка ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ осущСствляСтся Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π²ΠΎΠ·Π»Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Run. НСобходимо Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Add Configuration..., Ссли Π½ΠΈ ΠΎΠ΄Π½Π° конфигурация Π½Π΅ создана, ΠΈΠ»ΠΈ Edit Configurations..., Ссли Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π»ΠΈ созданы ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ + Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ npm ΠΈΠ· списка. Π—Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти имя ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "client"), Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² качСствС Ρ„Π°ΠΉΠ»Π° package.json Ρ„Π°ΠΉΠ»Π° client/package.json, Π° Π² качСствС Scripts ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ dev. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Ок.

ПослС настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвис ΠΏΡƒΡ‚Π΅ΠΌ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Run.

Для запуска Node v18+ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„Π»Π°Π³ NODE_OPTIONS=--openssl-legacy-provider.

Для систСмных администраторов

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΠΊ сСрвСра

БистСмныС трСбования сСрвСра:

  • ОБ: любой дистрибутив Linux(Ubuntu, Debian ΠΈ Ρ‚. Π΄.)
  • Π”Π²ΡƒΡ…ΡŠΡΠ΄Π΅Ρ€Π½Ρ‹ΠΉ процСссор с частотой 2 Π“Π“Ρ† ΠΈΠ»ΠΈ Π»ΡƒΡ‡ΡˆΠ΅
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 4 Π“Π±
  • 32 Π“Π± свободного пространства Π½Π° ТСстком дискС

ΠšΡ€ΠΎΠΌΠ΅ этого Π½Π° сСрвСрС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ зависимости:

Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ВСрсия
PostgreSQL latest
docker latest
docker-compose latest
Nginx latest

Π Π°Π·Π²Π΅Ρ€Ρ‚ΠΊΠ° ΠΈ настройка DCIS

ПослС установки всСх зависомостСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

  1. ΠΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² рССстрС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²:
    docker login ghcr.io -u USERNAME -p TOKEN
  2. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ для развСртывания элСтронной ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ срСды:
    1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:
      sudo mkdir /var/www/eleden/storage
    2. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .env со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимом:
      # Client settings
      # Data connection
      APP_NAME='DCIS'
      URL=https://example.ru
      API_URL=http://192.168.1.3:8000/graphql/
      API_URL_BROWSER=https://example.ru/graphql/
      WS_URL=wss://example.ru/graphql/
      CLIENT_ID=
      CLIENT_SECRET=
      # Settings for sentry
      SENTRY_CLIENT_DSN=
      TINYMCE_API=
      ASK=
      # Server settings
      SECRET_KEY=
      DEBUG=False
      # Application database data
      DB_APP_HOST=
      DB_APP_NAME=
      DB_APP_USER=
      DB_APP_PASSWORD=
      # Email settings
      EMAIL_HOST=
      EMAIL_HOST_USER=
      EMAIL_HOST_PASSWORD=
      EMAIL_HOST_SUPPORT=
      # Sentry integration
      SENTRY_DNS=
      # Notification service interation
      FCM_API_KEY=
      # Settings for celery
      REDIS_SERVER=redis
      # Data for celery
      BROKER_URL=redis://redis:6379
      BROKER_BACKEND=redis://redis:6379
      TASK_SERIALIZER=json
      RESULT_SERIALIZER=json
      
    3. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» docker-compose.yml со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимом:
      version: '3.7'
      
      services:
        client:
          container_name: client
          image: ghcr.io/devind-team/eleden/eleden-client:latest
          command: node .output/server/index.mjs
          restart: always
          ports:
            - "3000:3000"
          env_file: .env
      
        api:
          container_name: api
          image: ghcr.io/devind-team/eleden/eleden-server:latest
          command: poetry run daphne -b 0.0.0.0 -p 8000 devind.asgi:application
          restart: always
          ports:
            - "8000:8000"
          env_file: .env
          volumes:
            - "/var/www/eleden/storage:/usr/src/app/storage"
      
        celery:
          container_name: celery
          image: ghcr.io/devind-team/eleden/eleden-server:latest
          command: poetry run celery -A devind worker -B -E -l INFO
          restart: always
          env_file: .env
          volumes:
            - "/var/www/eleden/storage:/usr/src/app/storage"
      
        redis:
          image: redis
          restart: always
  3. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹:

    ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ docker-compose Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π³Π΄Π΅ находится Ρ„Π°ΠΉΠ» docker-compose.yml

    # Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Π°
    sudo docker-compose pull
    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ запуск ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
    sudo docker-compose up -d
  4. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…:
    1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ присвоСниС всСх ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π°Π΄ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…:
    # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ PostgreSQL
    sudo psql -U postgres
    create user username with encrypted password 'user_password';
    create database database_name;
    grant all privileges on database database_name to username;
    grant connect on database database_name TO username;
    
    1. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» PostgreSQL(/etc/postgresql/latest_version/main/), Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π³ΠΎ записи:
    host    database_name         username        ip_addres_docker_container/24           md5
    
    1. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PostgreSQL
    sudo service postgresql restart
  5. НаполнСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:
    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ† Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…
    sudo docker-compose run api poetry run python manage.py migrate
    # НаполнСниС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
    sudo docker-compose run api poetry run python manage.py fs
  6. Настройка nginx
    1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² /etc/nginx/sites-available со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимом:
    upstream channels-site {
        server localhost:8000;
    }
    
    server {
        listen 443 ssl http2;
        server_name site.ru www.site.ru;
    
        access_log /var/log/nginx/site.ru.access.log;
        error_log /var/log/nginx/site.ru.error.log;
    
        client_max_body_size 32m;
    
        #ssl on;
        ssl_certificate /etc/ssl/certificate/site.crt;
        ssl_certificate_key /etc/ssl/certificate/site.key;
    
        location /storage/ {
            alias /var/www/site/storage/;
        }
    
        location /graphql/ {
            proxy_pass http://channels-site;
    
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $server_name;
        }
    
        location / {
            proxy_pass http://localhost:3000;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
    server {
        listen 80;
        server_name site.ru www.site.ru;
        return 301 https://$host$request_uri;
    }
    1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ссылку созданного Ρ„Π°ΠΉΠ»Π° Π² /etc/nginx/sites-enabled:
    ln -s /etc/nginx/sites-available/file_name.conf /etc/nginx/sites-enabled
    1. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ nginx
    sudo service nginx restart
    

ГСнСрация API сСрвСра

Π’ ΠΏΠ°ΠΏΠΊΠ΅ docs:

sphinx-apidoc -o . ..
make markdown # Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ md Ρ„Π°ΠΉΠ»ΠΎΠ²
make html # Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ html Ρ„Π°ΠΉΠ»ΠΎΠ²

About

Data collection information system

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 9