---
id: 33b4cfbec34c4d839daf853bf4a39b3e
author: Lemon Mint
title: 'Portalite: SDK Go Portal yang ringan berbasis multi-relay binding dan net.Listener standar'
description: Klien dan CLI Portal yang ringan, mendukung antarmuka standar net.Listener dari Go, pengikatan simultan ke banyak relay, enkripsi ujung-ke-ujung (E2EE), serta pemulihan sesi otomatis.
language: id
date: 2026-08-26T14:05:55.212694445Z
path: /portalite
go_package: gosuda.org/portalite
go_repourl: https://github.com/gosuda/portalite.git
category: network
---

Sebelumnya, ketika memperkenalkan [Portal](https://github.com/gosuda/portal), kami membahas masalah web modern. Dengan munculnya alat pengodean AI, siapa pun kini dapat membuat situs web, tetapi proses untuk mempublikasikannya ke dunia tetap berada di bawah monopoli platform raksasa dan layanan cloud. Portal memisahkan hosting web dari pembuatan konten, dan dengan menghubungkan layanan lokal milik individu ke seluruh dunia melalui relai terenkripsi ujung-ke-ujung, Portal mengembalikan hak untuk mempublikasikan kepada individu.

## Kami Memperkenalkan Portalite

Hari ini saya mengumumkan [Portalite](https://github.com/gosuda/portalite). Portalite adalah **klien Portal ultra-ringan dan SDK Go yang dibangun dengan dependensi minimal**.

Jika Portal adalah filosofi tentang "bagaimana mengubah web", maka Portalite adalah perekat paling tipis yang menghubungkan filosofi tersebut ke aplikasi pengembang. Pengembang cukup mengimpor SDK dan menambahkan beberapa baris kode, tanpa konfigurasi cloud yang rumit atau pipeline deployment, untuk memasang ingress portal ke aplikasi mereka. Begitu aplikasi berjalan, server yang sebelumnya hanya aktif secara lokal menjadi layanan publik yang dapat diakses dari mana pun di internet.

## 1. Ingress Publik yang Cukup dengan Dua Baris Kode

Portalite mendukung [`net.Listener`](https://pkg.go.dev/net#Listener), antarmuka standar Go. Cukup dengan mengganti listener pada kerangka kerja web atau kode server yang sudah ada, Portalite langsung berfungsi.

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

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

http.Serve(listener, handler)
```

- **Tanpa konfigurasi (Zero-config):** Tidak diperlukan sama sekali pengaturan port forwarding, IP tetap, maupun aturan inbound firewall.
- **Kompatibilitas standar:** Kompatibel 100% dengan `http.Server`, `grpc.Server`, Gin, Echo, Chi, dan seluruh pustaka Go lain yang menggunakan `net.Listener` standar.

## 2. Inti: Pengikatan Multi-Relay Secara Bersamaan (Multi-Relay Binding)

Sebagian besar alat tunneling bergantung pada satu endpoint sehingga layanan ikut terputus ketika server relai mati. **Portalite beroperasi dengan terhubung secara bersamaan ke beberapa server relai.**

- **Isolasi kegagalan tanpa henti (Failover):** Meskipun sebagian relai mati atau mengalami latensi jaringan, relai lain yang masih aktif terus menerima lalu lintas melalui listener virtual yang sama.
- **Penghapusan titik kegagalan tunggal (SPOF):** Selama tidak semua sesi relai terputus secara bersamaan, loop `Accept()` aplikasi tidak akan berhenti.
- **Enkripsi ujung-ke-ujung (E2EE):** Lalu lintas dienkripsi selama diteruskan, sehingga server relai tidak dapat melihat atau memanipulasi data.
- **Penyambungan ulang otomatis dan pemulihan mandiri (Self-Healing):** Bahkan ketika terjadi gangguan jaringan sementara atau relai dimulai ulang, sesi dan token dinegosiasikan ulang secara otomatis di latar belakang untuk memulihkan koneksi.

## 3. Langsung Digunakan dengan Satu Baris Perintah CLI

Jika Anda tidak menggunakan kode Go atau memerlukan pengujian cepat, cukup berikan nomor port kepada CLI.

```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

```

Segera setelah perintah dijalankan, URL multi-relay diterbitkan dan layanan langsung dapat diakses dari luar.

## 4. Ringan namun Bertenaga

- **Dependensi minimal:** Dengan meminimalkan dependensi pihak ketiga, biner menjadi ringan dan proses build lebih cepat.
- **Dukungan TLS & UDP:** Selain lalu lintas TLS seperti HTTP/gRPC, layanan UDP seperti server game juga dapat diekspos dengan mudah melalui backhaul datagram QUIC.

## Memulai

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