hub20
Hub20
Эта роль предоставляет все необходимое для установки экземпляра Hub20 со всеми его фоновыми задачами.
Требования
Эта роль отвечает только за установку и настройку следующих сервисов hub20:
- API: REST API (django-приложение, обслуживаемое uvicorn)
- прослушивание событий web3: фоновая задача, которая будет отслеживать релевантные события web3 (например, переводы ETH/ERC20 на аккаунты, которые находятся под контролем наших сервисов, открытие/закрытие каналов Raiden и любые другие события, определённые пользователем)
- синхронизация Raiden: фоновая задача для сбора и обработки всех событий из вашего экземпляра Raiden
- отслеживание ожидающих платежей: фоновая задача, которая проверяет ожидающие транзакции, нацеленные на любой из аккаунтов внутренних кошельков Hub20
Эта роль НЕ предоставляет настройку сервисов, от которых зависит hub20, а именно PostgreSQL и Redis. Также она не предоставляет веб-сервер, который должен находиться перед uvicorn для обслуживания, например, статических медиафайлов. Эта служба должна работать за веб-сервером или системой балансировки нагрузки (посмотрите советы по развертыванию Uvicorn для понимания ваших лучших вариантов).
Эта роль также предполагает, что вы используете дистрибутив Linux на базе Debian, который использует systemd. Кроме того, из-за зависимости hub20 от Python версии >= 3.7 необходимо использовать более новый дистрибутив или вам может потребоваться добавить некоторые задачи в ваш плейбук для установки актуальной версии Python на целевой платформе.
Переменные роли
hub20_application_host
: (по умолчанию 127.0.0.1)hub20_application_port
: (по умолчанию 5000)hub20_blockchain_network_id
: (по умолчанию 1)hub20_blockchain_starting_block
: (по умолчанию 9500000)hub20_database_host
: (по умолчанию localhost)hub20_database_name
: (по умолчанию hub20)hub20_database_user
: (по умолчанию hub20)hub20_database_port
: (по умолчанию 5432)hub20_environment_file_path
: (по умолчанию /etc/hub20)hub20_email_backend
: (по умолчанию django.core.mail.backends.console.EmailBackend)hub20_email_sender_address
: (по умолчанию noreply@hub20.example.com)hub20_pip_package_name
: (по умолчанию hub20)hub20_pip_package_state
: (по умолчанию latest)hub20_redis_host
: (по умолчанию localhost)hub20_redis_port
: (по умолчанию 6379)hub20_redis_celery_database
: (по умолчанию 0)hub20_redis_cache_database
: (по умолчанию 1)hub20_run_debug_mode
: (по умолчанию false)hub20_run_python_version
: (по умолчанию python3.7)hub20_service_web3_event_listener_enabled
: (по умолчанию true)hub20_service_raiden_sync_enabled
: (по умолчанию true)hub20_service_web_enabled
: (по умолчанию true)hub20_user_name
: (по умолчанию hub20)hub20_user_home_path
: (по умолчанию /srv/hub20)hub20_web3_provider_uri
: (по умолчанию http://localhost:8545)hub20_tracked_tokens
: список адресов токенов (в шестнадцатеричном формате), которые будут использоваться/приниматься как валюта магазинами. (по умолчанию: адреса для ETH, WETH, DAI и RDN)hub20_application_static_folder_path
: (по умолчанию /srv/hub20/static_)hub20_broker_url
: (по умолчанию redis://localhost:6379/0)hub20_cache_url
: (по умолчанию redis://localhost:6379/1)hub20_run_virtualenv_path
: (по умолчанию /srv/hub20/.venv")
Следующие переменные должны быть определены и должны рассматриваться как конфиденциальные значения:
hub20_database_password
: пароль для подключения к базе данных.hub20_service_secret_key
: секретный ключ веб-приложения hub20, используемый для управления сессиями, генерации токенов CSRF и т.д.
Пример плейбука
- hosts: hub20_servers
roles:
- role: geerlingguy.nginx # Используем nginx в качестве вашего фронт-прокси
- role: lullis.certbot-nginx # Для получения SSL-сертификатов от Let's Encrypt и их обслуживания через nginx
- role: mushroomlabs.hub20
Лицензия
MIT
Информация об авторе
Рафаэль Луллис (raphael@mushroomlabs.com)
Installs and sets up all hub20 services in any Debian-based linux distro
ansible-galaxy install mushroomlabs/ansible-role-hub20