Situs web untuk Metabrainz Foundation. Ini adalah aplikasi web berbasis flask yang menyediakan info tentang yayasan dan pendukungnya, menerima sumbangan dari pengguna dan organisasi, dan menyediakan akses ke paket replikasi untuk MusicBrainz.
Seperti PythonBrainz lainnya, repositori ini juga memiliki pengaturan tindakan github untuk membantu melakukan rilis. Gambar Docker dibangun dan didorong ke Hub Docker setiap kali rilis dibuat dari GitHub. Berikut ini adalah langkah -langkah untuk melakukan rilis:
Draft di atas. Klik tombol Edit di sebelahnya.Tag Version , masukkan tag yang ingin Anda tandai dengan tag. Misalnya, jika Anda memasukkan v-2021-06-08.0 sebagai tag, gambar Docker yang sesuai adalah metabrainz/metabrainz:v-2021-06-08.0 .Publish release .Cara termudah untuk mengatur situs web Metabrainz untuk pengembangan adalah dengan menggunakan Docker. Pastikan diinstal pada mesin Anda sebelum mengikuti instruksi.
Konfigurasi aplikasi harus disimpan dalam file yang disebut config.py . Anda dapat menggunakan contoh satu ( config.py.example ) dan mengubah konfigurasinya:
$ cp config.py.example config.py
$ vim config.py
Anda perlu memastikan bahwa variabel yang diperlukan ditetapkan.
Untuk memungkinkan pengguna masuk, Anda harus mengatur dua tombol: MUSICBRAINZ_CLIENT_ID dan MUSICBRAINZ_CLIENT_SECRET . Untuk mendapatkan kunci -kunci ini, Anda perlu mendaftarkan contoh metabrainz.org di MusicBrainz di https://musicbrainz.org/account/applications/Register. Setel bidang Callback URL ke http://<your host>/login/musicbrainz/post (if PREFERRED_URL_SCHEME di file konfigurasi diatur ke https , pastikan Anda menentukan protokol yang sama untuk URL callback). Jika Anda menjalankan server secara lokal, ganti <your host> dengan localhost .
Berikutnya adalah konfigurasi sistem pembayaran. Kami menggunakan PayPal dan Stripe untuk menerima pembayaran ke yayasan kami. Kamus PayPal_Account_ids berisi ID PayPal atau alamat email akun untuk setiap mata uang yang didukung. Paypal_business adalah alamat untuk non-donasi; Semua pembayaran yang dikirim ke sana akan diabaikan.
Setelah pengaturan ini diatur dan Anda yakin bahwa konfigurasi Anda berfungsi dengan baik dalam mode uji, Anda dapat membalik sakelar. Tetapkan debug ke False dan payment_production ke True . PERINGATAN! Untuk tujuan pengembangan, Anda hanya harus menggunakan pembayaran dalam mode debug.
Paket replikasi harus disalin ke ./data/replication_packets Directory. Itu harus memiliki struktur berikut:
./data/replication_packets/
- hourly replication packets
Perintah ini akan membangun dan memulai semua layanan yang dapat Anda gunakan untuk pengembangan:
$ ./develop.sh
Pertama kali Anda mengatur aplikasi, database perlu diinisialisasi:
$ ./develop.sh manage init-db --create-db
Server web sekarang harus dapat diakses di http: // localhost: 80/ .
Karena cara pengembangan lingkungan bekerja dengan Docker, perlu membangun CS secara terpisah dari membangun gambar. Untuk melakukan itu, Anda perlu memulai server pengembangan (semua wadah dengan Docker menyusun) dan lampirkan ke wadah web :
$ ./develop.sh exec -it web bashKemudian instal modul NPM dan bangun 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.cssDua bangunan terakhir hanya diperlukan jika Anda berencana untuk menggunakan antarmuka admin.
Setelah Anda membangun dan memulai semua layanan seperti yang disebutkan di atas, jalankan:
$ ./develop.sh manage extract-strings
File pot disusun secara otomatis setiap kali layanan dibangun, tetapi jika Anda membuat perubahan pada file pot dan ingin menyusun file terjemahan lagi, jalankan:
$ ./develop.sh manage compile-translations
Untuk menjalankan semua tes, gunakan:
$ ./test.sh
Sebelum melakukan apa pun, pastikan bahwa variabel PAYMENT_PRODUCTION dalam file konfigurasi diatur ke False ! Dengan cara ini Anda akan menggunakan lingkungan pengujian di mana kartu kredit dan rekening bank sebenarnya tidak dibebankan. Info lebih lanjut tentang lingkungan pengujian untuk setiap layanan pembayaran dapat ditemukan dalam dokumentasi mereka:
Harap dicatat bahwa agar IPNs berfungsi, aplikasi harus tersedia untuk umum. Jika Anda melakukan pengembangan pada mesin lokal Anda, kemungkinan titik akhir panggilan balik Anda tidak akan dapat dijangkau untuk pemroses pembayaran.