部署
發展
塊莖需要一個數據庫,會話商店和作業商店以及Web服務器。對於測試和開發,您可以在使用Build-In-In-In-In-In Python和Node WebServers進行非常簡單的部署時使用單個SQLITE數據庫作為數據庫,會話存儲和作業商店。較大的系統將從使用專用數據庫實例(通常是Postgres),用於會話和作業的REDIS服務器以及Nginx或Apache作為Web服務器中受益匪淺。
有很多方法可以配置事物,但是我們嘗試使最常見的方法盡可能簡單。
塊莖的最新版本以ghcr.io/magfest/tuber-frontend:latest和ghcr.io/magfest/tuber-backend:latest 。您可以在這裡查看它們。
要使用Docker首先安裝Docker在您的平台上進行部署,如下所述。
在運行Docker守護程序的情況下,您現在可以拉並運行塊莖:
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同時添加到您的路徑中。
安裝依賴項後,您可以啟動後端和前端開發服務器:
塊莖使用環境變量配置一些基本設置。
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,並完成初始設置頁面以開始使用塊莖。
在更改代碼時,前端和後端都會熱彈加載。
如果要創建一個新表或修改現有表,則需要創建Alembic遷移。大多數時候,您可以通過自動化來做到這一點。
首先,在塊莖/型號/.py中創建表定義,並確保在塊莖/型號/ 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抱怨多個頭部檢查: