r3v3rs3, Rust ile yazılmış bir reverse proxy sunucusudur. TCP, UDP, TLS, HTTP ve WebSocket bağlantılarını proxy'ler, gelen HTTP/3 bağlantılarını da kabul eder. Uygulamaları container olarak deploy eder ve alan adlarını kendi proxy'leri üzerinden yönlendirir. Taxy projesinin bir fork'udur.
Ayarları tarayıcıdan yaparsınız. Tek bir binary hem proxy'yi hem de İngilizce ve Türkçe WebUI'yi taşır; her port, proxy, sertifika ve hesap bu WebUI'de bir formdur. Değişiklik yeniden başlatmadan uygulanır. Aynı işlemler yönetim API'si üzerinden de yapılır. r3v3rs3 proxy'lerini Docker etiketlerinden veya etcd key'lerinden de oluşturabilir.
Temel özellikler
Proxy
- TCP, UDP, TLS, HTTP/1.1 ve HTTP/2 proxy'leri. HTTP upgrade ve WebSocket bağlantıları da buna dahildir.
- HTTP/3 desteği kısmidir: yalnız gelen QUIC bağlantıları kabul edilir. Bir
alt-svcheader'ı tarayıcıya QUIC portunu bildirir. Upstream bağlantıları HTTP/2 veya HTTP/1.1 kullanır. WebTransport desteği yoktur. - Host adına (tam, wildcard veya regex) ve yola göre routing. Porttaki bütün proxy'ler içinde yolu en uzun eşleşen route kazanır, yani proxy'lerin ve route'ların sırası sonucu değiştirmez.
- Yol yeniden yazma (prefix silme, regex değiştirme, prefix ekleme), yönlendirme kuralları ve sabit yanıtlar: yönlendirme host'u, durum kodu host'u ve 404 host'u şablonları.
- Bir route, proxy'sinin ayarlarının yerine kendi ayarını koyabilir: timeout'lar, yeniden deneme, rate limit, IP filtresi, kimlik doğrulama, header kuralları ve gövde boyutu.
- Round robin (smooth weighted), rastgele, ilk sağlıklı sunucu ve istemci IP hash'i ile yük dengeleme. Sunucuyu devre dışı bırakmak için 0 ile 65535 arası ağırlık.
- Yeniden deneme: aktif ve pasif sağlık kontrolü,
grpc.health.v1.Healthprotokolü ile gRPC sağlık kontrolü, half-open denemesiyle circuit breaker, idempotent method kuralları ve gövde replay limiti. HMAC imzalı cookie ile sticky session ve yüzde ile istek yansıtma. - Proxy ve route başına upstream connect ve request timeout'ları. TTL bitince yenilenen DNS SRV kayıtlarından gelen upstream sunucuları (
http+srv://URL'leri). - İstemci başına UDP oturumları: boşta kalma timeout'u ve port başına en çok 10.000 oturum.
- Düz HTTP sunuculara gRPC için h2c ile HTTP/2. Bir HTTP/2 upstream bağlantısını çok sayıda istemciye taşıyan paylaşılan upstream bağlantı havuzları.
- Genel ve port başına ayarlanabilir HTTP/2 ve HTTP/3 flood limitleri.
- HTTP/2 ve HTTP/3 için akıllı akış önceliklendirme (RFC 9218): genişletilebilir aciliyet planlaması (u=0..7), otomatik MIME ve yol sezgiselleri, özel kalıp kuralları ve tampon şişkinliğini önleyen uyarlamalı eşzamanlılık kontrolü.
- TLS 1.3 0-RTT erken veri desteği: RFC 8470 güvenli yöntem denetimi, otomatik
Early-Dataheader yönetimi ve bellek içi anti-replay arabelleği. - Coğrafi gecikme tabanlı yönlendirme ve çoklu bölge yönetimi: istemci GeoIP yakınlığına ve canlı RTT ölçümlerine göre trafiği en yakın coğrafi hedefe veya upstream kopyasına yönlendirme.
- Canlı bağlantı denetçisi: aktif TCP ve HTTP bağlantılarını gerçek zamanlı izleme ve güvenli sonlandırma.
- Güvenilen yük dengeleyicilerden kabul edilen ve upstream sunuculara gönderilen PROXY protocol v1 ve v2.
Güvenlik ve istek kontrolü
- Proxy ve route başına IP izin ve engelleme listeleri. Tek bir adın altında IP filtresi ve kimlik doğrulamayı taşıyan, paylaşılan erişim listeleri.
- Saniye, dakika veya saat periyotlu, burst'ü ve
Retry-Afterheader'ı olan istemci başına rate limit.413ile istek gövdesi boyut limiti. - Kimlik doğrulama: Argon2 hash'iyle Basic auth, Bearer token'ları, dahili OIDC / OAuth 2.0 girişi, forward auth (oauth2-proxy, Authelia) ve TOTP'li yönetim paneli oturumu. Bearer token'lar SHA-256 özeti olarak saklanır ve sabit sürede karşılaştırılır. Giriş denemesi limitleri de vardır.
- Sekiz bilinen CDN'in (Cloudflare, Fastly, Amazon CloudFront, Bunny, Gcore, KeyCDN, Imperva, Google Cloud Load Balancing) ve güvenilen proxy'lerin arkasındaki gerçek istemci IP'si bulunur. CDN aralıkları her gün yenilenir. Güvenilmeyen karşı uçlardan sahte istemci IP header'ları silinir.
- Değişken kullanan istek ve yanıt header kuralları:
{client_ip},{host},{request_id},{route},{client_cert_subject}ve{client_cert_fingerprint}. - Yanıt sıkıştırma (brotli, zstd ve gzip) ve ETag ve Last-Modified yenilemesi,
304yanıtları,X-CacheveAgeheader'ları ve purge API'si olan bellekte tutulan HTTP cache. - Mutual TLS: TLS portlarında istemci sertifikası doğrulaması (kapalı, isteğe bağlı veya zorunlu) ve upstream sunuculara istemci sertifikası.
Sertifikalar
- Yüklenen veya kendinden imzalı sunucu, istemci ve kök sertifikaları.
- HTTP-01, TLS-ALPN-01 ve DNS-01 challenge'larıyla ACME v2 (örneğin Let's Encrypt). DNS-01 wildcard sertifikaları da alır. DNS-01 üç yolla çalışır: 12 DNS sağlayıcısının API'si, program allowlist'i olan bir exec komutu veya TSIG'li RFC 2136.
- Sertifika Şeffaflığı (CT) günlük izleme ve sahte sertifika alarmı: yönetilen alan adları için genel CT günlüklerini periyodik denetleme, yetkisiz CA sertifikalarını erken algılama ve webhook güvenlik bildirimleri.
- Sertifika süresi uyarıları ve webhook bildirimleri. Webhook'lar bearer token taşır, yeniden dener ve sertifika, deployment ile agent olaylarını bildirir.
Yönetim
- WebUI'ı içinde taşıyan tek bir binary. WebUI İngilizce ve Türkçedir ve açık, koyu ve sistem temaları vardır. Ayar değişiklikleri yeniden başlatmadan uygulanır.
- Birleşik SQLite veritabanı mimarisi (
r3v3rs3.db): tüm yapılandırma ve operasyonel durumu ACID uyumlu SQLite veritabanında saklama ve eski dosyalardan sıfır kayıpla otomatik migrasyon. - OpenAPI dokümanı ve Swagger UI sunan yönetim API'si (Yönetim API'si).
- İstek, cache ve bağlantı sayaçlarıyla Prometheus metrics endpoint'i:
GET /api/metrics(Metrics). - OAuth 2.1 ve PKCE ile
readveeditscope'lu/api/mcpüzerindeki MCP sunucusu; adresi doğrudan bağlanan Claude Code gibi AI host'ları için, ayrıca script'ler ve terminal içinr3komut satırı istemcisi (MCP sunucusu). - Düğüm eşik alarmları ve sistem anomali algılama: düşük disk alanı, bant genişliği sıçraması, dosya tanımlayıcı (fd) tükenmesi ve TCP TIME_WAIT soket tükenmesi için sürekli izleme ve webhook bildirimleri.
admin,editorveviewerrolleri olan hesaplar, hesap başına proxy listesi, TOTP ve saklama süreli denetim kaydı (Hesaplar).- Saatlik dosya döndürmesi, text veya JSON biçimi olan erişim ve sunucu log'ları. Log ve denetim sayfalarının arkasındaki
log.dbveritabanı (Loglama). - Portları sunan, master admin API'sini tutan isteğe bağlı worker süreci. Worker çökmesi paneli düşürmez (Worker süreçleri).
- SIGUSR2 ile kesintisiz yükseltme (
systemctl reload r3-server), sha256 özetini doğrulayan panel içi yükseltme butonu ve panelin her sayfasında banner'la saat başı daha yeni bir release kontrolü (Kesintisiz yükseltme, Panelden yükseltme). - Docker etiketleri ve etcd ile servis keşfi. Keşfedilen proxy'ler salt okunurdur ve proxy olamayan bir tanım, proxy listesinde sorun olarak raporlanır (Servis keşfi).
Deploy platformu
- Registry image'ından, Dockerfile'ı olan bir Git repository'sinden veya bir Git repository'sindeki Docker Compose dosyasından uygulamalar.
- Dağıtım öncesi ve sonrası yaşam döngüsü kancaları: otomatik migration çalıştırma ve sıfır kesintili geri alma koruması.
- Otomatik Docker BuildKit derleme önbelleği temizliği: yapılandırılabilir önbellek saklama sınırı (
build_cache_keep_storage_mb), geri alma imaj koruma sayısı (kept_builds_count) ve artık katman temizliği. - Konteyner kaynak kısıtlama ve OOMKill erken teşhis alarmları: cgroup CPU CFS kota ve bellek fail sayaçlarını izleme.
- Compose
.envşablon çözümleyici ve tek tıkla kurulum ile Git uygulamaları için otomatik kriptografik gizli değer üretici. - Katalogdaki bir uygulamayı, image veya Compose, tek tıkla kuran ve günde bir kez depodan yenilenen App Store.
- PostgreSQL, MariaDB, MySQL, MongoDB veya Redis'i tek tıkla kuran;
127.0.0.1üzerinde sabit port ve üretilmiş paroyla bir Veritabanları bölümü; bağlantıyı kullanan uygulamaların ortamına otomatik ekler; isteğe bağlı S3 hedefiyle zamanlanmış yedekler alır. - Proxy'yi ancak yeni container sağlık kontrolünden geçince değiştiren blue-green deployment'lar ve önceki bir deployment'a geri alma.
- Admin için, paneldeki WebSocket üzerinden uygulamanın çalışan container'ına web terminali.
- Admin için, panelde uygulamanın volume'lerine dosya yöneticisi: listeleme, indirme, yükleme, düzenleme ve silme.
- r3v3rs3 uygulamaların alan adlarını kendisi yönlendirir ve sertifikalarını ACME ile alır.
- Şifreli ortam değişkenleri. Her uygulamanın deployment'ları ve container log'u WebUI'da ve yönetim API'sinde görünür.
- Git sağlayıcı bağlantıları: r3v3rs3'ün bir manifest'ten oluşturduğu GitHub App (GitHub Enterprise Server'da da) ve GitLab ile Gitea için OAuth uygulamaları. Bağlantı repository'leri ve branch'leri listeler. Private repository'leri clone eder ve push webhook'unu kurar.
- GitHub, GitLab, Gitea, Forgejo veya genel bir HMAC göndericisinden gelen push webhook'ları deployment başlatır.
- Agent hedefleri uygulamaları başka sunucularda çalıştırır. Agent, tek seferlik kayıttan sonra master'a mTLS ile bağlanır (Deploy platformu).
Kurulum
curl -fsSL https://raw.githubusercontent.com/KilimcininKorOglu/r3v3rs3/main/install.sh | sudo bash
Linux sunucuya kurulum rehberi seçenekleri, yolları, yükseltmeyi, kaldırmayı ve release arşivleriyle kurulumu anlatır.
Geliştirme
Ayrıntılar için Geliştirme bölümüne bakın.
İlk kurulum
Admin hesabı oluşturmak, sunucuyu başlatmak ve ilk proxy'nizi kurmak için Başlangıç rehberini izleyin.