OpenClaw + Laravel Forge: AI Asistanınızı 5 Dakikada Deploy Edin
Chatbot'lardan biktiniz mi? Ben biktim. "Sana sunu soruyorum, cevap ver" modeli sinirli. Ya AI sadece cevap vermese, gercekten is yapsa? Sunucunuzu izlese, hata oldugunda sizi bilgilendirse, hatta basit duzeltmeleri kendi yapsa?
OpenClaw tam bunu yapiyor. Ve Laravel Forge ile deploy etmek sasirtici derecede kolay. Bu yazida OpenClaw'un ne oldugunu, Forge ile nasil kurulacagini ve gercek kullanim senaryolarini anlatacagim.
OpenClaw Nedir?
OpenClaw, acik kaynakli bir AI asistan platformu. Ama "asistan" derken ChatGPT benzeri bir chatbot dusunmeyin. OpenClaw:
- Aksiyon alir: Sadece cevap vermez, komut calistirir, dosya olusturur, API cagirir
- Entegre olur: Telegram, Discord, Slack uzerinden erisilebilir
- Skill'leri vardir: Genisletilebilir yetenek sistemi (monitoring, deployment, scaffolding)
- Sandbox'ta calisir: Tum komutlari izole ortamda calistirir
Dusunun: Telegram'dan "sunucu disk durumunu kontrol et" yaziyorsunuz, OpenClaw df -h calistirip sonucu size donduruyor. Veya "Laravel projesi olustur" dediginizde gercekten laravel new calistirip size repoyu veriyor.
Neden Laravel Forge?
OpenClaw'u herhangi bir sunucuya kurabilirsiniz. Ama Forge'un avantajlari var:
1. Izolasyon (Server Isolation)
Forge'un izole sunucu ozelligini kullanarak OpenClaw'u tamamen ayri bir ortamda calistirabilirsiniz. Bu kritik cunku:
- OpenClaw komut calistiriyor. Production sunucunuzda bunu istemezsiniz.
- Izole sunucuda yapacagi en kotu sey kendi ortamini bozmak.
- Diger projeleriniz etkilenmez.
2. Yonetilen Altyapi
- SSL sertifikasi otomatik (Let's Encrypt)
- Firewall kurallari Forge panelinden
- SSH key yonetimi
- Monitoring (temel)
- Scheduled task yonetimi
3. Saatlik Faturalandirma
OpenClaw'u 7/24 calistirmaniz gerekmiyor. Ihtiyac duydugunuzda sunucuyu baslatip, bittikten sonra kapatabilirsiniz. Forge bunu kolaylastiriyor.
4. Browser Terminal
Forge'un in-browser terminal ozelligiyle sunucuya SSH client'a ihtiyac duymadan erisebilirsiniz. Kurulum ve debug icin pratik.
Adim Adim Kurulum
Adim 1: Forge'da Sunucu Olustur
Forge panelinden:
- Servers > Create Server
- Provider: DigitalOcean, Hetzner veya AWS (Hetzner maliyet icin ideal)
- Server Type: App Server (Web Server degil, sadece CLI kullanacagiz)
- Size: 1 GB RAM yeterli (baslangiçta)
- Region: Frankfurt veya Amsterdam (Turkiye'ye yakin)
- PHP 8.4 + Node.js 22 secin
Sunucu hazirlama 3-5 dakika suruyor.
Adim 2: OpenClaw Kurulumu
Forge'un browser terminal'inden veya SSH ile baglanin:
# Home dizinine gec
cd /home/forge
# OpenClaw'u indir
git clone https://github.com/openclaw/openclaw.git
cd openclaw
# Bagimliliklari yukle
npm install
# Konfigurasyonu olustur
cp .env.example .env
Adim 3: AI Provider Secimi
.env dosyasini duzenleyin:
# AI Provider (birini secin)
AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
# Veya OpenAI kullanmak isterseniz
# AI_PROVIDER=openai
# OPENAI_API_KEY=sk-xxxxxxxxxxxx
# Veya yerel model (Ollama)
# AI_PROVIDER=ollama
# OLLAMA_HOST=http://localhost:11434
# OLLAMA_MODEL=llama3.1
# Genel ayarlar
APP_NAME=ProjeManBot
LOG_LEVEL=info
SANDBOX_MODE=true
MAX_EXECUTION_TIME=30
Onerim: Anthropic Claude kullanin. Tool calling ve instruction following konusunda en iyisi. Ollama ile yerel model de calisir ama performans farki belirgin.
Adim 4: Telegram Entegrasyonu
Telegram en kolay entegrasyon. BotFather ile bot olusturun:
- Telegram'da @BotFather'a gidin
/newbotkomutunu gonderin- Bot ismi verin:
ProjeMan AI Assistant - Username verin:
projeman_ai_bot - Token'i kopyalayin
.env'ye ekleyin:
# Telegram
TELEGRAM_ENABLED=true
TELEGRAM_BOT_TOKEN=7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TELEGRAM_ALLOWED_USERS=123456789,987654321 # Sadece izin verilen kullanicilar
TELEGRAM_ALLOWED_USERS cok onemli. Herkesin bot'unuzu kullanmasini istemezsiniz. Telegram user ID'lerinizi ekleyin.
User ID'nizi bulmak icin Telegram'da @userinfobot'a mesaj atin.
Adim 5: Baslatma
# Direkt calistirma (test icin)
node index.js
# PM2 ile daemon olarak calistirma (production)
npm install -g pm2
pm2 start index.js --name openclaw
pm2 save
pm2 startup
Forge'un scheduled tasks ozelligini de kullanabilirsiniz:
# Forge > Server > Scheduled Tasks
# Command: cd /home/forge/openclaw && pm2 restart openclaw
# Frequency: Daily at 04:00
Bu, OpenClaw'u her gun saat 4'te yeniden baslatir. Memory leak varsa temizler.
Adim 6: Discord Entegrasyonu (Opsiyonel)
Discord'u da eklemek isterseniz:
# Discord
DISCORD_ENABLED=true
DISCORD_BOT_TOKEN=MTIxxxxxxxxxxxxxxxxxx.xxxxxx.xxxxxxxxxxxxxxxxxxxxxxxx
DISCORD_ALLOWED_CHANNELS=1234567890,9876543210
Discord Developer Portal'dan bot olusturun, sunucunuza ekleyin ve DISCORD_ALLOWED_CHANNELS ile sadece belirli kanallarda calismasini saglayin.
Kullanim Senaryolari
1. Otomatik Sunucu Izleme
OpenClaw'a bir monitoring skill ekleyin:
# skills/server-monitor.yaml
name: server-monitor
description: Sunucu saglik durumunu kontrol eder
triggers:
- schedule: "*/5 * * * *" # Her 5 dakikada
actions:
- command: "df -h / | tail -1 | awk '{print $5}'"
name: disk_usage
- command: "free -m | awk 'NR==2{printf \"%.1f%%\", $3*100/$2}'"
name: memory_usage
- command: "uptime | awk -F'load average:' '{print $2}' | awk '{print $1}'"
name: load_average
alerts:
- condition: "disk_usage > 85%"
message: "UYARI: Disk kullanimi %{disk_usage}"
channel: telegram
- condition: "memory_usage > 90%"
message: "UYARI: Bellek kullanimi %{memory_usage}"
channel: telegram
- condition: "load_average > 4"
message: "UYARI: CPU yuku yuksek: {load_average}"
channel: telegram
Artik sunucunuzda disk dolmaya basladiginda Telegram'dan bildirim alirsiniz. Manuel kontrol etmenize gerek yok.
2. Kod Scaffolding
Telegram'dan:
Sen: "Laravel'de Order model olustur: user_id, product_id,
quantity, total_price, status enum (pending, processing,
shipped, delivered, cancelled)"
OpenClaw: Model, migration, factory, seeder ve resource
controller olusturuldu. Dosyalar:
- app/Models/Order.php
- database/migrations/2026_02_26_create_orders_table.php
- app/Http/Controllers/OrderController.php
- database/factories/OrderFactory.php
Git commit: "feat: add Order model with CRUD"
Branch: feature/order-model
Tabii bunu production sunucuda degil, development ortaminda yaparsınız. Ama fikri anliyorsunuz: AI sadece cevap vermiyor, kodu olusturup commit'liyor.
3. DevOps Kisa Yollari
Sen: "nginx loglarinda son 1 saatteki 500 hatalari goster"
OpenClaw: Son 1 saatte 3 adet 500 hatasi bulundu:
[14:23:15] POST /api/v1/orders - 500
"SQLSTATE[23000]: Integrity constraint"
[14:45:02] GET /api/v1/products?page=999 - 500
"Allowed memory size exhausted"
[15:01:33] POST /api/v1/upload - 500
"Maximum execution time exceeded"
Oneri:
1. Orders endpoint'inde foreign key kontrolu eksik
2. Products sayfalamada memory limit arttirilmali
3. Upload timeout suresi uzatilmali
4. Veritabani Bakimi
Sen: "PostgreSQL'de en yavas 5 sorguyu goster"
OpenClaw: pg_stat_statements'dan en yavas sorgular:
1. SELECT * FROM products WHERE... (avg: 2.3s, calls: 1.2K)
Oneri: products.category_id icin index eksik
2. SELECT COUNT(*) FROM orders... (avg: 1.8s, calls: 800)
Oneri: orders.status icin partial index ekle
...
5. Log Analizi ve Ozet
Sen: "Bugunun Laravel logunu ozetle"
OpenClaw: Bugunun log ozeti (storage/logs/laravel.log):
- 12 ERROR: Hepsi PaymentService ile ilgili
(Stripe timeout, muhtemelen Stripe API sorunu)
- 45 WARNING: 38'i deprecated method kullanimi
(Laravel 12'de kaldirilan Route::controller)
- 230 INFO: Normal islem loglari
Oncelikli aksiyon: Stripe entegrasyonunu kontrol et,
son 2 saattir odeme hatalari var.
Guvenlik Dikkat Edilecekler
AI'a sunucu erisimi vermek ciddi bir konu. Su onlemleri mutlaka alin:
1. Izole Sunucu
OpenClaw'u ASLA production sunucunuzda calistirmayin. Ayri bir sunucu olusturun. Production'a sadece SSH veya API uzerinden, sinirli yetkilerle erisin.
2. Ayri Hesaplar
# Ozel bir kullanici olusturun
sudo useradd -m -s /bin/bash openclaw
sudo usermod -aG www-data openclaw # sadece gerekirse
# Sudo yetkisi VERMEYIN
# Root erisimi VERMEYIN
3. Skill Inceleme
Her yeni skill eklemeden once:
- Hangi komutlari calistiracagini inceleyin
- Dosya sistemi erisimini sinirlayin
- Network erisimini sinirlayin (gerekiyorsa firewall ile)
4. Sandbox Modu
.env'de SANDBOX_MODE=true her zaman acik olsun. Bu mod:
- Komutlari containerda calistirir
- Dosya sistemi erisimini sinirlar
- Network erisimini kontrol eder
- Belirli komutlari blacklist'ler (
rm -rf,dd,mkfsgibi)
5. Komut Blacklist
# config/security.yaml
blocked_commands:
- "rm -rf /"
- "dd if="
- "mkfs"
- "shutdown"
- "reboot"
- "passwd"
- "useradd"
- "userdel"
- "chmod 777"
- "> /dev/sda"
blocked_paths:
- "/etc/shadow"
- "/etc/passwd"
- "/root/"
- "~/.ssh/"
6. Audit Log
Her komutu loglayin:
AUDIT_LOG=true
AUDIT_LOG_PATH=/var/log/openclaw/audit.log
Kim, ne zaman, hangi komutu calistirdi - hepsini takip edin. Sorun olursa geri donup bakabilirsiniz.
Maliyet Analizi
Hetzner CPX11 ile:
| Kalem | Aylik Maliyet |
|---|---|
| Hetzner CPX11 (2 vCPU, 2 GB RAM) | ~4.50 EUR |
| Anthropic API (gunluk ~50 istek) | ~5-15 USD |
| Forge subscription | 12 USD (Hobby plan) |
| Toplam | ~22-32 USD/ay |
Bu maliyet, bir junior developer'in bir saatlik ucretinden az. Ama 7/24 calisan bir asistaniniz oluyor.
Hetzner yerine DigitalOcean kullanirseniz sunucu maliyeti biraz artar ama Forge entegrasyonu daha pürüzsüz.
Forge Daemon ile Yonetim
PM2 yerine Forge'un daemon ozelligini de kullanabilirsiniz:
Forge > Server > Daemons:
Command: node /home/forge/openclaw/index.js
User: forge
Directory: /home/forge/openclaw
Processes: 1
Forge otomatik olarak process'i izler, crashlerde yeniden baslatir ve loglarini tutar.
Ileri Seviye: Laravel Projesi ile Entegrasyon
OpenClaw'u kendi Laravel projenizle entegre edebilirsiniz:
// app/Services/OpenClawService.php
namespace App\Services;
use Illuminate\Support\Facades\Http;
class OpenClawService
{
public function sendCommand(string $command, ?string $context = null): array
{
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . config('services.openclaw.api_key'),
])->post(config('services.openclaw.url') . '/api/execute', [
'command' => $command,
'context' => $context,
'sandbox' => true,
]);
return $response->json();
}
public function askQuestion(string $question): string
{
$response = Http::withHeaders([
'Authorization' => 'Bearer ' . config('services.openclaw.api_key'),
])->post(config('services.openclaw.url') . '/api/chat', [
'message' => $question,
]);
return $response->json('response');
}
}
Admin panelinden AI destekli islemler yapabilirsiniz:
// Admin panelinde bir "AI Asistan" sayfasi
Route::post('/admin/ai/analyze-logs', function (OpenClawService $openclaw) {
$result = $openclaw->sendCommand('Bugunun Laravel loglarini analiz et ve ozet cikar');
return response()->json($result);
})->middleware(['auth', 'can:admin']);
Sonuc
OpenClaw + Laravel Forge kombinasyonu, AI'i chatbot'un otesine tasiyor. Gercek isler yapan, sunucunuzu izleyen, kod ureten ve size raporlayan bir asistan.
Kurulumu 5 dakika (abartmiyorum, Forge sunucu hazirlamasi + git clone + npm install + .env). Aylik maliyeti 22-32 dolar arasi. Ve gunluk islerinizde ciddi zaman kazandiriyor.
Ama dikkatli olun: AI'a sunucu erisimi vermek sorumluluk gerektirir. Izolasyon, sandbox, audit log ve komut blacklist olmadan yapmayin. Production sunucunuza dogrudan erisim vermeyin.