Развертывание
Разработка
Тубер нуждается в базе данных, магазине сеансов и хранилищами заданий, а также веб -сервером. Для тестирования и разработки вы можете использовать одну базу данных SQLite в качестве базы данных, магазина сеанса и хранилища заданий при использовании встроенных веб-серверов Python и Node для очень простого развертывания. Большие системы будут очень выгодно от использования специального экземпляра базы данных (обычно Postgres), сервера Redis для сеансов и заданий, а также Nginx или Apache в качестве веб -сервера.
Существует множество способов настройки вещей, но мы стараемся сделать наиболее распространенным, что было как можно более простым для реализации.
Последняя версия Tuber опубликована в Github Packages как ghcr.io/magfest/tuber-frontend:latest и ghcr.io/magfest/tuber-backend:latest . Вы можете просмотреть их здесь.
Чтобы развернуть с помощью Docker, сначала установите Docker на вашей платформе, как описано здесь.
С запуском Docker Daemon, вы можете вытащить и запустить клубень:
docker-compose upЭто установит небольшую стопку контейнеров в стиле производства, используя Postgres для базы данных, Nginx в качестве обратного прокси и Redis в качестве сеанса и магазина заданий. После того, как он заканчивается, вы сможете получить доступ к вашему экземпляру по адресу http: // localhost: 8081
ПРИМЕЧАНИЕ. Образец Docker-Compose File в настоящее время не настраивает SSL. Вы должны либо настроить обратный прокси для обработки SSL, либо редактировать contrib/nginx.conf для использования ваших сертификатов и редактирования docker-compose.yml , чтобы разрешить доступ к порту 443.
После клонирования этого хранилища вам понадобятся следующие зависимости:
dnf install npm python3 python3-devel python3-pip # Fedora/RHEL/CentOS
apt install npm python3 python3-dev python3-pip # Debian/Ubuntu
brew install npm python postgresql # MacOSВ Windows вам придется установить Nodejs, Python3 и PostgreSQL. Обязательно добавьте как NPM, так и Python на свой путь во время установки.
После установки зависимостей вы можете запустить серверы разработки Backend и Frontend:
Tuber использует переменные среды для настройки некоторых основных настроек.
DATABASE_URL=sqlite:///database.db
FLASK_ENV=production
REDIS_URL=
WORKERS=2
CIRCUITBREAKER_THREADS=2
CIRCUITBREAKER_TIMEOUT=5
ENABLE_CIRCUITBREAKER=truepython -m venv venv
source venv/bin/activate
cd backend
python -m pip install -e .
tuber
# Windows
python -m venv venv
venv S cripts a ctivate.bat
cd backend
python -m pip install -e .
.. v env S cripts t uber.exeСервер теперь должен запустить и начать прослушивание на порту 8080 для запросов API.
В отдельном терминале от бэкэнда установите и подайте Vue Frontend:
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveЭто запустит фронт на порту 8081. Вы можете подключить браузер к http: // localhost: 8081 и завершить страницу начальной настройки, чтобы начать использование клубня.
Как фронта, так и бэкэнд будут горячей нагрузкой при изменении кода.
Если вы хотите создать новую таблицу или изменить существующую, вам понадобится создать миграцию Alembic. Большую часть времени вы можете сделать это, автогенерируя это.
Во -первых, создайте определение таблицы в Tuber/Models/.py, и убедитесь, что оно импортируется в клубня/модели/ init .py.
Далее используйте Alembic для создания миграционного файла:
venv/bin/alembic -c backend/tuber/alembic.ini revision --autogenerate -m " Added widget column to the whatsit table "Это должно создать файл миграции в миграции/версиях. Прочитайте его и отрегулируйте шаги по мере необходимости. В следующий раз, когда вы перезапустите экземпляр Dev, он запустит миграцию.
Вы также можете запустить обновление базы данных вручную:
venv/bin/alembic -c backend/tuber/alembic.ini upgrade headОбязательно совершите миграцию вместе с кодом, который его использует!
Если вы получили следующее неоднозначное сообщение об ошибке при запуске python setup.py develop : ld: library not found for -lssl
Попробуйте установить путь ссылки для OpenSSL и запустить его снова: export LDFLAGS="-L/usr/local/opt/openssl/lib"
Иногда при слиянии филиала, которая имеет свои новые новые миграции в вашу собственную филиал, вам придется рассказать Алембику, что делать. Если вы видите, что Алембич жалуется на несколько голов, проверьте здесь: https://blog.jerrycodes.com/multiple-shie-in-alembic-migrations/