展開
発達
Tuberには、データベース、セッションストア、ジョブストア、およびWebサーバーが必要です。テストと開発には、ビルドインPythonおよびノードWebサーバーを使用して非常に簡単な展開を使用しながら、データベース、セッションストア、ジョブストアとして単一のSQLiteデータベースを使用できます。大規模なシステムは、専用のデータベースインスタンス(一般的にポストグレス)、セッションやジョブ用のRedisサーバー、およびnginxまたはApacheをWebサーバーとして使用することで大きな恩恵を受けます。
物事を構成するには多くの方法がありますが、実装するのができる限りシンプルなものを最も一般的にしようとしています。
Tuberの最新バージョンは、Githubパッケージに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 # MacOSWindowsには、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サーバーは、APIリクエストのためにポート8080で起動してリスニングを開始する必要があります。
バックエンドから別のターミナルで、Vue Frontendをインストールして提供します。
npm install --global yarn # Yarn is recommended for the frontend
cd frontend
yarn install
yarn run serveこれにより、ポート8081のフロントエンドが開始されます。ブラウザをhttp:// localhost:8081に接続し、初期セットアップページを完了して塊茎の使用を開始できます。
フロントエンドとバックエンドの両方が、コードを変更するとホットレロードになります。
新しいテーブルを作成したり、既存のテーブルを変更したりする場合は、アレンビック移行を作成する必要があります。ほとんどの場合、これを自動誘発することでこれを行うことができます。
まず、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"
独自の新しい移行を自分のブランチに統合する場合、アレムビッチに何をすべきかを伝える必要がある場合があります。アレンビックが複数のヘッドについて不平を言っているのを見た場合:https://blog.jerrycodes.com/multiple-heads-in-alembicmigrations/