From 9ca1589be2ab7d35335cc4b053c1218dc0a00376 Mon Sep 17 00:00:00 2001 From: Michael Feng Date: Thu, 6 Apr 2023 13:43:44 -0700 Subject: [PATCH] intro readme --- README.md | 88 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 51 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 9a3c2bd..5ea46ab 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,60 @@ -# deploy-examples +# Deploying Hummingbot with Docker ## Intro -This repository provides various examples of how to deploy Hummingbot using Docker. Hummingbot is a powerful, open-source trading bot for cryptocurrency markets, and Docker is a popular platform for building, shipping, and running distributed applications. +This repository provides various examples of how to deploy Hummingbot using Docker Compose. [Hummingbot](https://github.com/hummingbot/hummingbot) is an open source framework that helps you build automated trading strategies, or bots that run on cryptocurrency exchanges, and [Docker Compose](https://docs.docker.com/compose/) is a tool for defining and running multi-container Docker applications -## Why use Docker? +It also contains standalone bash scripts that assist you to setting up Hummingbot with Docker, but we recommend using Docker Compose instead. + +## Why use Docker Compose? Using Docker for Hummingbot deployment offers several benefits, such as simplifying the installation process, enabling easy versioning and scaling, and ensuring a consistent and isolated environment for running the bot. This repository aims to help users get started with deploying Hummingbot using Docker by providing different examples that demonstrate how to set up and customize the bot according to their needs. +The recommended way to get Docker Compose is to install [Docker Desktop](https://www.docker.com/products/docker-desktop/), which includes Docker Compose along with Docker Engine and Docker CLI which are Compose prerequisites. + +Docker Desktop is available on: + +* [Linux](https://docs.docker.com/desktop/install/linux-install/) +* [Mac](https://docs.docker.com/desktop/install/mac-install/) +* [Windows](https://docs.docker.com/desktop/install/windows-install/) + ## Why does this repo contain? -The repository includes multiple Docker Compose files, each showcasing a different deployment scenario, such as running Hummingbot with different exchange connectors, customizing the configuration, or integrating with other services. Additionally, the repository provides a detailed README file that guides users through the steps required to deploy Hummingbot using Docker, including how to build and run the containers, how to configure the bot, and how to monitor its performance. +Each folder showcases a different deployment type, such as running Hummingbot standalone, Hummingbot + Gateway, multiple instances, etc. The important files in each folder are: -## Who is it for? +* `docker-compose.yml`: A sample configuration file for that deployment type +* `README.md`: A detailed README file that guides users through the steps required to deploy Hummingbot using Docker, including how to build and run the containers, how to configure the bot, and how to monitor its performance. -This repository is intended for developers and traders who want to deploy Hummingbot using Docker and explore its features and capabilities. Contributions are welcome, and users are encouraged to share their own examples and use cases for deploying Hummingbot with Docker. +## Deployment Types -## Resources +### [Simple Hummingbot Compose](./simple_hummingbot_compose) -Each folder has a different method of deploying the Hummingbot client, Hummingbot Gateway DEX connector module, and other components in the Hummingbot ecosystem. +This installs a single [Hummingbot](https://github.com/hummingbot/hummingbot) instance as a Docker container. -### Bash scripts +### [Autostart Hummingbot Compose](./autostart_hummingbot_compose) -Use this repository to create standalone containers of Hummingbot and Gateway. For example, you can run the client from the source and use the gateway with it by utilizing the `gateway-create.sh` file. +This installs a single [Hummingbot](https://github.com/hummingbot/hummingbot) instance as a Docker container and automatically starts running a pre-configured script or strategy. -The following operations are possible using the Bash scripts: +### [Hummingbot Gateway Compose](./hummingbot_gateway_compose) + +This installs a [Hummingbot](https://github.com/hummingbot/hummingbot) instance linked to a [Hummingbot Gateway](https://github.com/hummingbot/gateway) instance. + +### [Multiple Hummingbot Gateway Compose](./multiple_hummingbot_gateway_compose) + +This installs two [Hummingbot](https://github.com/hummingbot/hummingbot) instances, linked to a single [Hummingbot Gateway](https://github.com/hummingbot/gateway) instance. + +### [Hummingbot Gateway Broker Compose](./hummingbot_gateway_broker_compose) + +This installs a [Hummingbot](https://github.com/hummingbot/hummingbot) instance linked to a [Hummingbot Gateway](https://github.com/hummingbot/gateway) instance, along with an EMQX [Broker](https://github.com/hummingbot/brokers). + +!!! note "Experimental deployment" + This deployment is still undergoing testing, so we recommend using the standalone deployments for message brokers from the [hummingbot/brokers](https://github.com/hummingbot/brokers) repository. + +## [Bash scripts (older)](./bash_scripts) + +These standalone bash scripts can also assist you to setting up Hummingbot and Gateway with Docker, but we recommend using Docker Compose instead. + +The following operations are possible using the bash scripts: - Create a Hummingbot container - Update the Hummingbot image version @@ -32,32 +62,16 @@ The following operations are possible using the Bash scripts: - Create a Gateway container - Copy the certificates to the corresponding gateway path -### Simple Hummingbot Compose +## Other Hummingbot Repos -This example creates a single Hummingbot container using docker-compose. +* [Hummingbot Docs](https://github.com/hummingbot/hummingbot-site): Official documentation for Hummingbot - we welcome contributions here too! +* [Awesome Hummingbot](https://github.com/hummingbot/awesome-hummingbot): All the Hummingbot links +* [Hummingbot StreamLit Apps](https://github.com/hummingbot/streamlit-apps): Hummingbot-related StreamLit data apps and dashboards +* [Community Tools](https://github.com/hummingbot/community-tools): Community contributed resources related to Hummingbot +* [Brokers](https://github.com/hummingbot/brokers): Different brokers that can be used to communicate with multiple instances of Hummingbot +* [Deploy Examples](https://github.com/hummingbot/deploy-examples): Deploy Hummingbot in various configurations with Docker +* [Remote Client](https://github.com/hummingbot/hbot-remote-client-py): A remote client for Hummingbot in Python -### Autostart Hummingbot Compose +## Contributions -This example is a variation of the Simple Hummingbot Compose, with the ability to autostart a script or a strategy. The `.password_verification` file contains the encrypted password, which is `a`. - -Follow the Troubleshooting guide provided in the `README.md` file of the folder to understand how to change it and use your password. - -This folder also includes a script called `format_status.py`, and a `conf_pure_mm_1.yml` file inside the conf/strategies directory. These files are necessary to autostart the bot since the environment variables `CONFIG_PASSWORD` and `CONFIG_FILE_NAME` are essential. - -### Hummingbot Gateway Compose - -This example shows how to run Hummingbot with Gateway with just one command. The only essential thing to consider is managing the certificates. - -### Multiple Hummingbot Gateway Compose - -This example demonstrates how to run multiple Hummingbot instances with Gateway with just one command. The only essential thing to consider is managing the certificates. - -## IMPORTANT - -By default, the docker-compose files use the `hummingbot/hummingbot:latest` and `hummingbot/gateway:latest` images to create the containers. - -If you are using a machine with ARM, we strongly recommend build a local HUmmingbot image instead by cloning the official repository and running the command: - -``` -docker build -f Dockerfile.arm -t hummingbot/hummingbot:arm . -``` +Hummingbot belongs to its community, so we welcome contributions! Users are encouraged to submit pull requests with their own examples and use cases for deploying Hummingbot with Docker.