EQVPS

Running Freqtrade on a VPS: requirements, Docker setup, and honest limits

Jul 4, 2026 · 5 min read · EQVPS Team

A trading bot on your laptop is a bad idea for one boring reason: your laptop isn't online 24/7, and markets are. Close the lid mid-trade and the bot stops managing an open position. Freqtrade — the popular open-source Python trading bot — is built to run unattended, which is exactly what a small VPS is for. Here's what it actually needs, how to set it up with Docker, and the honest limits nobody mentions until you hit them.

Why a server, not your machine

Two reasons, both practical:

This is the same logic behind running any trading bot on a VPS — Freqtrade just makes the requirements concrete.

What it actually needs

Freqtrade itself is lightweight, but be realistic about the workload:

Set it up with Docker Compose

Docker is the maintained, least-painful way to run Freqtrade. On a fresh box:

sudo apt update && sudo apt install -y docker.io docker-compose-v2
mkdir ~/ft && cd ~/ft
docker run --rm -v "$(pwd)/user_data:/freqtrade/user_data" \
  freqtradeorg/freqtrade:stable create-userdir --userdir user_data

Grab the official compose file and create a config interactively (it'll ask about your exchange, stake, and dry-run):

curl -s https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose run --rm freqtrade new-config --config user_data/config.json

Dry-run first — always

Never point a fresh strategy at real money. Freqtrade defaults to dry-run (paper trading) and you should leave it there until the strategy has proven itself on live market data for a while. In config.json:

{
  "dry_run": true,
  "dry_run_wallet": 1000
}

Start it and watch:

docker compose up -d
docker compose logs -f

The restart: unless-stopped policy in the compose file is your systemd-equivalent here — Docker brings the bot back after a crash or a server reboot, no manual step. (If you prefer running it outside Docker, a systemd unit with Restart=always does the same job — same principle as keeping any bot alive.)

Exchange API keys — the part that bites people

This is where a trading setup goes wrong expensively. Two rules, non-negotiable:

Keep the keys in config.json, make it non-world-readable (chmod 600), and run the container as a non-root user. And lock the box down first — the new-VPS security checklist takes ten minutes and closes the doors that matter.

Back up user_data

Your strategies, config, and trade history all live in user_data. That's the thing you don't want to lose:

tar czf ft-backup-$(date +%F).tar.gz user_data

Pull that off the server periodically (or into object storage). Losing the trade DB means losing your performance history; losing a tuned strategy means redoing the optimization.

The honest limits

Bottom line

Freqtrade on a VPS is the right setup for the live bot: a $5 Micro for a focused strategy, a $8 Small if you run many pairs, Docker Compose with restart: unless-stopped for uptime, and a trade-only, IP-whitelisted API key so a leak can't drain you. Keep the heavy backtesting and hyperopt on your laptop, back up user_data, and let the server do the one thing it's good at — staying online while the market moves. Signup is email-only and you pay in USDC or USDT; a dedicated IP is the one upgrade worth it here, purely for the API-key whitelist.

FAQ

How much RAM does Freqtrade need on a VPS?

For a live or dry-run bot, 2 GB is a comfortable baseline — Freqtrade itself is light, but the Docker image plus a handful of pairs and indicators wants headroom. 1 GB can work for a single strategy on few pairs, but 2 GB ($5 Micro) is the safer floor. Backtesting and hyperopt are a different story — they're memory- and CPU-hungry, and you should run those on your own machine, not the server.

Can I backtest and hyperopt on the VPS?

You can, but you usually shouldn't. Backtesting over long ranges and hyperopt are CPU-bound and bursty — they'll peg cores for minutes or hours. On a shared, burst-oriented plan that's the wrong workload (and sustained 100% load runs into the acceptable-use policy). Do the heavy optimization locally, then ship the tuned strategy to the VPS to run live.

How do I keep my exchange API key safe on a server?

Create the key with trade permissions only — never enable withdrawal. If your exchange supports IP whitelisting, lock the key to the server's IP, which is a real reason to use a dedicated-IP plan (a NAT plan shares the node's outbound IP). Keep the key in the Freqtrade config on a root-readable, non-world-readable file, and run the bot as a non-root user.

Why run the bot on a VPS instead of my laptop?

Markets don't close, and a trading bot has to be online continuously to act on signals and manage open positions. A laptop sleeps, reboots, and drops wifi — every gap is a missed entry or an unmanaged exit. A VPS gives you 24/7 uptime and a stable, low-latency connection to the exchange. That's the whole point.

← Back to blogSee plans & pricing →