Vultr is a popular choice for freqtrade because it has data centres in Tokyo and Singapore, close to where many large crypto exchanges run their trading engines, and it bills by the hour, so you can test without a long commitment. This guide takes you from a new Vultr account to a running freqtrade bot in dry-run mode.
Time needed: about 30 minutes. You need: a Vultr account, and a computer with a terminal (macOS, Linux, or Windows with PowerShell).
Step 1: Create an SSH key on your computer
SSH keys are safer than passwords. If you already have one, skip to Step 2.
ssh-keygen -t ed25519 -C "freqtrade-vultr"
cat ~/.ssh/id_ed25519.pub
Copy the line that starts with ssh-ed25519. That is your public key; the private key never leaves your computer.
Step 2: Add the key to Vultr
In the Vultr dashboard, open Account → SSH Keys, click Add SSH Key, give it a name and paste the public key.
Step 3: Deploy the server
Click Deploy and choose a new cloud server. Select:
| Setting | Choose |
|---|---|
| Type | Cloud Compute, shared CPU |
| Location | Tokyo or Singapore for Binance, Bybit or OKX; a European location for European exchanges |
| Image | Ubuntu 24.04 LTS x64 |
| Plan | 2 vCPU with 2–4 GB RAM for one bot |
| SSH key | The key you added in Step 2 |
| Hostname | freqtrade-1 |
Optional extras such as automatic backups cost more; a bot server can be rebuilt quickly, so most people skip them. Click Deploy Now and wait a minute until the status shows Running. Copy the server's IP address.
Before choosing a location, check that your exchange allows API access from that country. Our VPS guide explains why this matters.
Step 4: Log in and update
ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y
Step 5: Create a user and lock down SSH
Running everything as root is risky. Create a normal user, give it your key, and turn off password logins:
adduser trader
usermod -aG sudo trader
rsync --archive --chown=trader:trader ~/.ssh /home/trader
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh
Open a new terminal and check you can log in as the new user before closing the root session:
ssh trader@YOUR_SERVER_IP
Step 6: Firewall, time and updates
sudo ufw allow OpenSSH
sudo ufw enable
sudo timedatectl set-ntp true
sudo apt install -y unattended-upgrades
Vultr also offers a network firewall in the dashboard. Either is fine; the important part is that only SSH is open.
Step 7: Install Docker
Docker's official install script is the quickest route on Ubuntu:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker trader
Log out and back in so the group change applies, then check:
docker --version
docker compose version
Step 8: Install and start freqtrade
mkdir ft_userdata && cd ft_userdata
curl https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose pull
docker compose run --rm freqtrade create-userdir --userdir user_data
docker compose run --rm freqtrade new-config --config user_data/config.json
Answer yes to dry-run. Then add a strategy and start the bot:
curl -o user_data/strategies/AverageStrategy.py \
https://raw.githubusercontent.com/freqtrade/freqtrade-strategies/main/user_data/strategies/berlinguyinca/AverageStrategy.py
sed -i 's/--strategy SampleStrategy/--strategy AverageStrategy/' docker-compose.yml
docker compose up -d
docker compose logs -f
Our Docker installation guide explains each of these commands in more detail. AverageStrategy is only an example; compare others in our leaderboard.
Step 9: Open FreqUI through an SSH tunnel
Keep port 8080 closed to the internet. From your own computer:
ssh -L 8080:localhost:8080 trader@YOUR_SERVER_IP
Then open http://localhost:8080 in your browser.
Step 10: Connect your exchange
When you are ready to move beyond dry-run, create an API key restricted to your Vultr server's IP address, with trading allowed and withdrawals disabled. Our Bybit setup guide covers this step by step, and our Telegram guide shows how to get trade alerts on your phone.
Costs to expect
You pay for the server by the hour, up to a monthly cap, plus normal exchange trading fees. Destroying the server stops billing; simply powering it off does not. Check the current price of your chosen plan in the Vultr dashboard before deploying.
Ready to connect an exchange?
Freqtrade needs an exchange account with API access. Bybit supports both spot and futures in freqtrade and offers a demo mode for testing.
Affiliate link: we may earn a commission if you sign up, at no cost to you.
Related guides
- How to run freqtrade on DigitalOcean (step by step)Create a DigitalOcean Droplet in Singapore, secure it, install Docker and freqtrade, and run your bot in dry-run, with every command included.3 min read
- Free crypto trading bots: the open-source options comparedThe best free crypto trading bots in 2026, from open-source freqtrade, Hummingbot and Jesse to free exchange bots, with the real costs and risks explained.5 min read
- How to build a Binance trading bot with freqtradeSet up a free Binance trading bot with freqtrade: create a safe API key, avoid region blocks, configure spot or futures, blacklist BNB and test in dry-run.5 min read