Running Hummingbot 24/7 in the cloud
Why do we need to set up cloud servers?
When running Hummingbot locally on your computer, closing the application or shutting down your machine also stops the bot from trading. Also, running locally relies on your computer's resources and internet connection.
It is important to get a proper set up for Hummingbot for long term success. By setting up Hummingbot on a cloud server, you’ll be able to run Hummingbot 24/7 and not miss out on any rewards. Some advanced users use cloud servers running on Linux to keep Hummingbot in the background.
What are cloud servers?
Picking the right cloud server
Comparing different cloud servers
For users who are looking to run Hummingbot for prolonged periods of time, especially multiple bots simultaneously, local installation can be limiting. Currently, each bot requires its own docker image, which can use up local computing power, memory, and storage. Further, your bots can only be running for as long as your computer is in use, limiting your liquidity mining rewards if your computer has to be offline / shut down from time to time. With the cloud, you can solve all of these issues.
Review our blog post and documentation. It is also important to note that Hummingbot is not limited to running in the cloud providers mentioned. AWS, GCP and Azure are the ones we tested so far and we have seen users running Hummingbot on others.
This blog post examines the pros and cons of four major cloud hosting companies to host Hummingbot:
- Google Cloud Platform
- Amazone Web Services
- Microsoft Azure
- Digital Ocean
If you qualify to be a Hummingbot Eagle Club member , you will be able to get US$5K free AWS credits as a start.
Getting the right set up
Basic Linux commands
If you are not familiar with Linux, it is important to get familiarized with the terminal commands starting from navigating the directories and making changes to a file.
You can practice in your Linux cloud server or in this web-based terminal.
Your SSH keys are required to gain access to the server. Follow the steps in the links below based on your operating system.
Installing via Docker
The Hummingbot DockerHub publishes Docker images for the
master (latest) and
development builds of Hummingbot, as well as past versions. Some advanced users prefer using Docker instead of installing from source. They find it easier and more convenient because of the following :
- You don't have to install locally all the dependencies e.g. anaconda/miniconda
- You don't have to compile it locally
- Easier to update compared to when updating from source
- Docker images are already pre-installed (environment, dependencies) and pre-compiled
We recommend this path for users who run Hummingbot on Linux, in the cloud, and/or multiple bots.
Hummingbot Documentation: Install via Docker:
Basic Docker commands
Here are some important Docker commands you will be using more as support and if not, you need to understand how they work and what each commands does. Look them up and see what each command does, better if you can test to see it in actual.
docker inspect ... docker ps -a docker stop ... docker attach ... docker run ... docker rm ... docker rm $(docker ps -a -q) docker rmi ... docker pull ...
If you want to learn more about it you can visit their documentation.
Installing from source
This installation type is more for developers, both internal and external, who wants to contribute to the code base. It's just cloning from GitHub repo https://github.com/CoinAlpha/hummingbot → install → compile → run Hummingbot. You can also use the helper scripts and follow the instructions in the documentation.
Switching to development branch
- Switching from the latest version (master) to development is easy. Just run the
create.shscript and enter "development" during the prompt. This will pull/download the development image (if not found locally) and run the container using that image.
- Switching branches requires knowledge of some git commands.
git fetch origin git checkout development ./uninstall && ./cleanimpo ./install && conda activate hummingbot && ./compile bin/hummingbot.py
Hummingbot running in development branch has a prefix dev- in the version number.
Managing multiple bots
Useful app: Termius
Some users like to use Terminus to manage multiple bots:
Tips: setting balance limit
As mentioned in the beginner level, if you want to run multiple bots and they are all using up the same asset (eg. USDT), you can use the balance limit feature.
Sets the amount limit on how many assets Hummingbot can use in an exchange or wallet. This can be useful when running multiple bots on different trading pairs with same tokens e.g. running a BTC-USDT pair and another bot on ETH-USDT using the same account.