Metabrainz基金会的网站。这是一个基于烧瓶的Web应用程序,可提供有关基金会及其支持者的信息,接受用户和组织的捐款,并提供对Musicbrainz复制数据包的访问权限。
像其他毕色杂志一样,该存储库还设置了github操作以帮助释放。每当用GitHub发布释放时,就会构建并将其构建并推到Docker Hub。以下是执行版本的步骤:
Draft发布。单击其旁边的Edit按钮。Tag Version字段中,输入要标记要标记的标签。例如,如果将v-2021-06-08.0作为标签输入,则相应的Docker映像将是metabrainz/metabrainz:v-2021-06-08.0 。Publish release 。建立Metabrainz网站开发的最简单方法是使用Docker。在按照说明之前,请确保将其安装在计算机上。
应用程序配置必须存储在称为config.py的文件中。您可以使用一个示例一个( config.py.example )并调整配置:
$ cp config.py.example config.py
$ vim config.py
您需要确保设置所需的变量。
为了允许用户登录,您需要设置两个键: MUSICBRAINZ_CLIENT_ID和MUSICBRAINZ_CLIENT_SECRET 。要获取这些密钥,您需要在https://musicbrainz.org/account/applications/register上注册Metabrainz.org的实例。将回调URL字段设置为http://<your host>/login/musicbrainz/post (如果配置文件中的PREFERRED_URL_SCHEME设置为https ,请确保您指定了回调url的相同协议)。如果您本地运行服务器,请用localhost替换<your host> 。
接下来是支付系统的配置。我们使用PayPal和Stripe接受我们的基金会付款。 paypal_account_ids字典包含每种支持货币的帐户的PayPal ID或电子邮件地址。 paypal_business是非捐赠的地址;所有发送的付款将被忽略。
设置了这些设置后,您确定您的配置在测试模式下正常工作,您可以翻转开关。将调试设置为False和payment_production True 。警告!出于开发目的,您只应在调试模式下使用付款。
必须将复制数据包复制到./data/replication_packets目录中。它必须具有以下结构:
./data/replication_packets/
- hourly replication packets
此命令将构建并启动您可以用于开发的所有服务:
$ ./develop.sh
您第一次设置应用程序时,需要初始化数据库:
$ ./develop.sh manage init-db --create-db
现在,应通过http:// localhost:80/访问Web服务器。
由于开发环境与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仅当您打算使用管理界面时,才需要最后两个构建。
一旦您构建并启动了如上所述的所有服务,请运行:
$ ./develop.sh manage extract-strings
每次构建服务时,都会自动汇编锅文件,但是如果您对锅文件进行任何更改,并希望再次编译翻译文件,请运行:
$ ./develop.sh manage compile-translations
运行所有测试使用:
$ ./test.sh
在执行任何操作之前,请确保配置文件中的PAYMENT_PRODUCTION变量设置为False !这样,您将使用实际未收取信用卡和银行帐户的测试环境。有关每种付款服务测试环境的更多信息,请参见其文档:
请注意,要使IPN工作,必须公开使用该应用程序。如果您在本地机器上进行开发,则可能无法到达付款处理器的回调端点。