การปรับใช้
การพัฒนา
Tuber ต้องการฐานข้อมูลที่เก็บเซสชันและที่เก็บงานรวมถึงเว็บเซิร์ฟเวอร์ สำหรับการทดสอบและการพัฒนาคุณสามารถใช้ฐานข้อมูล SQLite เดียวเป็นฐานข้อมูลที่เก็บเซสชันและที่เก็บงานในขณะที่ใช้ Python และโหนด webservers สำหรับการปรับใช้อย่างง่ายมาก ระบบขนาดใหญ่จะได้รับประโยชน์อย่างมากจากการใช้อินสแตนซ์ฐานข้อมูลเฉพาะ (โดยทั่วไป postgres), เซิร์ฟเวอร์ Redis สำหรับเซสชันและงานและ Nginx หรือ Apache เป็นเว็บเซิร์ฟเวอร์
มีหลายวิธีในการกำหนดค่าสิ่งต่าง ๆ แต่เราพยายามทำสิ่งที่พบได้บ่อยที่สุดนั้นง่ายที่สุดเท่าที่จะทำได้
Tuber เวอร์ชันล่าสุดถูกเผยแพร่ไปยังแพ็คเกจ GitHub เป็น ghcr.io/magfest/tuber-frontend:latest และ ghcr.io/magfest/tuber-backend:latest คุณสามารถดูได้ที่นี่
ในการปรับใช้โดยใช้ Docker First ติดตั้ง Docker บนแพลตฟอร์มของคุณตามที่อธิบายไว้ที่นี่
ด้วยการทำงานของ Docker Daemon ตอนนี้คุณสามารถดึงและเรียกใช้ Tuber:
docker-compose upสิ่งนี้จะตั้งค่าสแต็คสไตล์การผลิตขนาดเล็กโดยใช้ postgres สำหรับฐานข้อมูล, Nginx เป็นพร็อกซีย้อนกลับและ Redis เป็นเซสชันและที่เก็บงาน เมื่อเริ่มต้นเสร็จแล้วคุณควรเข้าถึงอินสแตนซ์ของคุณได้ที่ http: // localhost: 8081
หมายเหตุ: ไฟล์ตัวอย่าง Docker-compose ไม่ได้กำหนดค่า 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 และตรวจสอบให้แน่ใจว่านำเข้าใน Tuber/Models/ Init .py
ถัดไปใช้ Alembic เพื่อสร้างไฟล์การย้ายถิ่น:
venv/bin/alembic -c backend/tuber/alembic.ini revision --autogenerate -m " Added widget column to the whatsit table "สิ่งนี้ควรสร้างไฟล์การโยกย้ายในการย้ายถิ่น/เวอร์ชัน อ่านผ่านและปรับขั้นตอนตามความจำเป็น ครั้งต่อไปที่คุณรีสตาร์ทอินสแตนซ์ของคุณจะเรียกใช้การโยกย้าย
นอกจากนี้คุณยังสามารถทริกเกอร์การอัปเดตฐานข้อมูลด้วยตนเอง:
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/