Hope Agent Tutorial: Deploy an Autonomous AI Agent With Docker in 5 Minutes
Step-by-step tutorial on deploying Hope Agent with Docker. Learn how to set up persistent memory, multi-agent teams, MCP tools, and remote access. Pro tips from real deployment experience.
π§ͺ Deploy Hope Agent: From Zero to Autonomous AI in 5 Minutes
I'm going to show you exactly how I got Hope Agent running on a cheap cloud VM β and the mistakes I made along the way so you don't repeat them. Grab a coffee, this takes about 5 minutes if you don't hit my snags.
π³ Want to deploy Hope Agent yourself?
Docker Compose configs, system requirements, and installation guides β all on one page.
View Hope Agent Tool Page βπ Prerequisites
| Requirement | Details |
|---|---|
Docker |
24.0+ (or Docker Desktop) |
| Minimum RAM | 1 GB (4 GB recommended) |
| CPU | x86_64 or ARM64 (multi-arch image) |
| LLM API Key | OpenAI / Anthropic / Ollama (local) |
| Port | 8420 (or custom) |
π Step 1: Pull & Run (The Easy Part)
This is the part that actually works first time:
docker run -d \
--name hope-agent \
-p 8420:8420 \
-v hope-data:/data \
ghcr.io/shiwenwen/hope-agent:latest
If you see the container start without errors β nice, you're already ahead of where I was. Give it about 20 seconds to boot (Rust binaries compile fast but the first-time model download takes a moment).
Open http://localhost:8420 (or your server's IP if remote). If you see the onboarding wizard β congratulations, you're past the hardest part.
π§ Step 2: The Onboarding Wizard (Don't Skip This)
The wizard shows up on first visit. It's clean and asks you for three things:
- LLM Provider β your API key for OpenAI, Anthropic Claude, or a local Ollama endpoint
- Agent Name & Persona β give your agent a name and describe its personality
- MCP Server Config β optional, you can add this later
β οΈ Here's where I messed up: I skipped the API key setup thinking "I'll do it later." But Hope Agent's remote access requires authentication β without HA_API_KEY set, it binds to 127.0.0.1 by default (which is correct for local use, but confusing when you SSH into a headless server and nothing loads).
Fix: Generate a key:
openssl rand -hex 24
# β e.g. a7b3c8d2e1f409a6b7c8d9e0f1a2b3c4d5e6f7a8
Then restart with:
docker run -d \
--name hope-agent \
-p 8420:8420 \
-e HA_API_KEY="a7b3c8d2e1f409a6b7c8d9e0f1a2b3c4d5e6f7a8" \
-v hope-data:/data \
ghcr.io/shiwenwen/hope-agent:latest
π§ Step 3: Test the Memory System
This is the part that sold me. Give your agent a goal:
"Read the CONTRIBUTING.md file from my GitHub repo, summarize the setup instructions, and save them to my knowledge base."
It'll read the file, create a summary, and store it. Now close the browser, kill the container, restart β and ask "what's in my knowledge base about contributing?" It remembers. Tested this three times to be sure. Works every time.
Time spent: ~30 seconds for the agent to complete this task. Cold start from a fresh container adds ~15 seconds for model loading.
π₯ Step 4: Set Up Multi-Agent Teams (The Fun Part)
This is where Hope Agent separates from the pack. You can create specialized sub-agents with different roles:
# In the agent config panel:
# Create agents with roles like:
- Researcher: browses docs, collects info
- Reviewer: checks quality, suggests fixes
- Executor: runs commands, applies changes
I told the team: "Research how to set up Prometheus monitoring, create a docker-compose.yml, and write a setup guide." The researcher found the docs, the reviewer checked for accuracy, the executor drafted the file. Took about 2 minutes. Honestly felt like cheating.
π‘ Pro Tips From My Mistakes
- Use
docker composefor production β the docker-compose.yml from the repo includes an Ollama sidecar if you want local LLMs:docker compose --profile with-ollama up -d - Persist
/dataβ all memory, config, and knowledge base lives here. Lose this volume, lose everything. - Set TZ β add
-e TZ=Europe/Berlin(or your timezone). Scheduled tasks use this. - Reverse proxy for public access β if you want it accessible from the internet, put Caddy or Nginx in front with TLS. The docs have a full example (
docs/deployment/docker.md). - Watch the RAM β the Rust binary itself is ~30MB. With a 7B model via Ollama, expect ~6GB total. With OpenAI API calls, 1-2GB is plenty.
β Verification Checklist
After deployment, confirm everything works:
# Check container is running
docker ps | grep hope-agent
# Check the web GUI responds
curl -s -o /dev/null -w "HTTP %{http_code}" http://localhost:8420
# β Should be 200
# Check data directory
docker exec hope-agent ls -la /data
If you get HTTP 200 on the web GUI β everything is running. Open it in your browser and start chatting.
π¬ Final Thoughts
Hope Agent is genuinely one of the most impressive open-source AI agents I've deployed this year. The Rust foundation means it's fast and lightweight. The persistent memory actually works (I tested this aggressively). The multi-agent teams are useful for real workflows, not just a gimmick.
It's not perfect β the remote access setup could be smoother, and the documentation is spread across markdown files rather than a single guide. But the core experience? Solid. If you want an AI assistant that grows with you instead of forgetting everything after each session, this is it.
π Explore Hope Agent on Run This Ai
Docker Compose configs, system requirements, installation guides, and more β all in one place.
View Hope Agent Tool Page β