Penyebaran
Perkembangan
Tuber membutuhkan database, toko sesi, dan toko pekerjaan serta server web. Untuk pengujian dan pengembangan, Anda dapat menggunakan basis data SQLite tunggal sebagai database, toko sesi, dan toko pekerjaan sambil menggunakan server web python dan simpul build-in untuk penyebaran yang sangat sederhana. Sistem yang lebih besar akan mendapat manfaat besar dari menggunakan instance database khusus (umumnya postgres), server Redis untuk sesi dan pekerjaan, dan nginx atau apache sebagai server web.
Ada banyak cara untuk mengonfigurasi hal -hal, tetapi kami mencoba membuat yang paling umum adalah sesederhana mungkin untuk diimplementasikan.
Versi terbaru Tuber diterbitkan ke GitHub Packages sebagai ghcr.io/magfest/tuber-frontend:latest dan ghcr.io/magfest/tuber-backend:latest . Anda dapat melihatnya di sini.
Untuk menggunakan menggunakan Docker First Install Docker di platform Anda, seperti yang dijelaskan di sini.
Dengan Docker Daemon berjalan, Anda sekarang dapat menarik dan menjalankan umbi:
docker-compose upIni akan mengatur tumpukan kontainer gaya produksi kecil, menggunakan postgres untuk database, Nginx sebagai proxy terbalik, dan redis sebagai sesi dan toko pekerjaan. Setelah selesai mulai, Anda harus dapat mengakses instance Anda di http: // localhost: 8081
CATATAN: File Compose Docker Contoh saat ini tidak mengkonfigurasi SSL. Anda harus mengatur proxy terbalik untuk menangani SSL, atau mengedit contrib/nginx.conf untuk menggunakan sertifikat Anda dan mengedit docker-compose.yml untuk memungkinkan akses ke port 443.
Setelah mengkloning repositori ini, Anda akan membutuhkan dependensi berikut:
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 # MacOSDi Windows Anda harus menginstal NodeJs, Python3 dan PostgreSQL. Pastikan untuk menambahkan NPM dan Python ke jalur Anda selama instalasi.
Setelah dependensi dipasang, Anda dapat memulai server pengembangan backend dan frontend:
Tuber menggunakan variabel lingkungan untuk mengonfigurasi beberapa pengaturan dasar.
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.exeServer sekarang harus memulai dan mulai mendengarkan di port 8080 untuk permintaan API.
Di terminal terpisah dari backend, pasang dan sajikan vue frontend:
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveIni akan memulai frontend di port 8081. Anda dapat menghubungkan browser Anda ke http: // localhost: 8081 dan lengkapi halaman pengaturan awal untuk mulai menggunakan umbi.
Baik frontend dan backend akan memuat lebih panas saat Anda mengubah kode.
Jika Anda ingin membuat tabel baru atau memodifikasi yang sudah ada, Anda perlu membuat migrasi alembik. Sebagian besar waktu, Anda dapat melakukan ini dengan autogenerasi.
Pertama, buat definisi tabel dalam umbi/model/.py, dan pastikan itu diimpor dalam tuber/model/ init .py.
Selanjutnya, gunakan Alembic untuk membuat file migrasi:
venv/bin/alembic -c backend/tuber/alembic.ini revision --autogenerate -m " Added widget column to the whatsit table "Ini harus membuat file migrasi dalam migrasi/versi. Bacalah dan sesuaikan langkah -langkah yang diperlukan. Lain kali Anda restart instance dev Anda akan menjalankan migrasi.
Anda juga dapat memicu pembaruan database secara manual:
venv/bin/alembic -c backend/tuber/alembic.ini upgrade headPastikan untuk melakukan migrasi bersama dengan kode yang menggunakannya!
Jika Anda menerima pesan kesalahan ambigu berikut saat menjalankan python setup.py develop : ld: library not found for -lssl
Coba setel jalur tautan untuk openssl dan menjalankannya lagi: export LDFLAGS="-L/usr/local/opt/openssl/lib"
Terkadang ketika menggabungkan cabang yang memiliki migrasi baru ke cabang Anda sendiri, Anda harus memberi tahu Alembic apa yang harus dilakukan. Jika Anda melihat Alembic mengeluh tentang beberapa kepala, periksa di sini: https://blog.jerrycodes.com/multiple-heads-in-alembic-migrations/