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 initgcloud auth loginOpcja 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-projectWłącz rozliczenia na https://console.cloud.google.com/billing (wymagane dla Compute Engine).
Włącz Compute Engine API:
gcloud services enable compute.googleapis.comConsole:
- 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-cloudConsole:
- 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-aConsole:
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 updatesudo apt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sudo shsudo usermod -aG docker $USERWyloguj się i zaloguj ponownie, aby zmiana grupy zaczęła obowiązywać:
exitNastępnie ponownie połącz się przez SSH:
gcloud compute ssh openclaw-gateway --zone=us-central1-aZweryfikuj:
docker --versiondocker compose versionSklonuj repozytorium OpenClaw
git clone https://github.com/openclaw/openclaw.gitcd openclawTen 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 ~/.openclawmkdir -p ~/.openclaw/workspaceSkonfiguruj zmienne środowiskowe
Utwórz .env w katalogu głównym repozytorium.
OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789 OPENCLAW_CONFIG_DIR=/home/$USER/.openclawOPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace GOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclawUstaw 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 32Nie 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-jsonJeś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:18789Otwó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-openJeś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 listdocker 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-profileUpewnij 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 maszynygcloud 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-aKonta 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:
bash gcloud iam service-accounts create openclaw-deploy \ --display-name="OpenClaw Deployment" -
Przyznaj rolę Compute Instance Admin (albo węższą rolę niestandardową):
bash 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