From c860e163d651ddc833208e74d05d832f279f9950 Mon Sep 17 00:00:00 2001 From: Michael Feng Date: Fri, 30 Jun 2023 16:31:15 -0700 Subject: [PATCH 1/2] set all password to a --- autostart_hummingbot_compose/README.md | 4 ++-- autostart_hummingbot_compose/docker-compose.yml | 2 +- .../hummingbot_files/scripts/simple_pmm_example.py | 2 +- hummingbot_gateway_broker_compose/README.md | 8 ++++---- .../docker-compose.yml | 4 ++-- hummingbot_gateway_compose/README.md | 13 +++++++++++++ hummingbot_gateway_compose/docker-compose.yml | 6 +++--- hummingbot_with_dashboard/README.md | 0 multiple_hummingbot_gateway_compose/README.md | 12 ++++++------ .../docker-compose.yml | 6 +++--- simple_hummingbot_compose/docker-compose.yml | 2 +- 11 files changed, 36 insertions(+), 23 deletions(-) create mode 100644 hummingbot_with_dashboard/README.md diff --git a/autostart_hummingbot_compose/README.md b/autostart_hummingbot_compose/README.md index 6a5160b..a26c928 100644 --- a/autostart_hummingbot_compose/README.md +++ b/autostart_hummingbot_compose/README.md @@ -86,7 +86,7 @@ Now, use an IDE like [VSCode](https://code.visualstudio.com/) to edit the `docke Edit the section that defines the `CONFIG_PASSWORD` and `CONFIG_FILE_NAME` environment variables: ```yaml # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a # - CONFIG_FILE_NAME=simple_pmm_example.py # - CONFIG_FILE_NAME=conf_pure_mm_1.yml ``` @@ -99,7 +99,7 @@ Uncomment out: The final `environment` section of the YAML file should look like this: ```yaml environment: - - CONFIG_PASSWORD=[password] + - CONFIG_PASSWORD=a - CONFIG_FILE_NAME=simple_pmm_example.py ``` diff --git a/autostart_hummingbot_compose/docker-compose.yml b/autostart_hummingbot_compose/docker-compose.yml index 9f9d43c..47ad9be 100644 --- a/autostart_hummingbot_compose/docker-compose.yml +++ b/autostart_hummingbot_compose/docker-compose.yml @@ -12,7 +12,7 @@ services: - "./hummingbot_files/scripts:/home/hummingbot/scripts" - "./hummingbot_files/certs:/home/hummingbot/certs" # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a # - CONFIG_FILE_NAME=simple_pmm_example.py # - CONFIG_FILE_NAME=conf_pure_mm_1.yml logging: diff --git a/autostart_hummingbot_compose/hummingbot_files/scripts/simple_pmm_example.py b/autostart_hummingbot_compose/hummingbot_files/scripts/simple_pmm_example.py index 5a7eb91..8329fe1 100644 --- a/autostart_hummingbot_compose/hummingbot_files/scripts/simple_pmm_example.py +++ b/autostart_hummingbot_compose/hummingbot_files/scripts/simple_pmm_example.py @@ -24,7 +24,7 @@ class SimplePMM(ScriptStrategyBase): order_amount = 0.1 create_timestamp = 0 trading_pair = "ETH-USDT" - exchange = "binance_paper_trade" + exchange = "kucoin_paper_trade" # Here you can use for example the LastTrade price to use in your strategy price_source = PriceType.MidPrice diff --git a/hummingbot_gateway_broker_compose/README.md b/hummingbot_gateway_broker_compose/README.md index db6ac2e..fef5010 100644 --- a/hummingbot_gateway_broker_compose/README.md +++ b/hummingbot_gateway_broker_compose/README.md @@ -106,10 +106,10 @@ Edit the section that defines the `CONFIG_PASSWORD` and `CONFIG_FILE_NAME` envir ```yaml hummingbot: # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a gateway: # environment: - # - GATEWAY_PASSPHRASE=[passphrase] + # - GATEWAY_PASSPHRASE=a ``` Uncomment out: @@ -121,10 +121,10 @@ The final `environment` section of the YAML file should look like this: ```yaml bot: environment: - - CONFIG_PASSWORD=[password] + - CONFIG_PASSWORD=a gateway: environment: - - GATEWAY_PASSPHRASE=[passphrase] + - GATEWAY_PASSPHRASE=a ``` Afterwards, save the file. diff --git a/hummingbot_gateway_broker_compose/docker-compose.yml b/hummingbot_gateway_broker_compose/docker-compose.yml index 95a6e15..8299413 100644 --- a/hummingbot_gateway_broker_compose/docker-compose.yml +++ b/hummingbot_gateway_broker_compose/docker-compose.yml @@ -12,7 +12,7 @@ services: - "./hummingbot_files/scripts:/scripts" - "./hummingbot_files/certs:/certs" # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a logging: driver: "json-file" options: @@ -33,7 +33,7 @@ services: - "./gateway_files/logs:/usr/src/app/logs" - "./hummingbot_files/certs:/usr/src/app/certs" # environment: - # - GATEWAY_PASSPHRASE=[passphrase] + # - GATEWAY_PASSPHRASE=a emqx: container_name: "emqx" diff --git a/hummingbot_gateway_compose/README.md b/hummingbot_gateway_compose/README.md index 51e80c5..e8143dd 100644 --- a/hummingbot_gateway_compose/README.md +++ b/hummingbot_gateway_compose/README.md @@ -52,21 +52,34 @@ After the images have been downloaded, you should see the following output: ### 2. Set permissions and other initialization operations +**Grant read-write permissions** + Run this command from your root folder to grant read/write permission to the `hummingbot_files` and `gateway_files` sub-folders: ``` sudo chmod -R a+rw ./hummingbot_files ./gateway_files ``` +You may run into read-only permission issues if you don't do this. + +**Add scripts** + Populate Hummingbot scripts folder with example scripts from the Hummingbot image: ``` docker cp hummingbot:/home/hummingbot/scripts-copy/. ./hummingbot_files/scripts/ ``` +This step is needed to being able to run the script examples. You can also copy individual [script examples](https://github.com/hummingbot/hummingbot/tree/master/scripts) into the `hummingbot_files/scripts` folder to make them available to your instance. + +**Add token lists** + Populate Gateway lists folder from token lists from the Gateway image: ``` docker cp gateway:/home/gateway/src/templates/lists/. ./gateway_files/conf/lists/ ``` +This step is needed to being able to interpret token symbols. Otherwise, you'll get "Token not supported" errors when you run Hummingbot. You can also copy individual [token lists](https://github.com/hummingbot/gateway/tree/main/src/templates/lists) into the `hummingbot_files/conf/lists` folder to make them available to your instance. + + ### 3. Launch Hummingbot and generate certificates Now, attach to the `hummingbot` instance: diff --git a/hummingbot_gateway_compose/docker-compose.yml b/hummingbot_gateway_compose/docker-compose.yml index 3080d11..638b141 100644 --- a/hummingbot_gateway_compose/docker-compose.yml +++ b/hummingbot_gateway_compose/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: hummingbot: container_name: hummingbot - image: hummingbot/hummingbot:development + image: hummingbot/hummingbot:latest volumes: - "./hummingbot_files/conf:/home/hummingbot/conf" - "./hummingbot_files/conf/connectors:/home/hummingbot/conf/connectors" @@ -12,7 +12,7 @@ services: - "./hummingbot_files/scripts:/home/hummingbot/scripts" - "./hummingbot_files/certs:/home/hummingbot/certs" # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a logging: driver: "json-file" options: @@ -34,4 +34,4 @@ services: - "./gateway_files/db:/home/gateway/db" - "./hummingbot_files/certs:/home/gateway/certs" # environment: - # - GATEWAY_PASSPHRASE=[passphrase] + # - GATEWAY_PASSPHRASE=a diff --git a/hummingbot_with_dashboard/README.md b/hummingbot_with_dashboard/README.md new file mode 100644 index 0000000..e69de29 diff --git a/multiple_hummingbot_gateway_compose/README.md b/multiple_hummingbot_gateway_compose/README.md index ad179be..a7b71e6 100644 --- a/multiple_hummingbot_gateway_compose/README.md +++ b/multiple_hummingbot_gateway_compose/README.md @@ -107,13 +107,13 @@ We'll edit the section that defines the following environment variables: ```yaml hummingbot-1: # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a hummingbot-2: # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a gateway: # environment: - # - GATEWAY_PASSPHRASE=[passphrase] + # - GATEWAY_PASSPHRASE=a ``` Uncomment out: @@ -125,13 +125,13 @@ The final `environment` section of the YAML file should look like this: ```yaml hummingbot-1: environment: - - CONFIG_PASSWORD=[password] + - CONFIG_PASSWORD=a hummingbot-2: environment: - - CONFIG_PASSWORD=[password] + - CONFIG_PASSWORD=a gateway: environment: - - GATEWAY_PASSPHRASE=[passphrase] + - GATEWAY_PASSPHRASE=a ``` Afterwards, save the file. diff --git a/multiple_hummingbot_gateway_compose/docker-compose.yml b/multiple_hummingbot_gateway_compose/docker-compose.yml index 4df06ba..fb0a786 100644 --- a/multiple_hummingbot_gateway_compose/docker-compose.yml +++ b/multiple_hummingbot_gateway_compose/docker-compose.yml @@ -12,7 +12,7 @@ services: - "./hummingbot_files/scripts:/home/hummingbot/scripts" - "./hummingbot_files/certs:/home/hummingbot/certs" # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a logging: driver: "json-file" options: @@ -34,7 +34,7 @@ services: - "./hummingbot_files/scripts:/home/hummingbot/scripts" - "./hummingbot_files/certs:/home/hummingbot/certs" # environment: - # - CONFIG_PASSWORD=[password] + # - CONFIG_PASSWORD=a logging: driver: "json-file" options: @@ -55,4 +55,4 @@ services: - "./gateway_files/logs:/usr/src/app/logs" - "./hummingbot_files/certs:/usr/src/app/certs" # environment: - # - GATEWAY_PASSPHRASE=[passphrase] + # - GATEWAY_PASSPHRASE=a diff --git a/simple_hummingbot_compose/docker-compose.yml b/simple_hummingbot_compose/docker-compose.yml index 461f23a..fe90581 100644 --- a/simple_hummingbot_compose/docker-compose.yml +++ b/simple_hummingbot_compose/docker-compose.yml @@ -2,7 +2,7 @@ version: "3.9" services: hummingbot: container_name: hummingbot - image: hummingbot/hummingbot:development + image: hummingbot/hummingbot:latest volumes: - "./hummingbot_files/conf:/home/hummingbot/conf" - "./hummingbot_files/conf/connectors:/home/hummingbot/conf/connectors" From ae38b5fd7f080657be44f052e729c90bcca7abe2 Mon Sep 17 00:00:00 2001 From: Michael Feng Date: Fri, 30 Jun 2023 16:58:43 -0700 Subject: [PATCH 2/2] (fix) update for dashboard --- README.md | 12 ++-- hummingbot_gateway_compose/README.md | 37 ++++++------ hummingbot_with_dashboard/README.md | 87 ++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 24bcdcb..b290572 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ See [Docker](./DOCKER.md) for more information about how to install and use Dock ## How do I use this repo? Each folder showcases a different deployment type using Docker Compose, such as: -* A single Hummingbot instance +* A single Hummingbot instance along with a dashboard that analyzes it * A single Hummingbot instance that auto-starts a strategy or script * Linked Hummingbot and Gateway instances * Multiple instances of Hummingbot @@ -27,15 +27,15 @@ docker compose up -d ## Deployment types using Docker Compose -### [Simple Hummingbot Compose](./simple_hummingbot_compose) - -This installs a single [Hummingbot](https://github.com/hummingbot/hummingbot) instance as a Docker container. - ### [Hummingbot with Dashboard](./hummingbot_with_dashboard) +⭐️⭐️⭐️ We recommend that new Hummingbot users follow this route ⭐️⭐️⭐️ + This installs a single [Hummingbot](https://github.com/hummingbot/hummingbot) instance with a companion [Hummingbot Dashboard](https://github.com/hummingbot/dashboard) running. -Documentation coming soon. +### [Simple Hummingbot Compose](./simple_hummingbot_compose) + +This installs a single [Hummingbot](https://github.com/hummingbot/hummingbot) instance as a Docker container. ### [Autostart Hummingbot Compose](./autostart_hummingbot_compose) diff --git a/hummingbot_gateway_compose/README.md b/hummingbot_gateway_compose/README.md index e8143dd..1932d00 100644 --- a/hummingbot_gateway_compose/README.md +++ b/hummingbot_gateway_compose/README.md @@ -50,9 +50,7 @@ After the images have been downloaded, you should see the following output: ⠿ Container gateway Started ``` -### 2. Set permissions and other initialization operations - -**Grant read-write permissions** +### 2. Set permissions Run this command from your root folder to grant read/write permission to the `hummingbot_files` and `gateway_files` sub-folders: ``` @@ -61,16 +59,7 @@ sudo chmod -R a+rw ./hummingbot_files ./gateway_files You may run into read-only permission issues if you don't do this. -**Add scripts** - -Populate Hummingbot scripts folder with example scripts from the Hummingbot image: -``` -docker cp hummingbot:/home/hummingbot/scripts-copy/. ./hummingbot_files/scripts/ -``` - -This step is needed to being able to run the script examples. You can also copy individual [script examples](https://github.com/hummingbot/hummingbot/tree/master/scripts) into the `hummingbot_files/scripts` folder to make them available to your instance. - -**Add token lists** +### 3. Add token lists Populate Gateway lists folder from token lists from the Gateway image: ``` @@ -79,8 +68,17 @@ docker cp gateway:/home/gateway/src/templates/lists/. ./gateway_files/conf/lists This step is needed to being able to interpret token symbols. Otherwise, you'll get "Token not supported" errors when you run Hummingbot. You can also copy individual [token lists](https://github.com/hummingbot/gateway/tree/main/src/templates/lists) into the `hummingbot_files/conf/lists` folder to make them available to your instance. +### 4. Add scripts -### 3. Launch Hummingbot and generate certificates +Populate Hummingbot scripts folder with example scripts from the Hummingbot image: +``` +docker cp hummingbot:/home/hummingbot/scripts-copy/. ./hummingbot_files/scripts/ +``` + +This step is needed to being able to run the script examples. You can also copy individual [script examples](https://github.com/hummingbot/hummingbot/tree/master/scripts) into the `hummingbot_files/scripts` folder to make them available to your instance. + + +### 5. Launch Hummingbot and generate certificates Now, attach to the `hummingbot` instance: ``` @@ -105,7 +103,7 @@ Hummingbot will use the passphrase to generate the certificates and save them in Afterwards, run `exit` to exit Hummingbot. -### 4. Remove network +### 6. Remove network Once you're back in Bash/Terminal, run the following command to remove the Compose project: ``` @@ -120,7 +118,7 @@ You should see the following output: ⠿ Network hummingbot_gateway_compose_default Removed ``` -### 5. Modify YAML file +### 7. Modify YAML file Now, use an IDE like [VSCode](https://code.visualstudio.com/) to edit the `docker-compose.yml` file. @@ -151,7 +149,7 @@ The final `environment` section of the YAML file should look like this: Afterwards, save the file. -### 6. Recreate network +### 8. Recreate network Now, recreate the Compose project: ``` @@ -175,3 +173,8 @@ To get started with Hummingbot, check out the following docs: * [Basic Features](https://docs.hummingbot.org/operation/) * [Quickstart Guide](https://docs.hummingbot.org/quickstart/) * [Hummingbot FAQ](https://docs.hummingbot.org/faq/) + +For Gateway, check out the following docs: + +* [Testing with Postman](https://docs.hummingbot.org/gateway/testing/) +* [Using Gateway with Hummingbot](https://docs.hummingbot.org/gateway/setup/) diff --git a/hummingbot_with_dashboard/README.md b/hummingbot_with_dashboard/README.md index e69de29..d935672 100644 --- a/hummingbot_with_dashboard/README.md +++ b/hummingbot_with_dashboard/README.md @@ -0,0 +1,87 @@ +# Deploy Hummingbot Instance + +This installs a single [Hummingbot](https://github.com/hummingbot/hummingbot) bot instance alongside a [Hummingbot Dashboard](https://github.com/hummingbot/dashboard) that can be used to control and analyze it. + +## Prerequisites + +This configuration requires [Docker Compose](https://docs.docker.com/compose/), a tool for defining and running multi-container Docker applications. 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. + +See [Docker](../DOCKER.md) for more information about how to install and use Docker Compose, as well as helpful commands. + +## Getting Started + +Verify that Docker Compose is installed correctly by checking the version: + +```bash +docker compose version +``` + +The output should be: `Docker Compose version v2.17.2` or similar. Ensure that you are using Docker Compose V2, as V1 is deprecated. + +### 1. Launch network + +Clone this repo to your machine and go to the folder: +``` +git clone https://github.com/hummingbot/deploy-examples.git +cd deploy-examples/hummingbot_with_dashboard +``` + +Alternatively, copy the `docker-compose.yml` file to a directory on your machine where you want to store your Hummingbot files. + +This is the "root folder" where your encrypted keys, scripts, trades, configs, logs, and other files related to your bots will be saved. + +From the root folder, run the following command to pull the image and start the instance: +``` +docker compose up -d +``` + +After the images have been downloaded, you should see the following output: +``` +[+] Running 3/3 + ⠿ Network hummingbot_with_dashboard_default Created + ⠿ Container hummingbot Started + ⠿ Container dashboard Started + ``` + +### 2. Set permissions + +Run this command from your root folder to grant read/write permission to the `hummingbot_files` sub-folder: +``` +sudo chmod -R a+rw ./hummingbot_files +``` + +You may run into read-only permission issues if you don't do this. + +### 3. Populate scripts folder with example scripts + +Run this command to copy the sample scripts into the `scripts` folder. Any new scripts you add here will also be available to your `hummingbot` instance. +``` +docker cp hummingbot:/home/hummingbot/scripts-copy/. ./hummingbot_files/scripts/ +``` + +This step is needed to being able to run the script examples. You can also copy individual [script examples](https://github.com/hummingbot/hummingbot/tree/master/scripts) into the `hummingbot_files/scripts` folder to make them available to your instance. + +### 4. Launch Hummingbot + +Attach to the `hummingbot` instance: +``` +docker attach hummingbot +``` + +You should see the Hummingbot welcome screen: + +![welcome screen](../welcome.png) + +To get started with Hummingbot, check out the following docs: + +* [Basic Features](https://docs.hummingbot.org/operation/) +* [Quickstart Guide](https://docs.hummingbot.org/quickstart/) +* [Hummingbot FAQ](https://docs.hummingbot.org/faq/) + +### 5. Launch Dashboard + +Go to http://localhost:8501 in your browser to see the Dashboard. + +Dashboard is a new experimental visualization layer for Hummingbot instances. For more information, see: +* [Deploying Hummingbot + Dashboard on AWS](https://www.youtube.com/watch?v=xp_A8tZKKiA) +* [Kicking Off the Hummingbot Dashboard Community Project](https://blog.hummingbot.org/hummingbot-dashboard-community-project/)