Hosting
GCP
Uruchom trwały OpenClaw Gateway na maszynie wirtualnej GCP Compute Engine przy użyciu Docker, z trwałym stanem, wbudowanymi plikami binarnymi i bezpiecznym zachowaniem przy ponownym uruchamianiu.
Jeśli chcesz „OpenClaw 24/7 za około 5-12 USD/mies.”, to jest niezawodna konfiguracja w Google Cloud. Ceny różnią się zależnie od typu maszyny i regionu; wybierz najmniejszą maszynę wirtualną pasującą do obciążenia i zwiększ skalę, jeśli pojawią się błędy OOM.
Co robimy (prosto)?
- Utworzenie projektu GCP i włączenie rozliczeń
- Utworzenie maszyny wirtualnej Compute Engine
- Instalacja Docker (izolowane środowisko uruchomieniowe aplikacji)
- Uruchomienie OpenClaw Gateway w Docker
- Utrwalenie
~/.openclaw+~/.openclaw/workspacena hoście (przetrwa ponowne uruchomienia/przebudowy) - Dostęp do Control UI z laptopa przez tunel SSH
Ten zamontowany stan ~/.openclaw obejmuje openclaw.json, właściwy dla każdego agenta
agents/<agentId>/agent/auth-profiles.json oraz .env.
Dostęp do Gateway można uzyskać przez:
- Przekierowanie portu SSH z laptopa
- Bezpośrednie wystawienie portu, jeśli samodzielnie zarządzasz zaporą i tokenami
Ten przewodnik używa Debian w GCP Compute Engine. Ubuntu również działa; odpowiednio dopasuj pakiety. Ogólny przepływ Docker znajdziesz w Docker.
Szybka ścieżka (doświadczeni operatorzy)
- Utwórz projekt GCP i włącz Compute Engine API
- Utwórz maszynę wirtualną Compute Engine (
e2-small, Debian 12, 20 GB) - Połącz się z maszyną wirtualną przez SSH
- Zainstaluj Docker
- Sklonuj repozytorium OpenClaw
- Utwórz trwałe katalogi hosta
- Skonfiguruj
.envidocker-compose.yml - Wbuduj wymagane pliki binarne, zbuduj i uruchom
Czego potrzebujesz
- Konto GCP (kwalifikujące się do bezpłatnego poziomu
e2-micro) - Zainstalowany gcloud CLI (albo użycie Cloud Console)
- Dostęp SSH z laptopa
- Podstawowa swoboda pracy z SSH i kopiowaniem/wklejaniem
- Około 20-30 minut
- Docker i Docker Compose
- Dane uwierzytelniające modelu
- Opcjonalne dane uwierzytelniające dostawców
- Kod QR WhatsApp
- Token bota Telegram
- Gmail OAuth
Zainstaluj gcloud CLI (albo użyj Console)
Opcja A: gcloud CLI (zalecane do automatyzacji)
Zainstaluj z https://cloud.google.com/sdk/docs/install
Zainicjuj i uwierzytelnij:
gcloud init
gcloud auth login
Opcja B: Cloud Console
Wszystkie kroki można wykonać w interfejsie webowym pod adresem https://console.cloud.google.com
Utwórz projekt GCP
CLI:
gcloud projects create my-openclaw-project --name="OpenClaw Gateway"
gcloud config set project my-openclaw-project
Włącz rozliczenia na https://console.cloud.google.com/billing (wymagane dla Compute Engine).
Włącz Compute Engine API:
gcloud services enable compute.googleapis.com
Console:
- Przejdź do IAM & Admin > Create Project
- Nadaj nazwę i utwórz
- Włącz rozliczenia dla projektu
- Przejdź do APIs & Services > Enable APIs > wyszukaj „Compute Engine API” > Enable
Utwórz maszynę wirtualną
Typy maszyn:
| Typ | Specyfikacja | Koszt | Uwagi |
|---|---|---|---|
| e2-medium | 2 vCPU, 4 GB RAM | około 25 USD/mies. | Najbardziej niezawodne dla lokalnych buildów Docker |
| e2-small | 2 vCPU, 2 GB RAM | około 12 USD/mies. | Zalecane minimum do buildu Docker |
| e2-micro | 2 vCPU (współdzielone), 1 GB RAM | Kwalifikuje się do bezpłatnego poziomu | Często kończy się niepowodzeniem przy buildzie Docker z OOM (exit 137) |
CLI:
gcloud compute instances create openclaw-gateway \
--zone=us-central1-a \
--machine-type=e2-small \
--boot-disk-size=20GB \
--image-family=debian-12 \
--image-project=debian-cloud
Console:
- Przejdź do Compute Engine > VM instances > Create instance
- Nazwa:
openclaw-gateway - Region:
us-central1, strefa:us-central1-a - Typ maszyny:
e2-small - Dysk rozruchowy: Debian 12, 20 GB
- Utwórz
Połącz się z maszyną wirtualną przez SSH
CLI:
gcloud compute ssh openclaw-gateway --zone=us-central1-a
Console:
Kliknij przycisk „SSH” obok swojej maszyny wirtualnej w panelu Compute Engine.
Uwaga: propagacja klucza SSH może potrwać 1-2 minuty po utworzeniu maszyny wirtualnej. Jeśli połączenie zostanie odrzucone, poczekaj i spróbuj ponownie.
Zainstaluj Docker (na maszynie wirtualnej)
sudo apt-get update
sudo apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
Wyloguj się i zaloguj ponownie, aby zmiana grupy zaczęła obowiązywać:
exit
Następnie ponownie połącz się przez SSH:
gcloud compute ssh openclaw-gateway --zone=us-central1-a
Zweryfikuj:
docker --version
docker compose version
Sklonuj repozytorium OpenClaw
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Ten przewodnik zakłada, że zbudujesz niestandardowy obraz, aby zagwarantować trwałość plików binarnych.
Utwórz trwałe katalogi hosta
Kontenery Docker są efemeryczne. Cały długotrwały stan musi znajdować się na hoście.
mkdir -p ~/.openclaw
mkdir -p ~/.openclaw/workspace
Skonfiguruj zmienne środowiskowe
Utwórz .env w katalogu głównym repozytorium.
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/home/$USER/.openclaw
OPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace
GOG_KEYRING_PASSWORD=
XDG_CONFIG_HOME=/home/node/.openclaw
Ustaw OPENCLAW_GATEWAY_TOKEN, gdy chcesz zarządzać stabilnym tokenem Gateway
przez .env; w przeciwnym razie skonfiguruj gateway.auth.token przed
poleganiem na klientach między ponownymi uruchomieniami. Jeśli żadne ze źródeł nie istnieje, OpenClaw używa
tokenu tylko na czas działania dla tego uruchomienia. Wygeneruj hasło keyring i wklej
je do GOG_KEYRING_PASSWORD:
openssl rand -hex 32
Nie commituj tego pliku.
Ten plik .env służy do zmiennych środowiskowych kontenera/środowiska uruchomieniowego, takich jak OPENCLAW_GATEWAY_TOKEN.
Przechowywane uwierzytelnianie OAuth/kluczem API dostawcy znajduje się w zamontowanym
~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
Konfiguracja Docker Compose
Utwórz lub zaktualizuj docker-compose.yml.
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE}
build: .
restart: unless-stopped
env_file:
- .env
environment:
- HOME=/home/node
- NODE_ENV=production
- TERM=xterm-256color
- OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
# Zalecane: pozostaw Gateway dostępny tylko przez loopback na maszynie wirtualnej; uzyskuj dostęp przez tunel SSH.
# Aby wystawić go publicznie, usuń prefiks `127.0.0.1:` i odpowiednio skonfiguruj zaporę.
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND}",
"--port",
"${OPENCLAW_GATEWAY_PORT}",
"--allow-unconfigured",
]
--allow-unconfigured służy tylko wygodzie podczas bootstrapu; nie zastępuje właściwej konfiguracji Gateway. Nadal ustaw uwierzytelnianie (gateway.auth.token albo hasło) i używaj bezpiecznych ustawień bindowania dla swojego wdrożenia.
Wspólne kroki środowiska uruchomieniowego maszyny wirtualnej Docker
Użyj wspólnego przewodnika środowiska uruchomieniowego dla typowego przepływu hosta Docker:
Uwagi uruchomieniowe specyficzne dla GCP
W GCP, jeśli build kończy się niepowodzeniem z Killed albo exit code 137 podczas pnpm install --frozen-lockfile, maszynie wirtualnej zabrakło pamięci. Użyj co najmniej e2-small albo e2-medium dla bardziej niezawodnych pierwszych buildów.
Przy bindowaniu do sieci LAN (OPENCLAW_GATEWAY_BIND=lan) skonfiguruj zaufane źródło przeglądarki przed kontynuowaniem:
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json
Jeśli zmieniono port Gateway, zastąp 18789 skonfigurowanym portem.
Dostęp z laptopa
Utwórz tunel SSH, aby przekierować port Gateway:
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
Otwórz w przeglądarce:
http://127.0.0.1:18789/
Ponownie wyświetl czysty link do panelu:
docker compose run --rm openclaw-cli dashboard --no-open
Jeśli UI poprosi o uwierzytelnianie wspólnym sekretem, wklej skonfigurowany token albo hasło w ustawieniach Control UI. Ten przepływ Docker domyślnie zapisuje token; jeśli przełączysz konfigurację kontenera na uwierzytelnianie hasłem, użyj zamiast tego tego hasła.
Jeśli Control UI pokazuje unauthorized albo disconnected (1008): pairing required, zatwierdź urządzenie przeglądarki:
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>
Potrzebujesz ponownie odniesienia do wspólnej trwałości i aktualizacji? Zobacz Docker VM Runtime oraz aktualizacje Docker VM Runtime.
Rozwiązywanie problemów
Połączenie SSH odrzucone
Propagacja klucza SSH może potrwać 1-2 minuty po utworzeniu maszyny wirtualnej. Poczekaj i spróbuj ponownie.
Problemy z OS Login
Sprawdź swój profil OS Login:
gcloud compute os-login describe-profile
Upewnij się, że Twoje konto ma wymagane uprawnienia IAM (Compute OS Login albo Compute OS Admin Login).
Brak pamięci (OOM)
Jeśli build Docker kończy się niepowodzeniem z Killed i exit code 137, maszyna wirtualna została zabita przez OOM. Przejdź na e2-small (minimum) albo e2-medium (zalecane dla niezawodnych lokalnych buildów):
# Najpierw zatrzymaj maszynę wirtualną
gcloud compute instances stop openclaw-gateway --zone=us-central1-a
# Zmień typ maszyny
gcloud compute instances set-machine-type openclaw-gateway \
--zone=us-central1-a \
--machine-type=e2-small
# Uruchom maszynę wirtualną
gcloud compute instances start openclaw-gateway --zone=us-central1-a
Konta usługi (najlepsza praktyka bezpieczeństwa)
Do użytku osobistego domyślne konto użytkownika działa poprawnie.
Dla automatyzacji albo potoków CI/CD utwórz dedykowane konto usługi z minimalnymi uprawnieniami:
-
Utwórz konto usługi:
gcloud iam service-accounts create openclaw-deploy \ --display-name="OpenClaw Deployment" -
Przyznaj rolę Compute Instance Admin (albo węższą rolę niestandardową):
gcloud projects add-iam-policy-binding my-openclaw-project \ --member="serviceAccount:[email protected]" \ --role="roles/compute.instanceAdmin.v1"
Unikaj używania roli Owner do automatyzacji. Stosuj zasadę najmniejszych uprawnień.
Szczegóły ról IAM znajdziesz na https://cloud.google.com/iam/docs/understanding-roles.
Następne kroki
- Skonfiguruj kanały komunikacji: Kanały
- Sparuj urządzenia lokalne jako węzły: Węzły
- Skonfiguruj Gateway: Konfiguracja Gateway