Oracle免费VPS零成本部署OpenClaw+Ollama自托管AI应用完整指南
摘要:国产Claw生态实践:零成本自托管OpenClaw指南自托管AI应用的最大障碍通常不是技术复杂度,而是服务器成本。Oracle云的永久免费套餐(4核ARM + 24GB内存)改变了这个局面——这个配置足以跑起一套完整的 Docker + Nginx + SSL + 本地大模型栈,月租费用:零。本文记录用Ollama在Oracle免费VPS上部署OpenClaw的完整过程,从开机到API可用,...

国产Claw生态实践:零成本自托管OpenClaw指南
自托管AI应用的最大障碍通常不是技术复杂度,而是服务器成本。Oracle云的永久免费套餐(4核ARM + 24GB内存)改变了这个局面——这个配置足以跑起一套完整的 Docker + Nginx + SSL + 本地大模型栈,月租费用:零。
本文记录用Ollama在Oracle免费VPS上部署OpenClaw的完整过程,从开机到API可用,不绕弯路。
环境准备
目标架构:
外部请求 → Nginx (SSL终止) → OpenClaw :8080 → Ollama :11434前置条件:
- Oracle Cloud账号(免费注册:https://www.oracle.com/cloud/free/)
- 一个已解析到服务器IP的域名
- Ubuntu 22.04 ARM实例(4核 / 24GB)
步骤一:创建ARM实例
登录Oracle Cloud控制台,进入 Compute → Instances → Create Instance。
关键配置项:
- Shape:选
VM.Standard.A1.Flex,分配4 OCPU + 24GB内存(永久免费额度上限) - Image:Canonical Ubuntu 22.04
- 网络:记得下载生成的SSH私钥
实例启动后,在 Networking → Security Lists 中放行入站端口 80 和 443。Oracle的安全组默认只开22,这步容易漏掉。
步骤二:安装Docker
# 一键安装(官方脚本,ARM兼容)
curl -fsSL https://get.docker.com | sudo sh
# 把当前用户加入docker组,避免每次sudo
sudo usermod -aG docker $USER
newgrp docker
# 验证
docker version如果偏好手动安装:
sudo apt-get update
sudo apt-get install -y \
apt-transport-https ca-certificates curl gnupg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo \
"deb [arch=arm64 signed-by=/usr/share/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io步骤三:安装并配置Nginx
sudo apt-get update
sudo apt-get install -y nginx
sudo systemctl enable --now nginx先写一个临时的HTTP配置,用于后续Certbot验证域名:
# /etc/nginx/sites-available/openclaw
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx步骤四:申请SSL证书
sudo apt-get install -y certbot python3-certbot-nginx
# 自动申请并写入Nginx配置
sudo certbot --nginx -d your_domain.comCertbot会自动修改Nginx配置,添加443监听和证书路径。证书90天有效,自动续期已由systemd timer处理,无需手动干预。
申请失败时先检查两点:域名A记录是否已生效(dig your_domain.com),以及80端口是否在Oracle安全组和系统防火墙(ufw)中都已放行。
步骤五:启动Ollama
docker run -d \
--name ollama \
--restart unless-stopped \

-p 127.0.0.1:11434:11434 \
-v ollama_data:/root/.ollama \
ollama/ollama注意端口绑定写的是 127.0.0.1:11434,Ollama只监听本地,不对外暴露。
拉一个模型测试:
docker exec -it ollama ollama pull qwen2.5:7b
docker exec -it ollama ollama list验证Ollama是否正常响应:
curl http://127.0.0.1:11434/api/tags步骤六:部署OpenClaw
创建配置文件:
# /opt/openclaw/config.yaml
server:
port: 8080
host: 0.0.0.0
ollama:
base_url: http://ollama:11434
default_model: qwen2.5:7b启动容器,挂载配置并与Ollama容器共享网络:
docker run -d \
--name openclaw \
--restart unless-stopped \
-p 127.0.0.1:8080:8080 \
-v /opt/openclaw/config.yaml:/app/config.yaml \
--link ollama:ollama \
openclaw/openclaw验证部署
# 检查容器状态
docker ps
# 测试API
curl -X POST https://your_domain.com/api \
-H "Content-Type: application/json" \
-d '{"input": "Hello, OpenClaw!"}'Python调用示例:
import requests
resp = requests.post(
"https://your_domain.com/api",
json={"input": "Hello, OpenClaw!"}
)
print(resp.json())浏览器访问 https://your_domain.com,能看到OpenClaw界面说明全链路通了。
常见问题
容器起不来
# 查看具体报错
docker logs openclaw
docker logs ollama
# 确认端口没有冲突
sudo ss -tlnp | grep -E '8080|11434'SSL申请失败
# 确认DNS已解析
dig +short your_domain.com
# 确认80端口可达(在另一台机器上测)
curl -I http://your_domain.com
# 检查ufw状态
sudo ufw statusOpenClaw连不上Ollama
# 确认Ollama在运行
docker ps | grep ollama
# 从OpenClaw容器内部测试连通性
docker exec openclaw curl http://ollama:11434/api/tags