Site Web de la Metabrainz Foundation. Il s'agit d'une application Web basée sur Flask qui fournit des informations sur la fondation et ses supporters, accepte les dons des utilisateurs et des organisations et donne accès aux paquets de réplication pour MusicBrainz.
Comme d'autres PythonBrainz, ce référentiel a également la configuration des actions GitHub pour aider à faire une version. Une image Docker est construite et poussée vers Docker Hub chaque fois qu'une version est faite à partir de github. Voici les étapes pour faire une version:
Draft de version en haut. Cliquez sur le bouton Edit à côté.Tag Version , entrez la balise avec laquelle vous souhaitez ralentir l'image. Par exemple, si vous entrez v-2021-06-08.0 comme tag, l'image Docker correspondante sera metabrainz/metabrainz:v-2021-06-08.0 .Publish release .Le moyen le plus simple de mettre en place le site Web de Metabrainz pour le développement est d'utiliser Docker. Assurez-vous qu'il est installé sur votre machine avant de suivre les instructions.
La configuration de l'application doit être stockée dans le fichier appelé config.py . Vous pouvez utiliser un exemple ( config.py.example ) et modifier la configuration:
$ cp config.py.example config.py
$ vim config.py
Vous devez vous assurer que les variables requises sont définies.
Pour permettre aux utilisateurs de vous connecter, vous devrez définir deux clés: MUSICBRAINZ_CLIENT_ID et MUSICBRAINZ_CLIENT_SECRET . Pour obtenir ces clés, vous devez enregistrer votre instance de metabrainz.org sur MusicBrainz à https://musicbrainz.org/account/applications/register. Définissez le champ URL de rappel sur http://<your host>/login/musicbrainz/post (si PREFERRED_URL_SCHEME dans le fichier de configuration est défini sur https , assurez-vous de spécifier le même protocole pour l'URL de rappel). Si vous exécutez le serveur localement, remplacez <your host> par localhost .
Vient ensuite la configuration des systèmes de paiement. Nous utilisons PayPal et Stripe pour accepter les paiements à notre fondation. Le dictionnaire PayPal_Account_IDS contient des ID PayPal ou des adresses e-mail des comptes pour chaque devise prise en charge. PayPal_Business est une adresse pour les non-donations; Tous les paiements qui y sont envoyés seront ignorés.
Une fois ces paramètres définis et vous êtes sûr que votre configuration fonctionne correctement en mode test, vous pouvez retourner le commutateur. Définissez le débogage sur False et le paiement_production sur True . AVERTISSEMENT! À des fins de développement, vous ne devez utiliser que les paiements en mode débogage.
Les paquets de réplication doivent être copiés dans le répertoire ./data/replication_packets . Il doit avoir la structure suivante:
./data/replication_packets/
- hourly replication packets
Cette commande créera et démarrera tous les services que vous pourrez utiliser pour le développement:
$ ./develop.sh
La première fois que vous configurez l'application, la base de données doit être initialisée:
$ ./develop.sh manage init-db --create-db
Le serveur Web doit désormais être accessible sur http: // localhost: 80 / .
En raison de la façon dont l'environnement de développement fonctionne avec Docker, il est nécessaire de construire des CSS séparément de la construction d'une image. Pour ce faire, vous devez démarrer le serveur de développement (tous les conteneurs avec Docker Compose) et attacher au conteneur web :
$ ./develop.sh exec -it web bashInstallez ensuite les modules NPM et construisez 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.cssLes deux dernières versions ne sont nécessaires que si vous prévoyez d'utiliser l'interface d'administration.
Une fois que vous avez construit et commencé tous les services comme mentionné ci-dessus, exécutez:
$ ./develop.sh manage extract-strings
Les fichiers POT sont compilés automatiquement chaque fois que les services sont construits, mais au cas où vous apportez des modifications dans les fichiers POT et que vous souhaitez compiler les fichiers de traduction, exécutez:
$ ./develop.sh manage compile-translations
Pour exécuter tous les tests à utiliser:
$ ./test.sh
Avant de faire quoi que ce soit, assurez-vous que la variable PAYMENT_PRODUCTION dans le fichier de configuration est définie sur False ! De cette façon, vous utiliserez des environnements de test où les cartes de crédit et les comptes bancaires ne sont pas réellement facturés. Plus d'informations sur les environnements de test pour chaque service de paiement peuvent être trouvées dans leur documentation:
Veuillez noter que pour que les IPN fonctionnent, l'application doit être accessible au public. Si vous effectuez un développement sur votre machine locale, il est probable que vos points de terminaison de rappel ne soient pas accessibles pour les processeurs de paiement.