Requirements: Python 3.11.4 Docker version 20.10.22, build 3a2c30b Node 16.19.0 npm 9.2.0 pm2 5.2.2
- clone git repository
- setting up docker-compose
- if this not needed - skip to 5 point.
- else copy file docker-compose.yml and rename for example to docker-compose-local.yml
- You can change:
- Port, rename container_name and etc.
- start docker-compose-local.yml:
docker-compose -f (relative path to docker-compose-local.yml) up -d- start docker-compose.yml:
docker-compose up -d- migrate db:
???6.1 if use ubuntu. Install "libffi-dev"
sudo apt-get install libffi-dev6.2 you need install python 3.8.10.
curl https://pyenv.run | bash6.3 insert this in end ~/.bashrc and reload bash
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"6.4 use
pyenv install 3.11.46.5 cd in project dir and use
pyenv local 3.11.46.6 in project dir use
python3 -m pip install virtualenv6.7 in project dir use
python3 -m virtualenv -p python3.11.4 venv6.8 activate venv
source venv/bin/activate6.9 update pip
python3 -m pip install --upgrade pip- install python req:
pip install -r python_requirements.txt- install Node, for example with help brew: macOS
brew install [email protected]- install pm2:
npm install [email protected] -g- install ngrok for example with help brew:
macOS
brew install ngrok- start ngrok server:
ngrok http 8000-
create from "pm2.config.js" your pm2_local.config.js:
-
Create config file in src/ui_backend, from template(config_template) and rename to config_local.py
- WEB_HOOK_URL get from ngrok
- TOKEN get from BotFather in telegram
-
After all of this, start pm2:
pm2 start pm2_local.config.js- you can work :)
You can use debug with VS code(example config in ${workspaceFolder}/ launch_example.json)
source venv/bin/activate cd src/db
- Перейти в src/db
- Выполнять команды приведенные ниже
alembic revision --autogenerate -m "" - создает файл для миграции в папке migrations
alembic upgrade head - для применения миграции
alembic upgrade -1 - откатывает миграцию назад на 1(вместо "-1" можно использовать хэшь миграции)
------------------------------------------------------->
uvicorn main:app --reload - Команда для запуска фастапи
systemctl reload nginx - Перезагрузка енджинкса