Website für die Metabrainz Foundation. Dies ist eine auf Flask-basierte Webanwendung, die Informationen über die Stiftung und ihre Unterstützer bereitstellt, Spenden von Benutzern und Organisationen akzeptiert und Zugriff auf die Replikationspakete für MusicBrainz bietet.
Wie andere Pythonbrainz verfügt auch in diesem Repository mit GitHub -Aktionen ein, um eine Veröffentlichung durchzuführen. Ein Docker -Bild wird erstellt und nach Docker Hub gedrängt, wenn eine Veröffentlichung aus GitHub erstellt wird. Im Folgenden finden Sie die Schritte für eine Veröffentlichung:
Draft sehen. Klicken Sie daneben auf die Schaltfläche Edit .Tag Version das Tag ein, mit dem Sie docken möchten, mit dem Sie docken möchten. Wenn Sie beispielsweise v-2021-06-08.0 als Tag eingeben, ist das entsprechende Docker-Bild metabrainz/metabrainz:v-2021-06-08.0 .Publish release .Der einfachste Weg, um die Metabrainz -Website für die Entwicklung einzurichten, ist die Verwendung von Docker. Stellen Sie sicher, dass es auf Ihrem Computer installiert ist, bevor Sie den Anweisungen befolgen.
Die App -Konfiguration muss in der Datei namens config.py gespeichert werden. Sie können ein Beispiel verwenden ( config.py.example ) und die Konfiguration optimieren:
$ cp config.py.example config.py
$ vim config.py
Sie müssen sicherstellen, dass die erforderlichen Variablen festgelegt sind.
Damit Benutzer sich anmelden können, müssen Sie zwei Tasten festlegen: MUSICBRAINZ_CLIENT_ID und MUSICBRAINZ_CLIENT_SECRET . Um diese Schlüssel zu erhalten, müssen Sie Ihre Instanz von metabrainz.org unter https://musicbrainz.org/account/applications/register unter https://musicbrainz.org/account/applications registrieren. Setzen Sie Callback -URL -Feld auf http://<your host>/login/musicbrainz/post (falls PREFERRED_URL_SCHEME in der Konfigurationsdatei auf https eingestellt ist, stellen Sie sicher, dass Sie dasselbe Protokoll für die Callback -URL angeben). Wenn Sie den Server lokal ausführen, ersetzen Sie <your host> durch localhost .
Als nächstes kommt die Konfiguration der Zahlungssysteme. Wir verwenden PayPal und Stripe, um Zahlungen an unsere Stiftung zu akzeptieren. PayPal_Account_ids Dictionary enthält PayPal -IDs oder E -Mail -Adressen von Konten für jede unterstützte Währung. Paypal_business ist eine Adresse für Nichtdonationen; Alle dort gesendeten Zahlungen werden ignoriert.
Nachdem diese Einstellungen festgelegt wurden und Sie sicher sind, dass Ihre Konfiguration im Testmodus ordnungsgemäß funktioniert, können Sie den Schalter umdrehen. Stellen Sie das Debuggen auf False und payment_production auf True . WARNUNG! Für Entwicklungszwecke sollten Sie nur Zahlungen im Debug -Modus verwenden.
Replikationspakete müssen in das Verzeichnis ./data/replication_packets kopiert werden. Es muss die folgende Struktur haben:
./data/replication_packets/
- hourly replication packets
Dieser Befehl erstellt und startet alle Dienste, die Sie für die Entwicklung nutzen können:
$ ./develop.sh
Wenn Sie die Anwendung zum ersten Mal einrichten, muss die Datenbank initialisiert werden:
$ ./develop.sh manage init-db --create-db
Der Webserver sollte nun unter http: // localhost: 80/ zugänglich sein.
Aufgrund der Funktionsweise der Entwicklungsumgebung mit Docker ist es erforderlich, CSS getrennt von der Erstellung eines Bildes zu erstellen. Dazu müssen Sie den Entwicklungsserver (alle Container mit Docker komponieren) starten und an den web anhängen:
$ ./develop.sh exec -it web bashInstallieren Sie dann NPM -Module und erstellen Sie 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.cssDie letzten beiden Builds sind nur erforderlich, wenn Sie planen, die Administratorschnittstelle zu verwenden.
Sobald Sie alle oben erwähnten Dienste gebaut und gestartet haben, rennen Sie:
$ ./develop.sh manage extract-strings
Die POT -Dateien werden jedes Mal automatisch zusammengestellt, wenn die Dienste erstellt werden. Wenn Sie jedoch Änderungen an den POT -Dateien vornehmen und die Übersetzungsdateien erneut kompilieren möchten, führen Sie aus:
$ ./develop.sh manage compile-translations
Um alle Tests auszuführen, verwenden Sie:
$ ./test.sh
Bevor Sie etwas tun, stellen Sie sicher, dass die Variable PAYMENT_PRODUCTION in der Konfigurationsdatei auf False festgelegt ist! Auf diese Weise verwenden Sie Testumgebungen, in denen Kreditkarten und Bankkonten nicht tatsächlich berechnet werden. Weitere Informationen zu Testumgebungen für jeden Zahlungsdienst finden Sie in ihrer Dokumentation:
Bitte beachten Sie, dass die Bewerbung für IPNS öffentlich verfügbar sein muss. Wenn Sie sich auf Ihrem lokalen Computer entwickeln, ist es wahrscheinlich, dass Ihre Rückrufendpunkte für Zahlungsabwickler nicht erreichbar sind.