cynicaloptimist / improved-initiative

Combat tracker for Dungeons and Dragons (D&D) 5th Edition

Die offizielle Improved Initiative App lebt auf https://www.improved-initiative.com

Local Development

Requirements

  • Node.js (v12+)

Setup

  • Klone das Repo in einen Ordner auf deinem Computer
  • Öffne den geklonten Ordner in einem Code-Editor wie Visual Studio Code
  • Öffne ein Terminal-Fenster (Powershell ist die empfohlene Terminal-Anwendung für dieses Projekt)
  • Führ die folgenden Befehle im Terminal-Fenster aus, um den Code der Entwicklungsumgebung zu erstellen:
npm installnpx grunt
  • Um den Dev-Server zum Laufen zu bringen, können Sie entweder:
    • Drücken Sie F5 in Visual Studio Code oder
    • In einem neuen Terminalfenster führen Sie npm run start
  • Wenn der Server läuft, besuchen Sie http://localhost in einem Webbrowser, um eine Entwicklungsversion der Benutzeroberfläche anzuzeigen, die auf Ihre Codeänderungen reagiert.
  • Warten Sie jedes Mal, wenn Sie eine Änderung vornehmen, bis die Kompilierung abgeschlossen ist, und laden Sie dann Ihren Browser manuell neu.

Die Entwicklung von Improved Initiative wird durch Patreon unterstützt.

Um mehr darüber zu erfahren, wie Sie Code zu Improved Initiative beitragen können, lesen Sie CONTRIBUTING.md.

Linting

Verbesserte Initiative verwendet Eslint mit Prettier, um die Codedateien zu linsen.

Linting geschieht automatisch bei der Übergabe, aber man kann es auch manuell ausführen: npm run lint.

App Settings

Sie können Ihre Instanz von Improved Initiative mit diesen Einstellungen konfigurieren. Alle sind optional, die Grundfunktionalität sollte funktionieren, wenn Sie keine angeben.

  • PORT – Standardmäßig 80
  • NODE_ENV – Setzen Sie auf „Produktion“, um React zu erfüllen, setzen Sie auf „Entwicklung“, um das Zwischenspeichern der HTML-Ansicht zu deaktivieren.
  • BASE_URL – Wird in absoluten URLs auf der Client-Seite verwendet. Fällt auf relative URLs zurück, wenn sie nicht verfügbar sind. Dies ist die kanonische URL für Patreon-Callback und Browser localStorage.
  • SESSION_SECRET – Wird verwendet, um die Sitzungskontinuität durch App-Neustarts oder so zu erhalten. Wird an express-session übergeben.
  • DEFAULT_ACCOUNT_LEVEL – Wird auf „accountsync“ oder „epicinitiative“ gesetzt, um Belohnungen für alle Benutzer zu gewähren. Nützlich, wenn du keine DB hast.
  • DEFAULT_PATREON_ID – Setzt die Dummy-Patreon-Benutzerkennung, wenn DEFAULT_ACCOUNT_LEVEL gesetzt ist.
  • DB_CONNECTION_STRING – Gibt eine DB-Verbindungszeichenfolge für die Speicherung von Sitzungen und Benutzerkonten an. Andernfalls wird die Mongo-DB verwendet, die beim Neustart der App gelöscht wird.
  • METRICS_DB_CONNECTION_STRING – Geben Sie eine DB-Verbindungszeichenfolge an, in die Metriken geschrieben werden sollen.
  • PATREON_URL, PATREON_CLIENT_ID, PATREON_CLIENT_SECRET – Konfiguration für die Patreon-Integration

Docker

Die Ausführung von Improved Initiative innerhalb von Docker ist möglich, aber völlig optional und derzeit experimentell. Gehen Sie mit Vorsicht vor und lesen Sie im Zweifelsfall die Docker-Dokumentation.

Erstellen des Docker-Images

Um das Docker-Image mit einem Entwicklungs-Build zu erstellen, führen Sie aus:

docker build -t improved-initiative:latest .

Um das Image mit einem Produktions-Build zu erstellen, führen Sie aus:

docker build --build-arg NODE_ENV=production -t improved-initiative:prod .

Ausführen der Anwendung in einem Docker-Container

Um die Anwendung innerhalb des Containers zu starten, führen Sie aus:

docker run -p80:80 --name improved-initiative improved-initiative:latest

Oder, um den Produktions-Build auszuführen:

docker run -p80:80 --name improved-initiative improved-initiative:prod

Anhalten und Entfernen des Containers

Angenommen, Sie haben den Container mit dem Namen improved-initiative wie oben gezeigt gestartet, werden die folgenden Befehle den Container anhalten und dann entfernen:

docker stop improved-initiative

docker rm improved-initiative

Lizenz

Die Improved Initiative App wird unter der MIT-Lizenz zur Verfügung gestellt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.