Bu yazida kendi Mac bilgisayarinda kurulu OpenCode’u “server” modunda calistirip, Cloudflare Tunnel ile guvenli sekilde uzaktan erismeyi anlatiyorum.
Gereksinimler
- Mac’te
opencodekurulu olmali - Cloudflare hesabin olmali ve domain DNS’in Cloudflare uzerinden yonetiliyor olmali
- Mac’te
cloudflaredkurulu olmali
1) (Mac) cloudflared kur
Homebrew ile:
brew install cloudflared
2) OpenCode’u server olarak baslat
Sabit bir port secmek daha kolay olur (ornek: 3000):
opencode serve --hostname 127.0.0.1 --port 3000
--hostname 127.0.0.1: servis sadece lokalde dinlesin; disari acmayi Cloudflare Tunnel yapacak--port 3000: tunnel bu porta yonlenecek
Kontrol:
curl -I http://127.0.0.1:3000
3) Cloudflare Tunnel olustur
Once Cloudflare’a login ol:
cloudflared tunnel login
Tunnel olustur:
cloudflared tunnel create opencode
Bir hostname belirle (ornegin opencode.domain.com):
cloudflared tunnel route dns opencode opencode.domain.com
4) Tunnel config ekle
~/.cloudflared/config.yml icin ornek:
tunnel: opencode
credentials-file: /Users/<user>/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: opencode.domain.com
service: http://127.0.0.1:3000
- service: http_status:404
Notlar:
credentials-fileyolunu kendi kullanicina ve tunnel ID’ne gore duzenle- OpenCode lokalde kaldigi icin sunucunun 3000 portunu internete acmana gerek yok
Tunnel’i calistir:
cloudflared tunnel run opencode
Artik https://opencode.domain.com uzerinden erisebilirsin.
5) Guvenlik (onerilen)
Direkt public acmak yerine Cloudflare Zero Trust tarafinda Access policy koy:
- Cloudflare Dashboard -> Zero Trust -> Access -> Applications -> Add application
opencode.domain.comicin uygulama olustur- Sadece kendi e-posta/Google hesabina izin ver (veya IP allowlist)
6) Uzaktan baglanma
Terminal istemcisi:
opencode attach https://opencode.domain.com
Web arayuzu istersen (Mac tarafinda), genelde CORS icin kendi domainini izinli eklemek iyi olur:
opencode web --hostname 127.0.0.1 --port 3000 --cors https://opencode.domain.com
Not: Cloudflare Access kullaniyorsan, once tarayicida login olman gerekebilir.