How to Set Up a VPS for Your Polymarket Bot

Running PolyBot on your personal computer works — but the moment you close your laptop lid, the bot stops trading. A Virtual Private Server (VPS) is a small cloud machine that runs 24/7 for as little as $4/month, keeping your bot active around the clock without tying up your local hardware. This guide walks through choosing a VPS, securing it, installing Docker, and deploying PolyBot — from zero to running in under 30 minutes.

Why Use a VPS for Your Polymarket Bot?

A trading bot is only as useful as its uptime. Missing a trade because your computer was asleep, your home internet went down, or you had to restart for a system update can cost real money. A VPS solves every one of those problems:

Best VPS Providers for Polymarket Bots

PolyBot requires a minimum of 1 GB RAM to run comfortably. If you plan to run both the Copy Bot and the 15-Minute AI Trader simultaneously, aim for 2 GB. Here's how the main providers stack up:

Provider Plan Price RAM Verdict
Hetzner Cloud CX22 €3.79/mo 2 GB Best value
DigitalOcean Basic Droplet $6/mo 1 GB ✅ Easiest setup
Vultr Cloud Compute $2.50/mo 512 MB ⚠️ Too small for both bots
AWS Lightsail Nano $3.50/mo 512 MB ⚠️ Minimum spec only
Contabo VPS S €5.99/mo 8 GB ✅ Overkill but great if scaling

Our recommendation: Hetzner Cloud CX22. For under €4/month you get 2 vCPUs, 2 GB RAM, and 40 GB SSD storage — enough to comfortably run both PolyBots with headroom to spare. Hetzner's EU data centres also offer excellent latency to the Polymarket API infrastructure. DigitalOcean is a close second if you prefer a more polished control panel and are willing to pay a small premium.

Step-by-Step: Creating Your VPS

1. Create Your Account

Sign up at hetzner.com/cloud (or digitalocean.com). Both require email verification and a payment method.

2. Create a Server

In the Hetzner Cloud Console:

3. Add an SSH Key

Before creating the server, add your SSH public key so you can connect securely without a password. On your local machine, generate one if you don't have it:

ssh-keygen -t ed25519 -C "polybot-vps"
cat ~/.ssh/id_ed25519.pub

Paste the output into the SSH key field in the Hetzner console, then create the server.

4. Connect to Your Server

Once the server is created (takes ~30 seconds), copy the IP address from the console and connect:

ssh root@YOUR_SERVER_IP

You're now inside your VPS. Time to secure it.

Securing Your VPS

A publicly accessible server needs basic hardening before you deploy anything. These steps take under 5 minutes and dramatically reduce your attack surface.

Update All Packages

apt update && apt upgrade -y

Configure UFW Firewall

Only allow traffic on the ports you actually need:

ufw allow 22        # SSH
ufw allow 8080      # PolyBot Copy Bot UI
ufw allow 8081      # PolyBot 15M Trader UI (if running both)
ufw enable

Confirm the firewall is active:

ufw status

Install Fail2Ban

Fail2ban automatically blocks IPs that repeatedly fail SSH login attempts:

apt install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban

Create a Non-Root User

Running everything as root is a security risk. Create a dedicated user for PolyBot:

adduser polybot
usermod -aG sudo polybot

Switch to the new user for all subsequent steps:

su - polybot

Installing Docker on Ubuntu

PolyBot runs inside Docker containers, which means you don't need to install Python, Node, or any other runtime dependencies manually. Docker handles all of it.

Install Docker using the official convenience script:

curl -fsSL https://get.docker.com | sh

Enable Docker to start automatically on reboot:

sudo systemctl enable docker
sudo systemctl start docker

Add your user to the Docker group so you can run Docker commands without sudo:

sudo usermod -aG docker $USER
newgrp docker

Verify the installation:

docker --version
docker compose version

Both commands should return version numbers. If they do, Docker is ready.

Deploying PolyBot on Your VPS

