Hedef: OpenClaw Gateway’in kalıcı depolama, otomatik HTTPS ve Discord/kanal erişimiyle bir Fly.io makinesinde çalışması.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Gerekenler
- flyctl CLI kurulu
- Fly.io hesabı (ücretsiz katman yeterlidir)
- Model kimlik doğrulaması: seçtiğiniz model sağlayıcısı için API anahtarı
- Kanal kimlik bilgileri: Discord bot belirteci, Telegram belirteci vb.
Başlangıç için hızlı yol
- Repoyu klonlayın →
fly.tomldosyasını özelleştirin - Uygulama + volume oluşturun → gizli değerleri ayarlayın
fly deployile dağıtın- Yapılandırma oluşturmak için SSH ile bağlanın veya Control UI kullanın
Create the Fly app
lhr (Londra), iad (Virginia), sjc (San Jose).Configure fly.toml
fly.toml dosyasını uygulama adınıza ve gereksinimlerinize uyacak şekilde düzenleyin.Güvenlik notu: Varsayılan yapılandırma herkese açık bir URL sunar. Herkese açık IP’si olmayan güçlendirilmiş bir dağıtım için Özel Dağıtım bölümüne bakın veya deploy/fly.private.toml kullanın.tini kullanır. Fly işlem komutları Docker CMD değerini değiştirir, ancak ENTRYPOINT değerini değiştirmez; bu nedenle işlem yine tini altında çalışır.Temel ayarlar:| Ayar | Neden |
|---|---|
--bind lan | Fly proxy’sinin Gateway’e ulaşabilmesi için 0.0.0.0 adresine bağlanır |
--allow-unconfigured | Yapılandırma dosyası olmadan başlatır (dosyayı sonrasında oluşturacaksınız) |
internal_port = 3000 | Fly sağlık kontrolleri için --port 3000 (veya OPENCLAW_GATEWAY_PORT) ile eşleşmelidir |
memory = "2048mb" | 512 MB çok küçüktür; 2 GB önerilir |
OPENCLAW_STATE_DIR = "/data" | Durumu volume üzerinde kalıcı hale getirir |
Set secrets
- Non-loopback bağlamalar (
--bind lan) geçerli bir Gateway kimlik doğrulama yolu gerektirir. Bu Fly.io örneğiOPENCLAW_GATEWAY_TOKENkullanır, ancakgateway.auth.passwordveya doğru yapılandırılmış non-loopbacktrusted-proxydağıtımı da gereksinimi karşılar. - Bu belirteçleri parola gibi ele alın.
- Tüm API anahtarları ve belirteçler için yapılandırma dosyası yerine env var kullanmayı tercih edin. Bu, gizli değerlerin yanlışlıkla açığa çıkabileceği veya günlüklere yazılabileceği
openclaw.jsondışında tutulmasını sağlar.
Deploy
Create config file
Doğru bir yapılandırma oluşturmak için makineye SSH ile bağlanın:Yapılandırma dizinini ve dosyasını oluşturun:Not:
OPENCLAW_STATE_DIR=/data ile yapılandırma yolu /data/openclaw.json olur.Not: https://my-openclaw.fly.dev değerini gerçek Fly uygulamanızın
origin değeriyle değiştirin. Gateway başlangıcı, yapılandırma henüz yokken
ilk önyüklemenin devam edebilmesi için yerel Control UI origin değerlerini
çalışma zamanı --bind ve --port değerlerinden oluşturur, ancak Fly
üzerinden tarayıcı erişimi için tam HTTPS origin değerinin
gateway.controlUi.allowedOrigins içinde listelenmesi gerekir.Not: Discord belirteci şu kaynaklardan birinden gelebilir:- Ortam değişkeni:
DISCORD_BOT_TOKEN(gizli değerler için önerilir) - Yapılandırma dosyası:
channels.discord.token
DISCORD_BOT_TOKEN değerini otomatik olarak okur.Uygulamak için yeniden başlatın:Access the Gateway
Control UI
Tarayıcıda açın:https://my-openclaw.fly.dev/ adresini ziyaret edinYapılandırılmış paylaşılan gizli değerle kimlik doğrulaması yapın. Bu kılavuz
OPENCLAW_GATEWAY_TOKEN içindeki Gateway belirtecini kullanır; parola
kimlik doğrulamasına geçtiyseniz bunun yerine o parolayı kullanın.Günlükler
SSH Konsolu
Sorun giderme
”Uygulama beklenen adreste dinlemiyor”
Gateway0.0.0.0 yerine 127.0.0.1 adresine bağlanıyor.
Düzeltme: fly.toml içindeki işlem komutunuza --bind lan ekleyin.
Sağlık kontrolleri başarısız / bağlantı reddedildi
Fly yapılandırılmış bağlantı noktasında Gateway’e ulaşamıyor. Düzeltme:internal_port değerinin Gateway bağlantı noktasıyla eşleştiğinden emin olun (--port 3000 veya OPENCLAW_GATEWAY_PORT=3000 ayarlayın).
OOM / Bellek Sorunları
Konteyner sürekli yeniden başlatılıyor veya sonlandırılıyor. Belirtiler:SIGABRT, v8::internal::Runtime_AllocateInYoungGeneration veya sessiz yeniden başlatmalar.
Düzeltme: fly.toml içinde belleği artırın:
Gateway kilit sorunları
Gateway “zaten çalışıyor” hatalarıyla başlamayı reddediyor. Bu, konteyner yeniden başlatıldığında ancak PID kilit dosyası volume üzerinde kaldığında olur. Düzeltme: Kilit dosyasını silin:/data/gateway.*.lock konumundadır (bir alt dizinde değildir).
Yapılandırma okunmuyor
--allow-unconfigured yalnızca başlangıç korumasını atlar. /data/openclaw.json oluşturmaz veya onarmaz; bu nedenle normal bir yerel Gateway başlangıcı istediğinizde gerçek yapılandırmanızın var olduğundan ve gateway.mode="local" içerdiğinden emin olun.
Yapılandırmanın var olduğunu doğrulayın:
SSH üzerinden yapılandırma yazma
fly ssh console -C komutu kabuk yönlendirmesini desteklemez. Bir yapılandırma dosyası yazmak için:
fly sftp başarısız olabilir. Önce silin:
Durum kalıcı olmuyor
Yeniden başlatmadan sonra kimlik doğrulama profillerini, kanal/sağlayıcı durumunu veya oturumları kaybediyorsanız durum dizini konteyner dosya sistemine yazıyordur. Düzeltme:fly.toml içinde OPENCLAW_STATE_DIR=/data ayarlandığından emin olun ve yeniden dağıtın.
Güncellemeler
Makine komutunu güncelleme
Tam yeniden dağıtım yapmadan başlangıç komutunu değiştirmeniz gerekiyorsa:fly deploy sonrasında makine komutu fly.toml içindeki değere sıfırlanabilir. El ile değişiklik yaptıysanız dağıtımdan sonra bunları yeniden uygulayın.
Özel dağıtım (güçlendirilmiş)
Varsayılan olarak Fly herkese açık IP’ler ayırır ve Gateway’inizihttps://your-app.fly.dev adresinden erişilebilir hale getirir. Bu kullanışlıdır, ancak dağıtımınızın internet tarayıcıları (Shodan, Censys vb.) tarafından keşfedilebilir olduğu anlamına gelir.
Herkese açık maruziyeti olmayan güçlendirilmiş bir dağıtım için özel şablonu kullanın.
Özel dağıtım ne zaman kullanılmalı
- Yalnızca dışarı giden çağrılar/mesajlar yapıyorsunuz (gelen Webhook yok)
- Herhangi bir Webhook geri çağrısı için ngrok veya Tailscale tünelleri kullanıyorsunuz
- Gateway’e tarayıcı yerine SSH, proxy veya WireGuard üzerinden erişiyorsunuz
- Dağıtımın internet tarayıcılarından gizlenmesini istiyorsunuz
Kurulum
Standart yapılandırma yerinedeploy/fly.private.toml kullanın:
fly ips list yalnızca private türünde bir IP göstermelidir:
Özel dağıtıma erişme
Herkese açık URL olmadığından şu yöntemlerden birini kullanın: Seçenek 1: Yerel proxy (en basiti)Özel dağıtımda Webhook’lar
Genel erişime açmadan Webhook geri çağrılarına (Twilio, Telnyx vb.) ihtiyacınız varsa:- ngrok tüneli - ngrok’u konteyner içinde veya sidecar olarak çalıştırın
- Tailscale Funnel - Belirli yolları Tailscale üzerinden açın
- Yalnızca giden - Bazı sağlayıcılar (Twilio), Webhook olmadan giden aramalar için sorunsuz çalışır
webhookSecurity.allowedHosts değerini genel tünel ana makine adına ayarlayın.
Güvenlik avantajları
| Unsur | Genel | Özel |
|---|---|---|
| İnternet tarayıcıları | Keşfedilebilir | Gizli |
| Doğrudan saldırılar | Mümkün | Engellenir |
| Kontrol arayüzü erişimi | Tarayıcı | Proxy/VPN |
| Webhook teslimi | Doğrudan | Tünel üzerinden |
Notlar
- Fly.io x86 mimarisi kullanır (ARM değil)
- Dockerfile her iki mimariyle de uyumludur
- WhatsApp/Telegram ilk kurulumu için
fly ssh consolekullanın - Kalıcı veriler
/datakonumundaki birimde bulunur - Signal, Java + signal-cli gerektirir; özel bir imaj kullanın ve belleği 2 GB+ seviyesinde tutun.
Maliyet
Önerilen yapılandırmayla (shared-cpu-2x, 2 GB RAM):
- Kullanıma bağlı olarak ayda ~$10-15
- Ücretsiz katman bir miktar kullanım hakkı içerir
Sonraki adımlar
- Mesajlaşma kanallarını ayarlayın: Kanallar
- Gateway’i yapılandırın: Gateway yapılandırması
- OpenClaw’ı güncel tutun: Güncelleme