Metabrainz Foundation 웹 사이트. 이것은 재단 및 지지자에 대한 정보를 제공하고 사용자 및 조직의 기부를 수락하며 MusicBrainz의 복제 패킷에 대한 액세스를 제공하는 플라스크 기반 웹 응용 프로그램입니다.
다른 Pythonbrainz와 마찬가지로이 저장소에는 릴리스를 수행하는 데 도움이되는 GitHub 작업 설정이 있습니다. Docker 이미지가 GitHub에서 릴리스 될 때마다 Docker Hub로 밀려납니다. 다음은 릴리스를 수행하는 단계입니다.
Draft 릴리스가 표시됩니다. 옆에 Edit 버튼을 클릭하십시오.Tag Version 필드에서 태그가 될 Docker Image를 원하는 태그를 입력하십시오. 예를 들어, 태그로 v-2021-06-08.0 입력하면 해당 Docker 이미지가 metabrainz/metabrainz:v-2021-06-08.0 됩니다.Publish release 클릭하십시오.개발을 위해 Metabrainz 웹 사이트를 설정하는 가장 쉬운 방법은 Docker를 사용하는 것입니다. 지침을 따르기 전에 컴퓨터에 설치되어 있는지 확인하십시오.
앱 구성은 config.py 라는 파일에 저장해야합니다. 예제 1 ( config.py.example )을 사용하고 구성을 조정할 수 있습니다.
$ cp config.py.example config.py
$ vim config.py
필요한 변수가 설정되어 있는지 확인해야합니다.
사용자가 로그인 할 수 있도록하려면 MUSICBRAINZ_CLIENT_ID 및 MUSICBRAINZ_CLIENT_SECRET 의 두 가지 키를 설정해야합니다. 이 키를 얻으려면 https://musicbrainz.org/account/applications/register의 MusicBrainz에 metabrainz.org 인스턴스를 등록해야합니다. 콜백 URL 필드를 http://<your host>/login/musicbrainz/post 로 설정하십시오 (구성 파일의 PREFERRED_URL_SCHEME https 로 설정된 경우 콜백 URL에 대해 동일한 프로토콜을 지정하는지 확인하십시오). 서버를 로컬로 실행하는 경우 <your host> localhost 로 바꾸십시오.
다음은 지불 시스템의 구성입니다. 우리는 PayPal과 Stripe를 사용하여 재단에 대한 지불을 수락합니다. paypal_account_ids 사전에는 각 지원 된 통화에 대한 PayPal ID 또는 이메일 주소가 포함되어 있습니다. PayPal_Business는 비 투약을위한 주소입니다. 그곳에 전송 된 모든 지불금은 무시됩니다.
이러한 설정이 설정되어 있고 테스트 모드 내에서 구성이 올바르게 작동하는지 확인하면 스위치를 뒤집을 수 있습니다. Debug를 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/ 에서 액세스 할 수 있어야합니다.
개발 환경이 Docker와 함께 작동하는 방식으로 인해 이미지 구축과 별도로 CS를 구축해야합니다. 이를 위해서는 개발 서버 (Docker Compose가있는 모든 컨테이너)를 시작하고 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이 작동하려면 응용 프로그램을 공개적으로 제공해야합니다. 로컬 컴퓨터에서 개발중인 경우 결제 프로세서에 대해 콜백 엔드 포인트에 도달 할 수 없을 가능성이 높습니다.