Metabrainz Foundationのウェブサイト。これは、財団とそのサポーターに関する情報を提供し、ユーザーと組織からの寄付を受け入れ、MusicBrainzのレプリケーションパケットへのアクセスを提供するフラスコベースのWebアプリケーションです。
他のPythonbrainzと同様に、このリポジトリには、リリースを支援するGitHubアクションセットアップもあります。 Docker画像が構築され、GitHubからリリースが行われるたびにDocker Hubにプッシュされます。以下は、リリースを行うための手順です。
Draftリリースが表示されるはずです。その横のEditボタンをクリックします。Tag Versionフィールドに、タグ付けするドッカーイメージに必要なタグを入力します。たとえば、 v-2021-06-08.0をタグとして入力すると、対応するDocker画像はmetabrainz/metabrainz:v-2021-06-08.0です。Publish releaseをクリックします。開発のためにMetabrainz Webサイトを設定する最も簡単な方法は、Dockerを使用することです。指示に従う前に、マシンにインストールされていることを確認してください。
アプリの構成は、 config.pyというファイルに保存する必要があります。例( config.py.example )を使用して、構成を微調整できます。
$ cp config.py.example config.py
$ vim config.py
必要な変数が設定されていることを確認する必要があります。
ユーザーがログインできるようにするには、 MUSICBRAINZ_CLIENT_IDとMUSICBRAINZ_CLIENT_SECRET 2つのキーを設定する必要があります。これらのキーを取得するには、https://musicbrainz.org/account/applications/registerのMetabrainz.orgのインスタンスをMusicBrainzに登録する必要があります。 callback urlフィールドをhttp://<your host>/login/musicbrainz/postに設定します(configファイルのPREFERRED_URL_SCHEMEがhttpsに設定されている場合、コールバックURLについて同じプロトコルを指定してください)。サーバーをローカルに実行する場合は、 <your host>をlocalhostに置き換えます。
次は、支払いシステムの構成です。 PayPalとStripeを使用して、財団への支払いを受け入れます。 PayPal_account_ids辞書には、サポートされている各通貨のアカウントのPayPal IDまたは電子メールアドレスが含まれています。 PayPal_Businessは、非義務のアドレスです。そこに送られたすべての支払いは無視されます。
これらの設定が設定された後、テストモード内で構成が適切に動作していることを確認してください。スイッチをフリップできます。デバッグをFalseに設定し、 payment_productionをTrueに設定します。警告!開発目的では、デバッグモードでのみ支払いを使用する必要があります。
レプリケーションパケットは./data/replication_packets replication_packetsディレクトリにコピーする必要があります。次の構造が必要です。
./data/replication_packets/
- hourly replication packets
このコマンドは、開発に使用できるすべてのサービスを構築および開始します。
$ ./develop.sh
アプリケーションを初めて設定したときは、データベースを初期化する必要があります。
$ ./develop.sh manage init-db --create-db
Webサーバーは、http:// localhost:80/でアクセスできるようになりました。
Dockerとの開発環境の動作により、画像の構築とは別にCSSを構築する必要があります。そのためには、開発サーバー(Dockerが構成したすべてのコンテナ)を起動し、 webコンテナに接続する必要があります。
$ ./develop.sh exec -it web bash次に、NPMモジュールをインストールし、CSSを構築します。
web# npm install
web# ./node_modules/.bin/lessc ./metabrainz/static/css/main.less > ./metabrainz/static/css/main.css
web# ./node_modules/.bin/lessc ./metabrainz/static/css/theme/boostrap/boostrap.less > ./metabrainz/static/css/theme/boostrap/boostrap.css
web# ./node_modules/.bin/lessc ./metabrainz/static/fonts/font_awesome/less/font-awesome.less > ./metabrainz/static/fonts/font_awesome/less/font-awesome.css最後の2つのビルドは、管理インターフェイスを使用することを計画している場合にのみ必要です。
上記のようにすべてのサービスを構築して開始したら、実行してください。
$ ./develop.sh manage extract-strings
ポットファイルは、サービスが構築されるたびに自動的にコンパイルされますが、ポットファイルに変更を加えて翻訳ファイルを再度コンパイルする場合は、実行します。
$ ./develop.sh manage compile-translations
すべてのテストを実行するには:
$ ./test.sh
何かをする前に、構成ファイルのPAYMENT_PRODUCTION変数がFalseに設定されていることを確認してください!これにより、クレジットカードと銀行口座が実際に請求されないテスト環境を使用します。各支払いサービスのテスト環境に関する詳細については、ドキュメントをご覧ください。
IPNが機能するには、アプリケーションが公開されている必要があることに注意してください。ローカルマシンで開発を行っている場合、コールバックエンドポイントが支払いプロセッサに到達できない可能性があります。