With Docker installed, deploying PolyBot takes just a few commands. After purchasing, you'll receive a download link and a docker-compose.yml file in your PolyBot package.

1. Create the PolyBot Directory

mkdir ~/polybot && cd ~/polybot

2. Upload Your docker-compose.yml

Transfer the file from your local machine using SCP:

# Run this on your LOCAL machine, not the VPS
scp /path/to/docker-compose.yml polybot@YOUR_VPS_IP:~/polybot/

Or use nano on the VPS to paste the contents directly:

nano docker-compose.yml
# Paste the contents, then press Ctrl+X, Y, Enter to save

3. Start PolyBot

docker compose up -d

The -d flag runs containers in detached mode (background). Docker will pull the PolyBot image and start the service.

4. Open the Setup Wizard

Open your browser and navigate to:

http://YOUR_VPS_IP:8080

The PolyBot Setup Wizard will guide you through entering your Polymarket API key, selecting wallets (for Copy Bot), and configuring risk parameters. Your API key is stored locally on the VPS and never transmitted to PolyBot servers.

Get PolyBot and Deploy Today

Both bots include a docker-compose.yml and Setup Wizard. No manual configuration required. Paper mode lets you test risk-free before going live.

Keeping the Bot Running Reliably

Docker Restart Policy

Make sure your docker-compose.yml includes a restart policy so PolyBot comes back up automatically if the server reboots or Docker crashes:

services:
  polybot-copy:
    image: polybot/copy-bot:latest
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data

The unless-stopped policy means the container will restart automatically unless you explicitly stop it with docker compose stop.

Monitoring with Docker Commands

Check that your containers are running:

docker ps

View live logs from PolyBot:

docker logs polybot-copy --follow

Restart a container after a config change:

docker compose restart

Free Uptime Monitoring with UptimeRobot

Set up a free monitor at uptimerobot.com to ping your VPS every 5 minutes and email you if it goes down. The free plan supports up to 50 monitors and is more than sufficient for this purpose. Point it at http://YOUR_VPS_IP:8080 — if PolyBot's web UI stops responding, you'll get an alert within minutes.

Running Both Bots on One VPS

If you've purchased the Full Bundle ($99.99), you can run both the Copy Bot and the 15-Minute AI Trader on the same VPS — no extra servers needed. They run as separate Docker containers on different ports:

Your docker-compose.yml for the bundle will define both services. A 2 GB RAM VPS (Hetzner CX22 at €3.79/mo) handles both bots simultaneously with RAM to spare. The two bots operate independently with separate API keys, risk configurations, and web dashboards.

Remember to open both ports in your firewall:

ufw allow 8080
ufw allow 8081

Frequently Asked Questions

Hetzner Cloud CX22 (2 vCPU, 2 GB RAM, ~€3.79/mo) is the best value option for running PolyBot. DigitalOcean is slightly more expensive but offers an easier interface for beginners. The minimum RAM requirement is 1 GB; 2 GB is recommended if you plan to run both bots simultaneously.

A suitable VPS for running PolyBot costs between $4 and $8 per month. Hetzner starts at around €3.79/month and is widely considered the best value in this segment. DigitalOcean's basic droplet is $6/month. This recurring cost is small compared to the bot's one-time purchase price and is tax-deductible as a business expense in most jurisdictions.

Yes. The Copy Bot (port 8080) and the 15-Minute AI Trader (port 8081) can both run on the same VPS using a single docker-compose.yml file. A VPS with 2 GB RAM is sufficient for both bots running simultaneously. This keeps your server cost at a single monthly fee while operating both strategies in parallel.

Basic comfort with copy-pasting terminal commands is enough. You don't need to be a Linux expert. The process involves: creating a server account, connecting via SSH, running about a dozen commands to install Docker and configure security, and deploying PolyBot with docker compose up -d. The entire process takes 20–30 minutes for a first-timer and is well-documented in PolyBot's Quick Start guide.