---
id: 33b4cfbec34c4d839daf853bf4a39b3e
author: Lemon Mint
title: 'Portalite: Çoklu Relay Bağlama ve Standart net.Listener Tabanlı Hafif Portal Go SDK''sı'
description: Go standart net.Listener arayüzünü, çoklu röle eşzamanlı bağlamayı, uçtan uca şifrelemeyi (E2EE) ve otomatik oturum kurtarmayı destekleyen hafif bir Portal istemcisi ve CLI'dır.
language: tr
date: 2026-08-26T14:05:55.212694445Z
path: /portalite
go_package: gosuda.org/portalite
go_repourl: https://github.com/gosuda/portalite.git
category: network
---

Daha önce [Portal](https://github.com/gosuda/portal) projesini tanıtırken modern webin sorunlarını ele almıştık. AI kodlama araçlarının ortaya çıkmasıyla herkes bir web sitesi oluşturabilir hale geldi; ancak bu siteleri dünyaya açma işi hâlâ büyük platformların ve bulut hizmetlerinin tekelinde kalmaktadır. Portal, webin barındırılması ile içerik üretimini birbirinden ayırır ve bireylerin yerel hizmetlerini uçtan uca şifrelenmiş röleler aracılığıyla dünya genelinde erişilebilir kılarak yayınlama yetkisini yeniden bireylere geri verir.

## Portalite'ı tanıtıyoruz

Bugün [Portalite](https://github.com/gosuda/portalite) projesini tanıtıyorum. Portalite, **minimum bağımlılıkla geliştirilmiş, ultra hafif bir Portal istemcisi ve Go SDK'sıdır**.

Portal "webin nasıl değiştirilmesi gerektiği" felsefesiyse, Portalite bu felsefeyi geliştiricinin uygulamasına bağlayan en ince yapıştırıcıdır. Geliştirici karmaşık bulut yapılandırmaları ya da dağıtım hatları olmadan, SDK'yı içe aktarıp birkaç satır kod ekleyerek uygulamasına bir portal ingress'i ekleyebilir. Uygulama çalıştığı anda, yalnızca yerelde çalışan sunucu internetin herhangi bir yerinden erişilebilen herkese açık bir servise dönüşür.

## 1. İki satır kodla tamamlanan herkese açık Ingress

Portalite, Go'nun standart arayüzü olan [`net.Listener`](https://pkg.go.dev/net#Listener) arayüzünü destekler. Mevcut web çerçevesinin veya sunucu kodunun listener'ını değiştirmeniz yeterlidir, ardından sistem hemen çalışır.

```go
identity, err := portalite.GenerateIdentity("my-service")

listener, err := portalite.Expose(ctx, portalite.ExposeConfig{
    Relays:   portalite.DefaultRelays(),
    Identity: identity,
})

http.Serve(listener, handler)
```

- **Sıfır yapılandırma (Zero-config):** Port yönlendirme, sabit IP ve güvenlik duvarı gelen trafik kurallarının ayarlanması kesinlikle gerekmez.
- **Standart uyumluluk:** `http.Server`, `grpc.Server`, Gin, Echo, Chi ve standart `net.Listener` kullanan tüm Go kütüphaneleriyle %100 uyumludur.

## 2. Temel özellik: Çoklu röle eşzamanlı bağlama (Multi-Relay Binding)

Çoğu tünelleme aracı tek bir uç noktaya bağımlı olduğundan, röle sunucusu çöktüğünde hizmet de birlikte kesilir. **Portalite, aynı anda birden fazla röle sunucusuna bağlanarak çalışır.**

- **Kesintisiz arıza izolasyonu (Failover):** Röleler arasından bazıları devre dışı kalsa veya ağ gecikmesi yaşansa bile, çalışmaya devam eden diğer röleler aynı sanal listener üzerinden trafik almayı sürdürür.
- **Tek arıza noktasının (SPOF) ortadan kaldırılması:** Tüm röle oturumları aynı anda kesilmedikçe uygulamanın `Accept()` döngüsü durmaz.
- **Uçtan uca şifreleme (E2EE):** Trafik şifrelenmiş olarak iletildiğinden, röle sunucuları verileri inceleyemez veya değiştiremez.
- **Otomatik yeniden bağlanma ve kendi kendini onarma (Self-Healing):** Geçici ağ kesintilerinde ya da röle yeniden başlatmalarında bile, oturumlar ve tokenlar arka planda otomatik olarak yeniden müzakere edilerek bağlantı geri kazanılır.

## 3. Tek satırlık CLI komutuyla anında kullanım

Go kodu kullanmıyorsanız ya da hızlı bir test yapmanız gerekiyorsa, yalnızca port numarasını CLI'ye vermeniz yeterlidir.

```sh
$ go install gosuda.org/portalite/cmd/portalite@latest && portalite expose --name "my-service" 3000
URL https://my-service.rly.best
URL https://my-service.s-h.day

```

Komut çalıştırıldığı anda çoklu röle URL'leri oluşturulur ve servis hemen dış dünyadan erişilebilir hale gelir.

## 4. Hafif ama güçlü özellikler

- **Minimum bağımlılık:** Üçüncü taraf bağımlılıkların azaltılması sayesinde ikili dosya hafif olur ve derleme hızlanır.
- **TLS ve UDP desteği:** HTTP/gRPC gibi TLS trafiğinin yanı sıra, QUIC datagram backhaul üzerinden oyun sunucusu gibi UDP servisleri de kolayca açığa çıkarılabilir.

## Başlarken

- GitHub deposu: [https://github.com/gosuda/portalite](https://github.com/gosuda/portalite)
- Go paketi: `go get gosuda.org/portalite`
