mushroomlabs.hub20
Hub20
Ce rôle fournit tout ce qui est nécessaire pour mettre en place une instance de Hub20 avec tous ses travaux en arrière-plan.
Exigences
Ce rôle est uniquement responsable de l'installation et de la configuration des services suivants de hub20 :
- API : l'API REST (une application Django, servie par Uvicorn)
- écoute des événements web3 : un travail en arrière-plan qui écoutera les événements web3 pertinents (c'est-à-dire les transferts ETH/ERC20 vers des comptes détenus par nos services, l'ouverture/fermeture de canaux Raiden, tout autre événement défini par l'utilisateur)
- synchronisation Raiden : un travail en arrière-plan pour collecter et traiter tous les événements de votre instance Raiden
- suivi des paiements en attente : un travail en arrière-plan qui vérifie les transactions en attente visant l'un des comptes des portefeuilles internes de Hub20
Le rôle NE FOURNIT PAS la configuration des services dont hub20 dépend, à savoir PostgreSQL et Redis. Il ne fournit également aucun serveur web qui devrait être en façade d'Uvicorn pour servir, par exemple, des fichiers médias statiques. Ce service est conçu pour fonctionner derrière un serveur web ou un système de répartition de charge (consultez les conseils de déploiement d'Uvicorn pour comprendre vos meilleures options).
Ce rôle suppose également que vous ciblez une distribution Linux basée sur Debian qui utilise systemd. De plus, en raison de la dépendance de hub20 sur Python >= 3.7, une distribution plus récente doit être utilisée, ou vous devrez peut-être ajouter certaines tâches à votre playbook pour installer une version récente de Python sur la plateforme cible.
Variables du Rôle
hub20_application_host
: (par défaut 127.0.0.1)hub20_application_port
: (par défaut 5000)hub20_blockchain_network_id
: (par défaut 1)hub20_blockchain_starting_block
: (par défaut 9500000)hub20_database_host
: (par défaut localhost)hub20_database_name
: (par défaut hub20)hub20_database_user
: (par défaut hub20)hub20_database_port
: (par défaut 5432)hub20_environment_file_path
: (par défaut /etc/hub20)hub20_email_backend
: (par défaut django.core.mail.backends.console.EmailBackend)hub20_email_sender_address
: (par défaut noreply@hub20.example.com)hub20_pip_package_name
: (par défaut hub20)hub20_pip_package_state
: (par défaut latest)hub20_redis_host
: (par défaut localhost)hub20_redis_port
: (par défaut 6379)hub20_redis_celery_database
: (par défaut 0)hub20_redis_cache_database
: (par défaut 1)hub20_run_debug_mode
: (par défaut false)hub20_run_python_version
: (par défaut python3.7)hub20_service_web3_event_listener_enabled
: (par défaut true)hub20_service_raiden_sync_enabled
: (par défaut true)hub20_service_web_enabled
: (par défaut true)hub20_user_name
: (par défaut hub20)hub20_user_home_path
: (par défaut /srv/hub20)hub20_web3_provider_uri
: (par défaut http://localhost:8545)hub20_tracked_tokens
: liste des adresses de tokens (en chaînes hexadécimales) qui seront utilisées/acceptees comme devise par les magasins. (par défaut : adresses pour ETH, WETH, DAI et RDN)hub20_application_static_folder_path
: (par défaut /srv/hub20/static_)hub20_broker_url
: (par défaut redis://localhost:6379/0)hub20_cache_url
: (par défaut redis://localhost:6379/1)hub20_run_virtualenv_path
: (par défaut /srv/hub20/.venv")
Les variables suivantes doivent être définies et doivent être traitées comme des valeurs sensibles :
hub20_database_password
: le mot de passe pour se connecter à la base de données.hub20_service_secret_key
: la clé secrète des applications web hub20 utilisée pour la gestion des sessions, la génération de tokens CSRF, etc.
Exemple de Playbook
- hosts: hub20_servers
roles:
- role: geerlingguy.nginx # Utiliser nginx comme votre proxy frontal
- role: lullis.certbot-nginx # Pour obtenir des certificats SSL de Let's Encrypt et les servir avec nginx
- role: mushroomlabs.hub20
Licence
MIT
Informations Auteur
Raphael Lullis (raphael@mushroomlabs.com)
Installs and sets up all hub20 services in any Debian-based linux distro
ansible-galaxy install mushroomlabs.hub20