mushroomlabs.hub20

Hub20

Ta rola zapewnia wszystko, co potrzebne do skonfigurowania instancji Hub20 wraz z wszystkimi pracami w tle.

Wymagania

Ta rola odpowiada tylko za instalację i konfigurację następujących usług Hub20:

  • API: REST API (aplikacja django, obsługiwana przez uvicorn)
  • nasłuchiwanie zdarzeń web3: zadanie w tle, które nasłuchuje istotnych zdarzeń web3 (np. transfery ETH/ERC20 na konta obsługiwane przez nasze usługi, otwieranie/zamykanie kanałów Raiden, cokolwiek innego użytkownik zdefiniuje)
  • synchronizacja Raiden: zadanie w tle do zbierania i przetwarzania wszystkich zdarzeń z Twojej instancji Raiden
  • śledzenie oczekujących płatności: zadanie w tle, które sprawdza oczekujące transakcje kierowane do któregokolwiek z kont wewnętrznych portfeli Hub20

Rola NIE zapewnia konfiguracji usług, od których zależy Hub20, czyli PostgreSQL i Redis. Nie obejmuje też żadnego serwera sieciowego, który powinien być z przodu uvicorn, aby obsługiwać, np. statyczne zasoby. Usługa ta jest przeznaczona do działania za jakimś serwerem sieciowym lub systemem równoważenia obciążenia (zapoznaj się z poradami wdrożeniowymi Uvicorn, aby poznać najlepsze opcje).

Ta rola zakłada również, że targetujesz dystrybucję Linux opartą na Debianie, która używa systemd. Dodatkowo, ze względu na zależność Hub20 od Pythona >= 3.7, należy użyć nowszej dystrybucji lub dodać kilka zadań do swojego playbooka, aby zainstalować nową wersję Pythona na docelowej platformie.

Zmienne Roli

  • hub20_application_host: (domyślnie 127.0.0.1)
  • hub20_application_port: (domyślnie 5000)
  • hub20_blockchain_network_id: (domyślnie 1)
  • hub20_blockchain_starting_block: (domyślnie 9500000)
  • hub20_database_host: (domyślnie localhost)
  • hub20_database_name: (domyślnie hub20)
  • hub20_database_user: (domyślnie hub20)
  • hub20_database_port: (domyślnie 5432)
  • hub20_environment_file_path: (domyślnie /etc/hub20)
  • hub20_email_backend: (domyślnie django.core.mail.backends.console.EmailBackend)
  • hub20_email_sender_address: (domyślnie noreply@hub20.example.com)
  • hub20_pip_package_name: (domyślnie hub20)
  • hub20_pip_package_state: (domyślnie latest)
  • hub20_redis_host: (domyślnie localhost)
  • hub20_redis_port: (domyślnie 6379)
  • hub20_redis_celery_database: (domyślnie 0)
  • hub20_redis_cache_database: (domyślnie 1)
  • hub20_run_debug_mode: (domyślnie false)
  • hub20_run_python_version: (domyślnie python3.7)
  • hub20_service_web3_event_listener_enabled: (domyślnie true)
  • hub20_service_raiden_sync_enabled: (domyślnie true)
  • hub20_service_web_enabled: (domyślnie true)
  • hub20_user_name: (domyślnie hub20)
  • hub20_user_home_path: (domyślnie /srv/hub20)
  • hub20_web3_provider_uri: (domyślnie http://localhost:8545)
  • hub20_tracked_tokens: lista adresów tokenów (w formie ciągów szesnastkowych), które będą używane/akceptowane jako waluta przez sklepy. (domyślnie: adresy dla ETH, WETH, DAI i RDN)
  • hub20_application_static_folder_path: (domyślnie /srv/hub20/static)
  • hub20_broker_url: (domyślnie redis://localhost:6379/0)
  • hub20_cache_url: (domyślnie redis://localhost:6379/1)
  • hub20_run_virtualenv_path: (domyślnie /srv/hub20/.venv)

Poniższe zmienne muszą być zdefiniowane i powinny być traktowane jako wartości wrażliwe:

  • hub20_database_password: hasło do połączenia z bazą danych.
  • hub20_service_secret_key: tajny klucz aplikacji internetowej hub20, używany do zarządzania sesjami, generowania tokenów CSRF itp.

Przykładowy Playbook

- hosts: hub20_servers
  roles:
     - role: geerlingguy.nginx   # Używanie nginx jako proxy
     - role: lullis.certbot-nginx  # Aby uzyskać certyfikaty SSL od Let's Encrypt i obsługiwać je przez nginx
     - role: mushroomlabs.hub20

Licencja

MIT

Informacje o autorze

Raphael Lullis (raphael@mushroomlabs.com)

O projekcie

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

Zainstaluj
ansible-galaxy install mushroomlabs.hub20
Licencja
mit
Pobrania
92
Właściciel