Oracle免費(fèi)VPS零成本部署OpenClaw+Ollama自托管AI應(yīng)用完整指南

國產(chǎn)Claw生態(tài)實(shí)踐:零成本自托管OpenClaw指南
自托管AI應(yīng)用的最大障礙通常不是技術(shù)復(fù)雜度,而是服務(wù)器成本。Oracle云的永久免費(fèi)套餐(4核ARM + 24GB內(nèi)存)改變了這個(gè)局面——這個(gè)配置足以跑起一套完整的 Docker + Nginx + SSL + 本地大模型棧,月租費(fèi)用:零。
本文記錄用Ollama在Oracle免費(fèi)VPS上部署OpenClaw的完整過程,從開機(jī)到API可用,不繞彎路。
環(huán)境準(zhǔn)備
目標(biāo)架構(gòu):
外部請求 → Nginx (SSL終止) → OpenClaw :8080 → Ollama :11434前置條件:
- Oracle Cloud賬號(免費(fèi)注冊:https://www.oracle.com/cloud/free/)
- 一個(gè)已解析到服務(wù)器IP的域名
- Ubuntu 22.04 ARM實(shí)例(4核 / 24GB)
步驟一:創(chuàng)建ARM實(shí)例
登錄Oracle Cloud控制臺,進(jìn)入 Compute → Instances → Create Instance。
關(guān)鍵配置項(xiàng):
- Shape:選
VM.Standard.A1.Flex,分配4 OCPU + 24GB內(nèi)存(永久免費(fèi)額度上限) - Image:Canonical Ubuntu 22.04
- 網(wǎng)絡(luò):記得下載生成的SSH私鑰
實(shí)例啟動后,在 Networking → Security Lists 中放行入站端口 80 和 443。Oracle的安全組默認(rèn)只開22,這步容易漏掉。
步驟二:安裝Docker
# 一鍵安裝(官方腳本,ARM兼容)
curl -fsSL https://get.docker.com | sudo sh
# 把當(dāng)前用戶加入docker組,避免每次sudo
sudo usermod -aG docker $USER
newgrp docker
# 驗(yàn)證
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先寫一個(gè)臨時(shí)的HTTP配置,用于后續(xù)Certbot驗(yàn)證域名:
# /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監(jiān)聽和證書路徑。證書90天有效,自動續(xù)期已由systemd timer處理,無需手動干預(yù)。
申請失敗時(shí)先檢查兩點(diǎn):域名A記錄是否已生效(dig your_domain.com),以及80端口是否在Oracle安全組和系統(tǒng)防火墻(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只監(jiān)聽本地,不對外暴露。
拉一個(gè)模型測試:
docker exec -it ollama ollama pull qwen2.5:7b
docker exec -it ollama ollama list驗(yàn)證Ollama是否正常響應(yīng):
curl http://127.0.0.1:11434/api/tags步驟六:部署OpenClaw
創(chuàng)建配置文件:
# /opt/openclaw/config.yaml
server:
port: 8080
host: 0.0.0.0
ollama:
base_url: http://ollama:11434
default_model: qwen2.5:7b啟動容器,掛載配置并與Ollama容器共享網(wǎng)絡(luò):
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驗(yàn)證部署
# 檢查容器狀態(tài)
docker ps
# 測試API
curl -X POST https://your_domain.com/api \
-H "Content-Type: application/json" \
-d '{"input": "Hello, OpenClaw!"}'Python調(diào)用示例:
import requests
resp = requests.post(
"https://your_domain.com/api",
json={"input": "Hello, OpenClaw!"}
)
print(resp.json())瀏覽器訪問 https://your_domain.com,能看到OpenClaw界面說明全鏈路通了。
常見問題
容器起不來
# 查看具體報(bào)錯(cuò)
docker logs openclaw
docker logs ollama
# 確認(rèn)端口沒有沖突
sudo ss -tlnp | grep -E '8080|11434'SSL申請失敗
# 確認(rèn)DNS已解析
dig +short your_domain.com
# 確認(rèn)80端口可達(dá)(在另一臺機(jī)器上測)
curl -I http://your_domain.com
# 檢查ufw狀態(tài)
sudo ufw statusOpenClaw連不上Ollama
# 確認(rèn)Ollama在運(yùn)行
docker ps | grep ollama
# 從OpenClaw容器內(nèi)部測試連通性
docker exec openclaw curl http://ollama:11434/api/tags