mushroomlabs.hub20

Hub20

Diese Rolle bietet alles Notwendige, um eine Instanz von Hub20 mit allen Hintergrundjobs einzurichten.

Anforderungen

Diese Rolle ist nur für die Installation und Einrichtung der folgenden Hub20-Dienste verantwortlich:

  • API: die REST API (eine Django-Anwendung, bereitgestellt von Uvicorn)
  • web3 Ereignisse überwachen: ein Hintergrundjob, der relevante web3-Ereignisse überwacht (z.B. ETH/ERC20-Überweisungen an Konten, die von unseren Diensten gehalten werden, Raiden-Kanäle, die geöffnet/geschlossen werden, und alles andere, was der Benutzer definiert)
  • Raiden Sync: ein Hintergrundjob, der alle Ereignisse aus Ihrer Raiden-Instanz sammelt und verarbeitet
  • pendiente Zahlungen verfolgen: ein Hintergrundjob, der ausstehende Transaktionen überprüft, die sich auf eines der Konten der Hub20-internen Geldbörsen beziehen

Die Rolle stellt NICHT die Einrichtung der Dienste zur Verfügung, auf die Hub20 angewiesen ist, nämlich PostgreSQL und Redis. Sie bietet auch keinen Webserver, der vor Uvicorn geschaltet werden sollte, um z.B. statische Medien bereitzustellen. Dieser Dienst sollte hinter einem Webserver oder einem Lastverteilungssystem ausgeführt werden (sehen Sie sich die Bereitstellungstipps von Uvicorn an, um Ihre besten Optionen zu verstehen).

Diese Rolle geht auch davon aus, dass Sie eine auf Debian basierende Linux-Distribution verwenden, die systemd nutzt. Außerdem, aufgrund der Abhängigkeit von Hub20 von Python >= 3.7, muss eine neuere Distribution verwendet werden, oder Sie müssen Ihrem Playbook einige Aufgaben hinzufügen, um eine aktuelle Python-Version auf der Zielplattform zu installieren.

Rollenvariablen

  • hub20_application_host: (Standard 127.0.0.1)
  • hub20_application_port: (Standard 5000)
  • hub20_blockchain_network_id: (Standard 1)
  • hub20_blockchain_starting_block: (Standard 9500000)
  • hub20_database_host: (Standard localhost)
  • hub20_database_name: (Standard hub20)
  • hub20_database_user: (Standard hub20)
  • hub20_database_port: (Standard 5432)
  • hub20_environment_file_path: (Standard /etc/hub20)
  • hub20_email_backend: (Standard django.core.mail.backends.console.EmailBackend)
  • hub20_email_sender_address: (Standard noreply@hub20.example.com)
  • hub20_pip_package_name: (Standard hub20)
  • hub20_pip_package_state: (Standard latest)
  • hub20_redis_host: (Standard localhost)
  • hub20_redis_port: (Standard 6379)
  • hub20_redis_celery_database: (Standard 0)
  • hub20_redis_cache_database: (Standard 1)
  • hub20_run_debug_mode: (Standard false)
  • hub20_run_python_version: (Standard python3.7)
  • hub20_service_web3_event_listener_enabled: (Standard true)
  • hub20_service_raiden_sync_enabled: (Standard true)
  • hub20_service_web_enabled: (Standard true)
  • hub20_user_name: (Standard hub20)
  • hub20_user_home_path: (Standard /srv/hub20)
  • hub20_web3_provider_uri: (Standard http://localhost:8545)
  • hub20_tracked_tokens: Liste der Token-Adressen (als hexadezimale Strings), die von den Geschäften als Währung verwendet/akzeptiert werden. (Standard: Adressen für ETH, WETH, DAI und RDN)
  • hub20_application_static_folder_path: (Standard /srv/hub20/static)
  • hub20_broker_url: (Standard redis://localhost:6379/0)
  • hub20_cache_url: (Standard redis://localhost:6379/1)
  • hub20_run_virtualenv_path: (Standard /srv/hub20/.venv)

Die folgenden Variablen müssen definiert werden und sollten als sensible Werte behandelt werden:

  • hub20_database_password: das Passwort für die Verbindung zur Datenbank.
  • hub20_service_secret_key: der geheime Schlüssel der Hub20-Webanwendungen, der für die Sitzungsverwaltung, die CSRF-Token-Generierung usw. verwendet wird.

Beispiel-Playbook

- hosts: hub20_servers
  roles:
     - role: geerlingguy.nginx   # Nginx als Vorderproxy verwenden
     - role: lullis.certbot-nginx  # Um SSL-Zertifikate von Let's Encrypt zu erhalten und von Nginx bereitstellen zu lassen
     - role: mushroomlabs.hub20
     

Lizenz

MIT

Autoreninformationen

Raphael Lullis (raphael@mushroomlabs.com)

Über das Projekt

Installs and sets up all hub20 services in any Debian-based linux distro

Installieren
ansible-galaxy install mushroomlabs.hub20
GitHub Repository
Lizenz
mit
Downloads
92
Besitzer