Back to Blog
C
VPS
June 1, 2026
15 min read

Hermes Docker VPS Setup: The Fastest Way to Launch Hermes on Bluehost

A practical deployment guide for Hermes users who want a Docker VPS, predictable RAM usage, and the shortest path to a live agent.

ClawVault Team
June 1, 2026

Hermes is easiest to deploy when you treat the VPS as a Docker host rather than a bare server. That keeps the environment predictable, makes upgrades less painful, and gives you a repeatable path from local testing to production.

If you want the shortest route to a live deployment, start with the Bluehost Hermes Docker VPS template: Hermes Docker VPS on Bluehost.

Before you start, review the official Docker docs: - Install Docker Engine on Ubuntu - Install Docker Compose - Docker Compose overview

Recommended VPS Size

  • 2GB RAM for a simple Hermes install
  • 4GB RAM if you plan to run browser automation, email workflows, and GitHub tasks together
  • SSD storage if you want logs, browser artifacts, or downloaded files to persist cleanly

Install Docker and Docker Compose

Start by updating your package index and installing the required dependencies. These commands work on Ubuntu 22.04 and later.

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release

Add the official Docker GPG key and repository, then install the engine and compose plugin.

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Verify the installation.

docker --version
docker compose version

Add your user to the docker group so you can run commands without sudo.

sudo usermod -aG docker $USER
newgrp docker

Create the Project Directory

Create a dedicated directory for your Hermes deployment and add the compose file.

mkdir -p ~/hermes-deploy && cd ~/hermes-deploy

Write the Docker Compose File

Create a compose file that defines the Hermes service, its environment, volumes, and restart policy.

```yaml services: hermes: image: hermes-agent:latest container_name: hermes restart: unless-stopped env_file: - .env environment: - NODE_ENV=production volumes: - hermes-data:/app/data - hermes-logs:/app/logs ports: - "127.0.0.1:3100:3100" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3100/health"] interval: 30s timeout: 10s retries: 3 start_period: 15s

volumes: hermes-data: hermes-logs: ```

Configure Environment Variables

Create a .env file to store your credentials. Never commit this file to version control.

GMAIL_CLIENT_ID=your-client-id
GMAIL_CLIENT_SECRET=your-client-secret
GITHUB_TOKEN=ghp_your-token
OPENAI_API_KEY=sk-your-key
HERMES_LOG_LEVEL=info

Deploy and Verify

Pull the image, start the container in detached mode, and confirm it is running.

docker compose pull
docker compose up -d
docker compose ps

Watch the logs during the first boot to catch any startup errors.

docker compose logs -f hermes

Check resource usage to make sure the container fits within your VPS limits.

docker stats --no-stream

Set Up a Reverse Proxy with Caddy

If you want HTTPS access, install Caddy and create a Caddyfile that proxies to the Hermes container.

sudo apt-get install -y caddy
hermes.yourdomain.com {
    reverse_proxy 127.0.0.1:3100
}

Reload Caddy to apply the configuration.

sudo systemctl reload caddy

Validate First Workflows

Run these workflows one at a time to prove the stack before adding complexity.

  • Triage a single mailbox and draft replies
  • Summarize GitHub issues or pull requests
  • Run one browser workflow against a trusted site

Troubleshooting

View recent container logs filtered by error level.

docker compose logs --since 1h hermes | grep -i error

Restart the service after changing environment variables.

docker compose down
docker compose up -d

Inspect the container if you need to debug from inside.

docker exec -it hermes /bin/sh

Check host-level Docker logs if the daemon itself has issues.

journalctl -u docker --since today

Next Steps

Once you have the basics stable, consider adding a cron schedule for recurring Hermes tasks, a volume backup strategy using docker cp or a bind mount to a backed-up directory, and monitoring with a tool like Uptime Kuma running as a second service in the same compose file.

Ready to start building?

Explore OpenClaw, Hermes, and PicoClaw skills and build your first agent today.

Browse Skills