mushroomlabs.hub20
Hub20
Este rol proporciona todo lo necesario para configurar una instancia de Hub20 con todos sus trabajos en segundo plano.
Requisitos
Este rol se encarga únicamente de la instalación y configuración de los siguientes servicios de hub20:
- API: la API REST (una aplicación de Django, servida por uvicorn)
- escuchar eventos web3: un trabajo en segundo plano que escuchará eventos relevantes de web3 (es decir, transferencias de ETH/ERC20 a cuentas mantenidas por nuestros servicios, canales raiden que se abren/cerran, lo que el usuario defina)
- sincronización de raiden: un trabajo en segundo plano para recopilar y procesar todos los eventos de tu instancia de Raiden
- rastrear pagos pendientes: un trabajo en segundo plano que verifica transacciones pendientes dirigidas a cualquiera de las cuentas de las billeteras internas de Hub20
El rol NO proporciona la configuración de los servicios de los que depende hub20, a saber, PostgreSQL y Redis. Tampoco proporciona ningún servidor web que deba estar frente a uvicorn para servir, por ejemplo, medios estáticos. Este servicio está destinado a ejecutarse detrás de algún servidor web o sistema de balanceo de carga (consulta los consejos de implementación de Uvicorn para entender tus mejores opciones).
Este rol también asume que estás utilizando una distribución de Linux basada en Debian que usa systemd. Además, debido a la dependencia de hub20 en Python >= 3.7, se debe utilizar una distribución más reciente o puede que debas agregar algunas tareas a tu libro de jugadas para instalar una versión reciente de Python en la plataforma objetivo.
Variables del Rol
hub20_application_host
: (predeterminado 127.0.0.1)hub20_application_port
: (predeterminado 5000)hub20_blockchain_network_id
: (predeterminado 1)hub20_blockchain_starting_block
: (predeterminado 9500000)hub20_database_host
: (predeterminado localhost)hub20_database_name
: (predeterminado hub20)hub20_database_user
: (predeterminado hub20)hub20_database_port
: (predeterminado 5432)hub20_environment_file_path
: (predeterminado /etc/hub20)hub20_email_backend
: (predeterminado django.core.mail.backends.console.EmailBackend)hub20_email_sender_address
: (predeterminado noreply@hub20.example.com)hub20_pip_package_name
: (predeterminado hub20)hub20_pip_package_state
: (predeterminado latest)hub20_redis_host
: (predeterminado localhost)hub20_redis_port
: (predeterminado 6379)hub20_redis_celery_database
: (predeterminado 0)hub20_redis_cache_database
: (predeterminado 1)hub20_run_debug_mode
: (predeterminado false)hub20_run_python_version
: (predeterminado python3.7)hub20_service_web3_event_listener_enabled
: (predeterminado true)hub20_service_raiden_sync_enabled
: (predeterminado true)hub20_service_web_enabled
: (predeterminado true)hub20_user_name
: (predeterminado hub20)hub20_user_home_path
: (predeterminado /srv/hub20)hub20_web3_provider_uri
: (predeterminado http://localhost:8545)hub20_tracked_tokens
: lista de direcciones de tokens (como cadenas hexadecimales) que serán utilizados/aceptados como moneda por las tiendas. (predeterminado: direcciones para ETH, WETH, DAI y RDN)hub20_application_static_folder_path
: (predeterminado /srv/hub20/static_)hub20_broker_url
: (predeterminado redis://localhost:6379/0)hub20_cache_url
: (predeterminado redis://localhost:6379/1)hub20_run_virtualenv_path
: (predeterminado /srv/hub20/.venv)
Las siguientes variables deben definirse y tratarse como valores sensibles:
hub20_database_password
: la contraseña para conectarse a la base de datos.hub20_service_secret_key
: la clave secreta de las aplicaciones web de hub20 que se utiliza para la gestión de sesiones, generación de tokens CSRF, etc.
Ejemplo de Libro de Jugadas
- hosts: hub20_servers
roles:
- role: geerlingguy.nginx # Usando nginx como tu proxy frontal
- role: lullis.certbot-nginx # Para obtener certificados SSL de Let's Encrypt y que nginx los sirva
- role: mushroomlabs.hub20
Licencia
MIT
Información del Autor
Raphael Lullis (raphael@mushroomlabs.com)
Installs and sets up all hub20 services in any Debian-based linux distro
ansible-galaxy install mushroomlabs.hub20