النشر
تطوير
يحتاج Tuber إلى قاعدة بيانات ومتجر جلسة ومتجر عمل بالإضافة إلى خادم ويب. للاختبار والتطوير ، يمكنك استخدام قاعدة بيانات SQLite واحدة كقاعدة بيانات ومتجر جلسة ومتجر الوظائف أثناء استخدام محركات الويب الخاصة ببناء Python و Node لنشر بسيط للغاية. ستستفيد الأنظمة الأكبر بشكل كبير من استخدام مثيل قاعدة بيانات مخصص (عمومًا بعد postgres) ، وخادم إعادة التقييم للجلسات والوظائف ، و 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-Corms بتكوين 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 إلى مسارك أثناء التثبيت.
بمجرد تثبيت التبعيات ، يمكنك بدء تشغيل الخوادم الخلفية والواجهة الأمامية:
يستخدم 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:
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveسيبدأ هذا الواجهة الأمامية في المنفذ 8081. يمكنك توصيل متصفحك بـ http: // localhost: 8081 وإكمال صفحة الإعداد الأولية للبدء في استخدام Tuber.
كل من الواجهة الأمامية والخلفية سوف يتم التحميل الساخن أثناء تغيير الرمز.
إذا كنت ترغب في إنشاء جدول جديد أو تعديل جدول موجود ، فستحتاج إلى إنشاء ترحيل 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"
في بعض الأحيان عند دمج فرع له ترحيله الجديد في فرعك ، يجب عليك إخبار Alembic بما يجب القيام به. إذا رأيت Alembic يشتكي من العديد من الرؤوس تحقق هنا: https://blog.jerrycodes.com/multiple-heads-in-alembic-migrations/